SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2020】セッションレポート (AD)

レガシーコードから脱却するために有効な方法とは? ルール駆動開発が解決する課題【デブサミ2020】

【14-D-3】全アプリ開発者に伝えたい、レガシーコードから脱却するための具体的な手法、“ルール駆動開発”

  • X ポスト
  • このエントリーをはてなブックマークに追加

小さく作ってテストをくり返しながらルールを育てていく

 ルール駆動開発を実現するうえでは、レッドハット社が提供する「Red Hat Decision Manager(旧 Red Hat JBoss BRMS)」の導入をおすすめする。この製品は拡張性の高いルールエンジンを使用しており、開発の推進を手助けしてくれる。

「Red Hat Decision Manager」の解説
「Red Hat Decision Manager」の解説

 「Red Hat Decision Manager」は、業務担当者にも理解可能なフォーマットを用いた、直感的なルール実装が可能である。DMNを作成ためのエディタが搭載されているうえに、ルールをすぐにRESTサービスとして実行できるサーバー機能も提供している。

 ルールエンジンを活用して業務ルールを記載することで、仕様が明確になる。非エンジニアにも理解できる形式であるため、業務担当者がルールの誤りにすぐ気付ける利点もある。また、ルールのメンテナンスも容易だ。

 「ルールエンジンを使うことで、小さく作ってテストをくり返しながらルールを育てていけます。ソースコードの解析からはじめると、全ての内容を読み解きながら、不要なところを捨てていくことになります。多くの無駄が生じるのです。必要なルールだけを拾う方法でシステムを育てることで、開発工数の最適化を図ることができます」(松田氏)

 また、ルール駆動開発を用いてサービスを適切な粒度で分割することで、モノリシックだったアプリケーションはマイクロサービス化していく。画面やロジック、プロセス、データアクセスといった役割ごとにサービスを分割することで、以下のような利点が生じるという。

  • スパゲティコードの解消
  • メンテナンス性の向上
  • ウォーターフォールからくり返し開発方式へ
  • 開発生産性の向上
  • 分散環境に対応

 「本セッションで解説したように、ルール駆動開発を導入することで開発効率やソフトウェアの品質を向上させることができます。ぜひ、みなさまの開発に役立てていただければ幸いです」(松田氏)

 巨大なシステムに立ち向かう際、私たちは得てして「自分自身がすでに知っている開発手法を用いて頑張ろう」といった思考回路に陥ってしまう。だが、レガシーアプリケーションの改修において、その開発手法が有効でないケースはままある。

 あたかも、大木を切り倒すために、手持ちの小さなカッターナイフを用いるようなものだ。大きな仕事に取り組む際には、適切な道具を選ぶことが鉄則である。松田氏のセッションは、その原則の重要性と、ルール駆動開発の有効性が十分に伝わるものとなった。

お問い合わせ

 レッドハット株式会社

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
【デブサミ2020】セッションレポート 連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/12053 2020/03/17 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング