Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[OutSystems] とりあえず Reactive なプロジェクトにはこれ導入しておくと良いって規約

kata_junn
September 06, 2021

[OutSystems] とりあえず Reactive なプロジェクトにはこれ導入しておくと良いって規約

OutSystems で Reactive なアプリを開発する際の規約の提言です

あつまれOutSystems Developer!開発者超会議#6(2021/08/25) にて LT した内容です

kata_junn

September 06, 2021
Tweet

More Decks by kata_junn

Other Decks in Technology

Transcript

  1. とりあえず Reactive なプロジェクトには
    これ導入しておくと良い、って規約
    片野 潤一
    伊藤忠テクノソリューションズ株式会社
    アジャイル営業推進部
    あつまれ OutSystems Developer! 開発者超会議

    View Slide

  2. Java
    Struts/Spring/MyBATIS
    2005 2014
    OutSystems
    Developer@3人(6か月)
    Developer && TL@約10人(24か月)
    OutSystems 推進
    2019 2020
    Scrum on AWS
    Role:Developer
    TypeScript
    Serverless
    Dynamo, Lambda, S3, SQS, Kinesis,
    Athena
    Angular
    認定スクラムマスター(CSM)
    AWS Certified DevOps Engineer - Professional
    OutSystems Expert Traditional Web Developer
    OutSystems Architecture Specialist
    好き:リアル脱出ゲーム、低温調理、スパイス、モブプロ、DQW、ゼルダ
    20%
    OutSystems
    OutSystems 推進
    Expert Service
    BootCamp 講師
    PoC 提案+実施
    now!!
    2
    片野 潤一(かたじゅん) Twitter:@kata_junn

    View Slide

  3. 3
    Traditional だよ!
    Zoom の チャットで教えてください!
    今やってるプロジェクトは…
    Reactive だよ!
    OutSystems
    未導入だよ!

    View Slide

  4. 今日の話が響きそうな人
    ⚫ Reactive なアプリケーションを実装している人
    ⚫ これから Reactive なアプリケーションに関わりそうな人
    ⚫ Traditional はもう飽きたな、な人
    ⚫ OutSystems の規約の雰囲気を味わいたい人
    4

    View Slide

  5. Façade Action

    View Slide

  6. 6
    “Facade(ファサード)とは「建物の正面」を意味す
    る。異なるサブシステムを単純な操作だけを持った
    Facadeクラスで結び、サブシステム間の独立性を高め
    る事を目的とする。
    Wikipedia
    https://ja.wikipedia.org/wiki/Facade_%E3%83%91%E3%82%BF%E3%8
    3%BC%E3%83%B3

    View Slide

  7. Screen Action Server Action

    View Slide

  8. Screen Action Server Action

    View Slide

  9. Screen Action Server Action

    View Slide

  10. Screen Action Server Action
    Screen Action から Server Action 呼び出しは 1 回以下

    View Slide

  11. View Slide

  12. Façade Action

    View Slide

  13. 13
    “Facade(ファサード)とは「建物の正面」を意味す
    る。異なるサブシステムを単純な操作だけを持った
    Facadeクラスで結び、サブシステム間の独立性を高め
    る事を目的とする。
    Wikipedia
    https://ja.wikipedia.org/wiki/Facade_%E3%83%91%E3%82%BF%E3%8
    3%BC%E3%83%B3

    View Slide

  14. 14
    “Facade(ファサード)とは「建物の正面」を意味す
    る。異なるサブシステムを単純な操作だけを持った
    Facadeクラスで結び、サブシステム間の独立性を高め
    る事を目的とする。
    Wikipedia
    https://ja.wikipedia.org/wiki/Facade_%E3%83%91%E3%82%BF%E3%8
    3%BC%E3%83%B3
    いろんな処理を捌いてくれる執事

    View Slide

  15. View Slide

  16. View Slide

  17. Façade Action

    View Slide

  18. Façade Action
    Screen Action と 1:1 の Façade Action を作る

    View Slide

  19. Façade Action の具体的な規約
    ⚫ フォルダ/Action 名
    ⁻ ServerActions -> [Screen 名]
    ⁻ [Screen 名]_[Screen Action 名]Facade
    ⁻ ex. HogeDetail_SaveFacade
    ⚫ 他細かいの
    ⁻ Façade Action → Façade Action 呼び出し禁止
    ⁻ Server Action → Façade Action 呼び出し禁止

    View Slide

  20. Façade Action を設ける利点
    ⚫ Screen Action の品質一定化
    ⁻ Screen Action が呼び出す Server Action が明確になる
    ⁻ 規約に従うと Reactive 実装ベストプラクティスが遵守できる
    ⚫ 実装責務の明確化
    ⁻ Screen Action、Façade Action、(非 Façade な)Server Action
    ⁻ 副次的に影響範囲の局所化

    View Slide

  21. Façade Action の責務
    ⚫ 画面機能に特化したサーバーサイドロジックの実装
    ⁻ 共通ロジックに切り出す必要がないロジックを実装
    ⚫ ビジネスロジックのオーケストレータ
    ⁻ 共通ロジックへのパラメータ授受
    ⁻ 呼び出し順序制御
    ⁻ エラーハンドリング

    View Slide

  22. まとめ
    ⚫ Façade Action を設けるといいこといっぱい!
    ⁻ Reactive 実装のベストプラクティスに則ることができる
    ⁻ Screen Action/Façade Action/Server Action の責務を明確にできる
    ⚫ 具体的にどんな実装になるの?

    View Slide

  23. ご清聴ありがとうございました
    ご質問があれば
    お願いします!

    View Slide