なんか良いコードと悪いコードがなんちゃらみたいな本がしばらく前に話題になっていて、随分と主観的なタイトルだなと思って近づかないようにしてるんだけど、別に主観的で良いじゃんと思ったので自分が現時点で思う良いコード(否、設計)の条件を挙げてみる。 あくまで主観なのでめっちゃそのような指標が出るけど構わない。
- テスト実行速度が十分に速い
- テストデータを作るのに苦労しない
- 副作用と純粋な処理が分けられている(=DIが楽)
- 依存の向きが一方向である
- SOLID原則を前提に考えられている
- 問題の発生場所をすぐに特定できる
- 問題の解消が難しくない
- 実行時リソースの無駄遣いをしていない
- 宣言的かつ説明的な命名がされている
- ビジネスロジックにフレームワークの事情が染み込んでいない
ざっと上げてみたけど結構少なかった。
これらを蔑ろにすると高速でゴミを作るようなことになりかねないとおもっちょる。