OutSystems で Reactive なアプリを開発する際の規約の提言です
あつまれOutSystems Developer!開発者超会議#6(2021/08/25) にて LT した内容です
とりあえず Reactive なプロジェクトにはこれ導入しておくと良い、って規約片野 潤一伊藤忠テクノソリューションズ株式会社アジャイル営業推進部あつまれ OutSystems Developer! 開発者超会議
View Slide
JavaStruts/Spring/MyBATIS2005 2014OutSystemsDeveloper@3人(6か月)Developer && TL@約10人(24か月)OutSystems 推進2019 2020Scrum on AWSRole:DeveloperTypeScriptServerlessDynamo, Lambda, S3, SQS, Kinesis,AthenaAngular認定スクラムマスター(CSM)AWS Certified DevOps Engineer - ProfessionalOutSystems Expert Traditional Web DeveloperOutSystems Architecture Specialist好き:リアル脱出ゲーム、低温調理、スパイス、モブプロ、DQW、ゼルダ20%OutSystemsOutSystems 推進Expert ServiceBootCamp 講師PoC 提案+実施now!!2片野 潤一(かたじゅん) Twitter:@kata_junn
3Traditional だよ!Zoom の チャットで教えてください!今やってるプロジェクトは…Reactive だよ!OutSystems未導入だよ!
今日の話が響きそうな人⚫ Reactive なアプリケーションを実装している人⚫ これから Reactive なアプリケーションに関わりそうな人⚫ Traditional はもう飽きたな、な人⚫ OutSystems の規約の雰囲気を味わいたい人4
Façade Action
6“Facade(ファサード)とは「建物の正面」を意味する。異なるサブシステムを単純な操作だけを持ったFacadeクラスで結び、サブシステム間の独立性を高める事を目的とする。Wikipediahttps://ja.wikipedia.org/wiki/Facade_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3
Screen Action Server Action
Screen Action Server ActionScreen Action から Server Action 呼び出しは 1 回以下
13“Facade(ファサード)とは「建物の正面」を意味する。異なるサブシステムを単純な操作だけを持ったFacadeクラスで結び、サブシステム間の独立性を高める事を目的とする。Wikipediahttps://ja.wikipedia.org/wiki/Facade_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3
14“Facade(ファサード)とは「建物の正面」を意味する。異なるサブシステムを単純な操作だけを持ったFacadeクラスで結び、サブシステム間の独立性を高める事を目的とする。Wikipediahttps://ja.wikipedia.org/wiki/Facade_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3いろんな処理を捌いてくれる執事
Façade ActionScreen Action と 1:1 の Façade Action を作る
Façade Action の具体的な規約⚫ フォルダ/Action 名⁻ ServerActions -> [Screen 名]⁻ [Screen 名]_[Screen Action 名]Facade⁻ ex. HogeDetail_SaveFacade⚫ 他細かいの⁻ Façade Action → Façade Action 呼び出し禁止⁻ Server Action → Façade Action 呼び出し禁止
Façade Action を設ける利点⚫ Screen Action の品質一定化⁻ Screen Action が呼び出す Server Action が明確になる⁻ 規約に従うと Reactive 実装ベストプラクティスが遵守できる⚫ 実装責務の明確化⁻ Screen Action、Façade Action、(非 Façade な)Server Action⁻ 副次的に影響範囲の局所化
Façade Action の責務⚫ 画面機能に特化したサーバーサイドロジックの実装⁻ 共通ロジックに切り出す必要がないロジックを実装⚫ ビジネスロジックのオーケストレータ⁻ 共通ロジックへのパラメータ授受⁻ 呼び出し順序制御⁻ エラーハンドリング
まとめ⚫ Façade Action を設けるといいこといっぱい!⁻ Reactive 実装のベストプラクティスに則ることができる⁻ Screen Action/Façade Action/Server Action の責務を明確にできる⚫ 具体的にどんな実装になるの?
ご清聴ありがとうございましたご質問があればお願いします!