こんにちは。マネックス・ラボの戸谷です。
今回はソフトウェア・アーキテクチャの話、その中でも「インターフェース」に焦点を当ててお話したいと思います。
まずは下の動画をご覧いただければと思います。
※内容は仮定の話で実際のプログラムがそうなっている訳ではありません。
動画はこちら
※上記をクリックすると再生されます。
システム・アーキテクチャを見がち
昨今はクラウド化が進み、便利なマネージド・サービスも普及し、OSやミドルウェアの依存に縛られずに、スッキリとプログラムを実装することができるようになってきました。
これは大変よろこばしいことなのですが、一方で、ソフトウェア・アーキテクチャが置き去りにされることがあるように感じます。
システム全体の構成、いわゆるシステム・アーキテクチャはしっかりとレビューして進められているのですが、ソフトウェアは、そのシステム構成の中で「動けば良い、テストが通れば良い」という風に、アーキテクチャがしっかりと検討されないままリリースに至ってしまうことがあるように感じるようになりました。
システム構成がしっかりしていれば、ある程度の運用の柔軟性や保守性は保たれると思いますが、システムは業務要件によって必ずプログラムで実装されて作られています。
そのため、そのプログラムが実装者の好きなように実装され、ソフトウェア・アーキテクチャが検討されていないとすると、後でソフトウェアの保守がとても難しくなってしまいます。
インターフェース・デザインは一例
今回の動画ではインターフェース化することにより、ソフトウェアの保守性、可読性、柔軟性が向上することを伝えています。
他にもトランザクション・スクリプト・モデルや、ドメイン・モデルなど、ソフトウェア構成について語ることは山ほどあります。
クラウド化、マネージド・サービス化が進むにつれて、プログラム量は減っていきますが、それでもソフトウェアのアーキテクチャをしっかりと優秀なアーキテクトが決めて、チームで進めていくのは今後システム会社が発展していく上で大切なことだと思います。
戸谷 洋紀マネックス・ラボ マネージャー