萌えハッカーニュースリーダー

2025/11/04 12:57 Microservices? No, modularity is what matters

出典: https://binaryigor.com/modular-monolith-and-microservices-modularity-is-what-truly-matters.html
hakase
博士

やあ、ロボ子。今日はソフトウェアのモジュール性について話すのじゃ。

roboko
ロボ子

モジュール性ですか、博士。ソフトウェアを分割して管理しやすくする技術ですよね。

hakase
博士

その通り!モジュール性は、ソフトウェアを論理的、機能的なモジュールに分割する品質のことじゃ。モジュールは特定の機能を提供するのじゃ。

roboko
ロボ子

記事によると、モジュールはオブジェクトやクラス、関数の集合体で構成されるとのことです。

hakase
博士

そうじゃな。そして、モジュール性はデプロイメントの単位数とは独立して考えるべきなのじゃ。モノリスでもマイクロサービスでも、モジュール性は重要なのじゃ。

roboko
ロボ子

高凝集度かつ疎結合を目指す、というのもポイントですね。

hakase
博士

その通り!モジュール化すると、組織化、理解、リソース利用、再利用性、テスト容易性など、たくさんの利点があるのじゃ。

roboko
ロボ子

モジュールごとに異なるリソース要件に対応できるのは便利ですね。それに、小さなモジュールの方が理解しやすいです。

hakase
博士

実装戦略もいろいろあるぞ。単純なモジュラーモノリスから、マイクロサービスまで。

roboko
ロボ子

モジュラーモノリスは、モジュールをフォルダとして扱うのですね。シンプルで良さそうです。

hakase
博士

そうじゃ。でも、モジュール境界を越えないように注意が必要じゃ。共有データベースを使う場合は、スキーマやテーブル命名規則を分けるのが良いぞ。

roboko
ロボ子

_contractsフォルダに共通インターフェースを定義するのも良いですね。

hakase
博士

独立してデプロイ可能なモジュールを持つモジュラーモノリスもあるぞ。各モジュールは独立してバージョン管理されたパッケージになるのじゃ。

roboko
ロボ子

依存関係がより明確になり、モジュール境界を越えにくくなるのですね。

hakase
博士

マイクロサービスは、各モジュールが独立したアプリケーションとしてデプロイ・実行されるのじゃ。インフラや監視が複雑になるけど、モジュールごとに異なる言語やリソース要件に対応できるぞ。

roboko
ロボ子

制約付きマイクロサービス(マイクロリス)というのもあるんですね。外部ネットワークリクエスト処理時に、他のサービスへのネットワーク呼び出しを禁止する、と。

hakase
博士

そうじゃ。サービスは必要なすべてのデータを持ち、分散トランザクションが不要になるのじゃ。

roboko
ロボ子

ヘルパーサービス付きモジュラーモノリスは、特定のモジュールが特別な要件を持つ場合に独立したサービスとして分離するのですね。

hakase
博士

並行作業と独立したデプロイメントも重要じゃ。モジュール性が高いほど、複数人/チームでの並行作業が容易になるのじゃ。

roboko
ロボ子

フロントエンドのモジュール化も忘れてはいけませんね。SPAでもバックエンドと同様のルールを適用する、と。

hakase
博士

そうじゃ。モジュールスコープのスタイルやコンポーネントを使用したり、コード分割や動的インポートを利用するのじゃ。マイクロフロントエンドアーキテクチャも選択肢じゃ。

roboko
ロボ子

システムの複雑さ、チームの規模、ドメインの流動性などを考慮して、適切な戦略を選ぶ必要があるんですね。

hakase
博士

その通り!単純な戦略から始めて、必要に応じてより複雑な戦略に移行するのが良いぞ。設計とアーキテクチャはトレードオフの連続じゃからな。

roboko
ロボ子

勉強になります、博士!

hakase
博士

ところでロボ子、モジュール化されたお菓子って知ってるか?

roboko
ロボ子

モジュール化されたお菓子、ですか?

hakase
博士

そう!それは…『キットカット』じゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search