JavaScriptの非同期処理を理解する: Promiseのエラーハンドリング完全ガイドと実践テクニック

はじめに

システム開発第一事業部の奥田です。普段はフロント寄りのフルスタックエンジニアとして、Webアプリの開発を担当しています。

このJavaScriptの非同期処理シリーズでは

と学んできましたがいよいよ最終回となる今回は、エラーハンドリングを徹底的に解説します!

非同期処理を扱う上でエラーハンドリングは避けて通れません。

でも、Promiseのエラー処理は奥が深く、意外と難しいポイントがたくさんあります。

  • 「catchを書いたのにエラーがキャッチできない...」
  • 「Unhandled Promise Rejectionって何?」
  • 「thenの第2引数とcatchって何が違うの?」

こんな経験ありませんか?

この記事ではエラーハンドリングの基礎から実践的なテクニックまでをカバーします。

複雑なPromiseチェーンも自信を持って書けるようになりますよ!

続きを読む

“とりあえずチャピる”前に知っておきたい、新人エンジニアのための仮説思考

はじめに

システム開発第一事業部の奥田です。普段はフロント寄りのフルスタックエンジニアとして、Webアプリの開発を担当しています。

新人の頃って、エラーが出た瞬間に「とりあえずググる」、最近だと「とりあえずAIに聞く」になりがちじゃないですか?

私が初学者だった頃はまだAIがない時代でしたので(といっても5年前のことですが笑)、 わからないことやエラーが出たらとりあえず「ググる」という感じでした。

「ググれカス」という言葉もあるくらいでしたからね〜。

時代の流れで今は私もAIを多用していますが、本当に便利すぎて時折脳死状態でとりあえずAIに丸投げしてしまうことも多々あります...

日に日に性能が良くなっていくAI、毎日の日常に何の違和感もなく入り込んできたAIに恐怖感すら感じるほどです。


既にAIに依存しすぎて、AIがなくては仕事ができなくなってしまった人もいるのではないでしょうか?

「AIに頼ってばかりじゃダメなのはわかってはいるけれども...」
「AIを使いこなす側になって、うまく依存しないようにしたい」

そんな声が聞こえてきます。
というか、私自身もそう思っています!


実は私、元々はお菓子を売る会社で営業をしており、IT業界は完全に未経験で入ってきています。
その時にどうやって学んでいたかを思い返すと、そういえばとにかく言語化をしていたなと思い出したんです。

その言語化というプロセスのおかげでAIがない時代でもしっかりと学ぶことができ、業務をこなしていけたという経験があります。

そして気づいたのが、ググる前・AIに聞く前の思考が、その後の問題解決スピードを大きく変えてくれるということです。

「AIと何の関係があるの?」と感じるかもしれませんが、すごく深く関係しています。


この記事で紹介する仮説思考フレームワークは私が初学者の頃に実際に使っていたもので、 これのおかげでコードの動きや足りない視点を炙り出せるようになりました。

そして今後、AIが主流になっていく中で「ただ指示を出す人」ではなく「AIを使いこなす人」になるためにも、 仮説思考は必要不可欠だと感じています。

この記事では、仮説思考は才能ではなく型であるという前提で、新人エンジニア向けにやさしく解説していきます。
(もちろん新人じゃなくても「あ、自分のことかも」と感じた方は読んでくださいね!)

続きを読む

「伝わるコードレビュー」輪読会レポート〜輪読会の新たな手法「アクティブ・ブック・ダイアローグ」も試してみて〜

DX本部システム開発第二事業部の冨永です。

主にiOS/iPadアプリの開発を担当しております。

弊社では、月に最大3本ほど走っているくらい輪読会が活発なのですが、 先日、そのうちの一つである「伝わるコードレビュー」輪読会が終わりました。 その際の様子と、今回初めて導入したアクティブ・ブック・ダイアローグという輪読会方法について紹介したいと思います。

続きを読む

Swift6・Strict Concurrency移行で見えた“想定外の作業”と反省

DX本部システム開発第二事業部の冨永です。

現在、主にiOS/iPadアプリの開発を担当しております。

今回は、Swift 6・Strict Concurrency移行対応と想定外にかかった作業について書きたいと思います。 今後、Swift 6・Strict Concurrency移行を検討されている方がいらっしゃれば、参考になればと思います。

続きを読む

visionOS TC 参加レポート 〜 熱意と継続が未来をつくる〜

DX本部システム開発第二事業部の冨永です。

主にiOS/iPadアプリの開発を担当しております。

先日、visionOSに関する国内最大級のカンファレンス、visionOS TC(visionOS Tech Conference)に参加しました!

visionOSとは、Appleが開発した空間コンピューティング(AR/VR/MR体験)に特化したオペレーティングシステムです。

今回は参加した際のレポートですが、実はここ一年で参加したカンファレンスの中で一番と言っていいほど"熱い"カンファレンスでした。

続きを読む

JavaScriptの非同期処理を理解する: Promiseの内部構造とイベントループの仕組み

はじめに

システム開発第一事業部の奥田です。普段はフロント寄りのフルスタックエンジニアとして、Webアプリの開発を担当しています。

前回の記事では、Promiseの基本的な使い方を解説しました。

前回のおさらい(ざっくり)

  • Promiseの3状態(pending/fulfilled/rejected)と一度確定したら戻らない性質
  • thencatchfinallyの基礎と使い分け(値の受け渡し/エラー処理/後始末)
  • メソッドチェーンの基本(毎回「新しいPromise」を返すからつながる)
  • 便利な静的メソッドの入口(Promise.resolve/reject など)

詳しくは前回記事をご参照ください: 第2回:Promise完全入門

この記事ではさらに一歩踏み込んで、Promiseの内部では何が起きているのかを見ていきます。

こんな疑問を持ったことはありませんか?

  • 「thenはなぜ後で実行されるの?」
  • 「Promiseの内部では何が起きているの?」
  • 「チェーンメソッドの仕組みは?」

今回は、Promiseの内部構造動作原理を深掘りします。 仕組みを理解すると、挙動を自信をもって予測でき、バグを未然に防げます。

少し難しく感じるかもしれませんが、実例を交えながら丁寧に解説していくので、安心してついてきてください!

また、この記事はシリーズ第3回に当たる記事です。

変更があるかもしれませんが全体では以下のような流れで進める予定です。

続編の記事は随時書いていきますので楽しみに待っていてください!

続きを読む

Flutter Tokyo 参加レポート ~Flutter カントリーロード~

こんにちは。DX本部システム開発第二事業部の冨永です。

日頃は主にiOS/iPadアプリの開発を担当しております。

本日は、普段はあまり触らないフレームワークFlutterの勉強会、 Flutter Tokyo に参加した際の参加レポートについて書きたいと思います。

https://flutter-jp.connpass.com/event/374220/

続きを読む