16章依存関係
依存関係のないプログラムを書くのは難しい。関数は他の関数に、モジュールは他のモジュールに、そしてプログラムは他のプログラムに依存する。アーキテクチャはフラクタルだ。関数、モジュール、プログラム、システムのどのレベルでもコードは図16-1のように何らかのボックスとそれをつなぐ矢印のダイアグラム、つまり依存関係を表現できる。
しかし、依存関係を能動的に管理しなければ、コードはすぐに所謂スパゲッティコードになり、ダイアグラムは、図16-2のようなものになってしまう。
この章では依存関係とそれを管理する方法を学ぶ。依存関係にはさまざまな種類があり、それぞれを異なる手法で管理する必要があることを学ぶ。依存関係をグラフ化する方法、健全なシステムであるかどうかを判断する方法も学ぶ。アーキテクチャを本当に単純化する方法を学び、複雑さを管理し、コードベースのロバストネスを向上させる。
16.1 関係
依存関係(dependency)とは、要するに関係(relationship)のことだ。あるコードが特定の形で動作するために別のコードを必要とするなら、それを依存関係と呼ぶ。一般に、依存関係は、何らかの形でのコードの再利用のために使われる。関数は、振る舞いを再利用するために他の関数を呼び出す。モジュールは、他のモジュールで定義されたデータ型や関数を再利用するためにモジュールをインポートする。ほとんどのコードベースは、すべてのものを文字通りゼロから書いても無意味だ。コードベースの他の部分や外部の組織が開発したコードであっても、再利用すれば得られる利益は大きくなり得る。 ...
Get ロバストPython ―クリーンで保守しやすいコードを書く 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.