プログラマー脳 読書メモ
作成日時:2024-08-01以前
更新日時:2024-08-01
プログラマー脳を読んだ感想とメモ。
良書だったので読め。
※個人用メモです。書籍には関係の無い内容も書いているので注意。
認知負荷の概念(1章)
この本を読んで一番の収穫だったのは、認知負荷の概念を知れたこと。
自身のメンタルモデルに、大きく影響を与えてくれた。
新卒にはこの本とリーダブルコードを読ませるようにしたい。
区分値からクラスを生成するベストプラクティス
愚直にswitchかリフレクション。
enum使え。
驚き最小原則(2章)
トリッキーなコードは書かずありふれた表現で書け。
書きっぷりを合わせろ。
トリッキーさは認知負荷に繋がる。
忘却曲線(3章)
定期的に反復する分散学習が一番記憶に残る。
QiitaのTwitterとかフォローしておけば、定期的に過去のいい記事をリツイートしてくれる。
その都度、記事を読めば分散学習のようなことができるかもね。
変数に対するコメント
メソッド名や変数名を適切に命名すればコメントは不要と言うけれど、
我々は日本人だから英語の変数名は認知負荷をあげるのではなかろうか。
個人的には「コメントは何をしているかではなく、何故を書け」と考えるが、
難しい英単語の上に日本語訳のコメントを書いておくことは、認知負荷の低減につながらないだろうか。
その他のメモ
「後で直す」は絶対に直されることは無い
変数名とか仮置きではなくいま最適なものを付けろ。
いま直せ。
参考:割れ窓理論
命名に関して
- 変数の命名が一番めんどくさい。認知負荷に大きくかかわるから。
- 無駄に英語にするから変換の過程で本来の情報がロストする。
ロストするくらいならローマ字でいいよ
YoyakuInfoとか。
メソッドが分割可能であるか
下記に当てはまるなら分割しろ。
- そのメソッドやクラスを一言で説明できない
- 処理途中に”何をするか”のコメントを書いている
状態と不変性の削除
状態があるから、可変だから面倒になる。
状態を排除し、不変にしろ。
変数はconstやfinal定義とか。
脳のメモリを無駄に消費するような環境を作るな
本来の目的に脳のリソースを割ければおのずと不具合は減っていくと。
制約を加える
文章→色々な解釈をできてしまう
プログラム→色々な書き方をできてしまう。
これらを防ぐ書き方が大事
単一の書き方でしか実装できないコードを作る。
例えば型による制約など。
その他
- コマンドクエリ分離
- コーディング
- コミュニケーション
- ユビキタス言語