デブサミ2020【14-D-3】全アプリ開発者に伝えたい、レガシーコードから脱却するための具体的な手法、“ルール駆動開発” #devsumiD #devsumi
お次はこちら! 全アプリ開発者に伝えたい、レガシーコードから脱却するための具体的な手法、“ルール駆動開発” event.shoeisha.jp/devsumi/202002… #devsumi #devsumiD
2020-02-14 12:10:41ルール駆動開発 ルール → 業務ルール = ビジネスルール、ビジネスロジック #devsumi #devsumiD
2020-02-14 12:14:57「ルール駆動開発」のルールは業務ルール、ビジネスロジック。ルールとデータアクセスを完全分離。業務ルールを整理してそのまま実装。 #devsumiD #devsumi
2020-02-14 12:16:17ルール駆動開発における3つのルール ・ルール(ロジック)とデータアクセスを完全分離 ・業務目線でルールを整理し、そのまま実装する ・小さく作ってはテストを繰り返す、イテレーション開発 #devsumi #devsumiD
2020-02-14 12:17:07ルール駆動開発 #devsumi #devsumiD pic.twitter.com/uGPFTg7sht
2020-02-14 12:17:09業務ルールの整理、てとこがキモだよな。 #devsumiD #devsumi
2020-02-14 12:17:24コード解析はしない。解析しても不要なゴミコードかどうかはわからない。(ゴミが60%!) #devsumiD #devsumi
2020-02-14 12:19:39レガシーなシステムのリニューアルで良くやること → 現行コードの解析 これをやめるべし! Why? ・継ぎ足し継ぎ足し、秘伝のタレ状態(その場しのぎの改修、冗長なコード) ・不要なゴミコードの山(不要かどうかはコードから不明、ゴミの移行に時間とお金を掛けることに) #devsumi #devsumiD
2020-02-14 12:19:45DMN (Decision Model and Notation) #devsumiD #devsumi
2020-02-14 12:21:42知りたいことは業務要件 = 業務ルール ・業務を知ってる人に聞く → 全部までは無理、知ってるところを少しだけ ・誰でも知ってる基本的なルールから ・業務マニュアルとかあるよね ↓ ヒアリング内容はDMNで整理すると良いよ! (業務ルールの国際記法) #devsumi #devsumiD
2020-02-14 12:22:00DMN (DECISION MODEL AND NOTATION) access.redhat.com/documentation/… #devsumi #devsumiD
2020-02-14 12:22:34業務ドメインの切り出しに使おうってか。なーるほど。 #devsumi #devsumiD
2020-02-14 12:25:19VSMと似てる気もするがだいぶ違う気もする。 #devsumi #devsumiD
2020-02-14 12:26:05ルールとデータアクセスを分離することで… ・ルールのテストがしやすくなる! ・改修時の影響範囲が狭まる! ・DB構成の変更影響を受けにくい! #devsumi #devsumiD
2020-02-14 12:27:44このセッションすごいためになる もっとたくさんのエンジニアが聞いたほうがいいかもしれない #devsumi #devsumiD
2020-02-14 12:28:04ここでルールとデータアクセスを分離。ここはマイクロサービスとちょっと違うな。ドメイン間のデータの依存性にはフォーカスシテナイ感情。 #devsumi #devsumiD
2020-02-14 12:28:21