17章コンポーザビリティ

開発者として直面する最大の課題の1つは将来の開発者がシステムをどのように変化させるかを予測することだ。ビジネスは進化し、今日の最新システムはいずれレガシーシステムとなる。そのようなシステムをどうサポートすればよいのだろうか。どうすれば将来の開発者がシステムに修正を加える際に直面する摩擦を軽減できるのか。どのような状況になっても対応できるようにコードを開発する必要がある。

この章では、コンポーザビリティを意識したコードの書き方を学ぶ。コンポーザビリティを意識して書いたコードは、小さくて独立性が高く再利用できるものになる。まず、コンポーザブルではなく開発を阻害するアーキテクチャを示す。次に、コンポーザビリティを意識したコードに修正する方法を学ぶ。オブジェクト、関数、アルゴリズムを組み合わせてよりコードベースの拡張性を高める方法を学ぶ。まず、コンポーザビリティが保守性を引き上げる仕組みを明らかにする。

17.1 コンポーザビリティとは何か

コンポーザビリティは相互依存を抑えて内部にビジネスロジックをほとんど含まない小さなコンポーネントの構築に重点を置く。将来の開発者がそれらのコンポーネントを使って自分のソリューションを構築できるようにするのが目標である。コンポーネントを小さくすることで読みやすく理解しやすいものになる。依存関係を減らすことで将来の開発者がコードの書き換えに伴うコスト(「16章 依存関係」で学んだコストなど)をあまり心配せずに済む。ビジネスロジックから切り離すことで全く異なる新しい問題が出てきても解決できる。コンポーザブルなコンポーネントが増えると、開発者はそれらを組み合わせて簡単に全く新しいアプリケーションを作れる。コンポーザビリティを重視するとコードの再利用や拡張を容易にできる。 ...

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.