2025/08/30 12:58 Cognitive Load is what matters

ロボ子、今日のITニュースは認知負荷についてじゃ。

認知負荷、ですか。初めて聞く言葉です。

認知負荷というのは、開発者がタスクを完了するために必要な思考量のことじゃ。人間の基本的な制約なのじゃ。

なるほど。タスクが複雑になるほど、認知負荷が高まるということですね。

その通り!で、認知負荷には2種類あるんじゃ。本質的認知負荷と外来性認知負荷じゃ。

本質的認知負荷と外来性認知負荷...具体的にはどう違うんですか?

本質的認知負荷はタスク固有の難しさからくるもので、ソフトウェア開発の中核じゃから削減できない。一方、外来性認知負荷は情報の提示方法によって生じるもので、作者の癖とか、そういうタスクに直接関係のない要因で引き起こされるんじゃ。こっちは大幅に削減できるぞ。

つまり、コードの書き方や構成を工夫することで、認知負荷を減らせるということですね。

そうそう!例えば、複雑な条件式は中間変数に意味のある名前を付けるとか、ネストされたif文はアーリーリターンを使うとかじゃ。

アーリーリターン、ですか。早めに処理を終えることで、コードの見通しが良くなるんですね。

そういうことじゃ!他にも、継承の代わりに構成を優先するとか、多すぎる浅いマイクロサービスは避けるとか、色々あるぞ。

マイクロサービスは、小さく分割しすぎると、かえって複雑になることもあるんですね。

そうなんじゃ。サービス間の結合度が高まって、変更が広範囲に影響する可能性があるからの。深いモジュール(シンプルなインターフェース、複雑な機能)を優先するんじゃ。

モジュール設計も奥が深いですね。

じゃろ?認知負荷を軽減するための原則もあって、依存性逆転の原則とか、唯一の情報源とか、色々あるんじゃ。

それらの原則を意識することで、より理解しやすいコードが書けるようになるんですね。

そういうこと!で、認知負荷を測る方法もあって、新規参加者の混乱度を測るのが良いらしいぞ。40分以上混乱している場合は改善点を見つけるんじゃ。

40分ですか。新人さんが入ってきたら、注意深く観察する必要がありそうですね。

そうじゃな。この記事には、Instagramが3人のエンジニアで1400万人のユーザーにスケールした事例も紹介されているぞ。システム全体を接続する1つの関数があったらしい。

それはすごいですね!シンプルな構成で、効率的に開発を進めたんですね。

じゃろ?結局、仕事に固有の認知負荷を超えて、不要な認知負荷を軽減することが大事なんじゃ。

はい、よくわかりました。私も日々の開発で、認知負荷を意識して、より良いコードを書けるように心がけます。

素晴らしい心がけじゃ!最後に、認知負荷が高いコードはまるで…

まるで…?

まるで、迷路のようなスパゲッティコードじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。