13章関心事の分離

アプリケーションのデータベーススキーマを変更した結果、システムが送信するメールのフォントサイズが大きくなったと想像してください。

なぜメールテンプレートのフォントサイズがデータベーススキーマに依存しているのでしょうか? 良い質問です。こんなことはあってはいけません。

一般的に、ビジネスロジックはユーザーインターフェイスに入れてはいけません。セキュリティ関連のコードのなかにデータのインポートとエクスポートを置いてはいけません。この原則は、関心事の分離として知られています。ケント・ベックの格言でも同じことを言っています。

同じ頻度で変更されるものは一緒にし、違う頻度で変更されるものは分ける[8]

本書の全体的なテーマは、コードは脳に収まるべきというものです。7.1.37.2.7で主張したように、コードブロックは小さく独立するように保ちます。物事を分離するのが重要です。

7章では主に分解の原則としきい値について扱いました。大きなコードブロックを小さく分解するのはいつでしょうか? そしてなぜでしょうか? 7章では分解の仕方についてはあまり説明しませんでした。

本章ではこの疑問に取り組みます。

13.1 合成

合成と分解は複雑に関係しています。コードを書く究極の目的は、動作するソフトウェアを開発することです。物事は任意に分けることはできません。分解は重要ですが、図13-1で示すように分解したものを再度合成できなければいけません。

分解と合成は複雑に関係している。部品から動作するソフトウェアを組み立てられるように分解する

図13-1 分解と合成は複雑に関係している。部品から動作するソフトウェアを組み立てられるように分解する ...

Get 脳に収まるコードの書き方 ―複雑さを避け持続可能にするための経験則とテクニック now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.