by shigemk2

当面は技術的なことしか書かない

達人プログラマー 7

36 モジュール間の結合度を最小にすること

柔軟で強固なコードを作るために必要なデメテルの法則を考える。

独立していたほうが良いけど、他の人らとのやりとりが必要なときは、少しだけ考える。

メタプログラミング
37 設定すべきものを統合しないこと

コードに詳細を書きすぎない。
システム設定を変更できるようにする。

38 抽象概念はコード上に、詳細はメタデータ上に置くこと

全般的なことをプログラムし、それ以外の特殊なことはどこか他の所に持っていく
動的で適用範囲の広いプログラムを生成する。

大半の詳細を出来る限り最後の最後まで保留し、詳細を変更容易なものにする。
大まかなルールを設定し、コードを切り貼りせずにルールを書いて設定を行う。

ちなみに設定を行うタイミングは多くの場合起動の時点なので、
実行中に設定を再ロードできるようなプログラムを記述する必要がある。

アプリケーション同士が協調して相互に設定を行うのもアリだ。
ただ、メタデータのないコードは適応性も柔軟性も低いコードに成り果てるのでよしたほうがよい。

時間的な結合
39 並列性の改善にはワークフローを分析すること
人力マルチスレッドは無理だが、同時に複数の作業が行われていないアプローチは
柔軟性に乏しい。
そこで、紙に書かれたもの、データになったものを利用して、「同時に何が行われているか」を分析する。

40 サービスを使って設計を行うこと
並列性と処理順に対する依存性を考慮することで美しいインターフェイス設計につなげられる。