はじめに
コードを書き始めると参考書や自己流の規則に染まってしまいますが、早い段階から原理原則を学ぶことによって、今後チーム開発をする際の共通認識となり便利かと思います。本記事では7つの原則をメモしていますが、個人的にエッセンスを抽出・解釈すると以下の3つが大切だと感じました。
Minimality(最小性)
Reusability(再利用可能性)
Readability(可読性)
それでは詳しく各原則をみていきましょう。
説明
KISS : Keep it simple, stupid
// シンプルにしておけ!この間抜け
- コードを書くときに簡潔・単純にすることを意識する
- それが本当に必要なコードなのかを吟味する
- 今、必要とされているコードだけを書く
- 勝手に要件を付け加えない
DRY : Don't Repeat Yourself
// 繰り返しを避けろ
- それぞれのコードに唯一無二で明確な意味を持たせる
- オブジェクト指向プログラミングを活用する
- コードの再利用によって生産性を高める
YAGNI : You Ain’t Gonna Need It
// それはきっといらないよ
- ソフトウェアの変化予測は不可能である
- 不必要なコードを書くことは複雑性を生む
- 今、必要とされているコードだけを書く
PIE : Program Intently and Expressively
// 意図が明確に読み取れるコードを書け
- ソフトウェアの動作を完全・正確に知ることのできるものはコード以外存在しない
- 書いていた時間よりも読まれる時間の方が長い
- 読むときに効率を上げるためにWhy, What, Howをコメントする
SLAP : Single Level of Abstraction Principle
// 抽象度を統一せよ
- 抽象度によってコードを分離するべきである
- 外部公開されたユーザー側のコードは高水準である
- 処理や計算、API利用に関わる非公開のコードは低水準である
- 序文(コメントによる要約)、目次(関数の一覧)、セクション、章、段落
SRP : Single Responsibility Principle
// 単一責任の原則
- クラスを変更する理由は複数存在してはいけない
- 変更の理由が変更の理由たるのは、実際に変更の理由が生じた場合だけである
- 結合している役割を見つけそれらを分離する作業は、ソフトウェア設計の本質である
OCP : Open-Close Principle
// オープンクローズドの法則
- モジュールは拡張に対して開いていなければならない
- モジュールは修正に対して閉じていなければならない