
【読書メモ】プリンシプル オブ プログラミング
Amazon:https://amzn.asia/d/6jwf3LM
第1章 前提
コードは設計書である
- プログラミングは設計行為であり、開発で作成されるあらゆる文書の中で、ドキュメントといえるものはコードといえる
変更に強いコードを書く
- プログラミングにおける一つ一つの判断は、「そのコードが変更される」前提で行うようにする。つまり、変更に強いコード
- コードが読みやすいということが最も大切。書いている時間よりも、読んでいる時間のほうが長いから。読む時間を短縮できれば十分に元を取れる
第二章 原則
KISS
コードをシンプルに保つ
- コードを書くときの最優先の価値を「単純性」「簡潔性」に置く
- 常にコードをシンプルに保つことを意識する
コードに余計なことをしない
- シンプルをプログラミングの羅針盤とする
- 余計なこと、過剰なことを可能な限り排除する
- プログラミング中に動作させるために、最もシンプルなものは何かを常に問いかけるようにする
- 覚えたての技術を使いたくなったときなどに、トリッキーなコードを書いてしまう時があるが、コードは頭の良さをアピールする場ではないので、本当にそれが必要かどうかを常に考える
- 必要かどうかはユーザーが決めることなので、勝手に要件を判断して余計なコードを追加しないようにする
- 自分が書いているコードが本当に必要なものかどうかを常に考える
DRY
コードのコピペ厳禁
- コードの重複で最も多いのは、ひとまとまりのロジックを安易に別の部分にコピペして使用している場合。結果、同じロジックが複数箇所にばらまかれる
コードを抽象化する
- 「関数化」「モジュール化」「定数を定義」など抽象化する
- 重複を避けておくと長い目でみると有利になる
- 面倒であっても排除するようにする
レガシーコード
- 重複を持っているようなコードは大体テストがかかれていない
- テストがないコードをレガシーコードと呼ぶ
- テストを用意してから修正を行う。この手順は必須。
YAGNI
コードは必要最低限
- 「たぶん必要になるだろう」「必要になるかもしれない」は書かない
- 今必要なコードのみを書くようにする
コードは今必要なものだけ
- 汎用性よりも単純性を考える
PIE
- コードは書きやすさよりも読みやすさが最優先
- コードは書いている時間よりも読んでいる時間のほうが多い
- 難しい書き方をして自分の頭脳をアピールしないようにする
- 理想はコメントを書かなくてもいいようなコードを書く
- コメントをつけないと表現できない場合のみ書く