レガシーコードから脱却するために有効な方法とは? ルール駆動開発が解決する課題【デブサミ2020】
【14-D-3】全アプリ開発者に伝えたい、レガシーコードから脱却するための具体的な手法、“ルール駆動開発”
小さく作ってテストをくり返しながらルールを育てていく
ルール駆動開発を実現するうえでは、レッドハット社が提供する「Red Hat Decision Manager(旧 Red Hat JBoss BRMS)」の導入をおすすめする。この製品は拡張性の高いルールエンジンを使用しており、開発の推進を手助けしてくれる。
「Red Hat Decision Manager」は、業務担当者にも理解可能なフォーマットを用いた、直感的なルール実装が可能である。DMNを作成ためのエディタが搭載されているうえに、ルールをすぐにRESTサービスとして実行できるサーバー機能も提供している。
ルールエンジンを活用して業務ルールを記載することで、仕様が明確になる。非エンジニアにも理解できる形式であるため、業務担当者がルールの誤りにすぐ気付ける利点もある。また、ルールのメンテナンスも容易だ。
「ルールエンジンを使うことで、小さく作ってテストをくり返しながらルールを育てていけます。ソースコードの解析からはじめると、全ての内容を読み解きながら、不要なところを捨てていくことになります。多くの無駄が生じるのです。必要なルールだけを拾う方法でシステムを育てることで、開発工数の最適化を図ることができます」(松田氏)
また、ルール駆動開発を用いてサービスを適切な粒度で分割することで、モノリシックだったアプリケーションはマイクロサービス化していく。画面やロジック、プロセス、データアクセスといった役割ごとにサービスを分割することで、以下のような利点が生じるという。
- スパゲティコードの解消
- メンテナンス性の向上
- ウォーターフォールからくり返し開発方式へ
- 開発生産性の向上
- 分散環境に対応
「本セッションで解説したように、ルール駆動開発を導入することで開発効率やソフトウェアの品質を向上させることができます。ぜひ、みなさまの開発に役立てていただければ幸いです」(松田氏)
巨大なシステムに立ち向かう際、私たちは得てして「自分自身がすでに知っている開発手法を用いて頑張ろう」といった思考回路に陥ってしまう。だが、レガシーアプリケーションの改修において、その開発手法が有効でないケースはままある。
あたかも、大木を切り倒すために、手持ちの小さなカッターナイフを用いるようなものだ。大きな仕事に取り組む際には、適切な道具を選ぶことが鉄則である。松田氏のセッションは、その原則の重要性と、ルール駆動開発の有効性が十分に伝わるものとなった。
お問い合わせ
レッドハット株式会社
この記事は参考になりましたか?
既に会員の方はを行ってください。
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
