オブジェクト指向の豆蔵と言われはや 20 年。これまで
CORBA, EJB, SOA, プロダクトライン, アジャイル, DDD
と様々な技術トレンドが駆け巡ってきました。その中で
豆蔵は一貫してソフトウェアエンジニアリングの重要性を
訴え、顧客のニーズとソフトウェアのあるべきアーキ
テクチャの橋渡しを行って参りました。
結局ソフトウェアエンジニアリング・オブジェクト指向・
モデリングでしょ。
いくつかの事例を元に意味のあるソフトウェアを正しく
作るためのヒントをお話しいたします。
既存システムに対して、大きめの新機能を追加するという割とありがちなプロジェクトでどのようにDDDを導入し、モデリングを進めたのか。
採用したアーキテクチャ、モジュールの切り方、既存システムとの付き合い方などプロジェクトで遭遇するリアルに対してどう対応してモデリングをしたか、そのポイントや考え方を実例を交えて紹介します。
「自社サービスの成長に伴いシステムのリニューアルを繰り返してきました。
実装プログラマーの増加、サービス利用ユーザー数増加に伴い都度システムの再設計を行ってきた経験を共有します。
サービスリリース当初、エンジニアは私ひとりでした。
何よりもサービスを早くリリースすることを優先し、後から見返すと共通化できる処理がコピペで複数存在しているとてもカオスなプログラムソースでした。ControllerやModelは肥大化しまくりですが、サービスを止めることはできません。
プロダクトに関わる人が増えるにつれ技術的負債にフタをすることに限界がきます。
サービス利用ユーザー数が1万人を超えたあたりから本格的にリニューアルを行い、システムも再設計しました。
2万人を超えたあたりからノウハウも溜まり、満を持してリリースした新サービスではクリーンアーキテクチャを意識した設計、新しい技術挑戦を行なっています。
時系列形式で考察した過程、経験から得たメリット・デメリットを赤裸々に紹介します。
スタートアップ向け、新規事業開発向けのセッションになります。」
[キーワード]
スタートアップ、新規事業、MVC、ADR、ADM、DDD、クリーンアーキテクチャ、SPA、CakePHP、Laravel、vue.js、Nuxt、aws