注目★★★★★Lobsters
「小さい」より「単純」なコードを設計する
30秒で把握
- 1著者が小ささと単純さを分離し、結合の削減を常時優先すべきだと論じた
- 2Unixのsortとuniqは集計と順序付けを結合し、変更時の処理を複雑化させる
- 3コードカバレッジ基盤は規模拡大後も隠れた依存関係を減らして単純化した
要約
著者は、プログラムの小ささと単純さは別物であり、常に目指すべきは機能間の結合を減らした単純さだと論じた。Unixパイプラインは各ツールが小さい一方、`sort | uniq -c` のように集計と順序付けが結び付くため、変更時に一時ファイルや複雑な処理が必要になる。対してGoogle Drive for Desktopは大規模でも、利用者には設定だけで済む単純な道具として振る舞う。Clojureはデータ表現と型検査を分離し、Rustのstructに伴う制約を避けられる。実際、著者のコードカバレッジ基盤は修正後に規模が増えたが、隠れた依存関係が減って単純になった。
あなたへの影響
日本の開発チームはコード量の削減だけでなく、機能間の結合を洗い出し、変更時に連鎖する依存関係を分離する設計レビューを次スプリントで行うとよい。
推奨:小さくても結合した構成は、保守コストの増加につながり得る。