$30 off During Our Annual Pro Sale. View Details »

複雑な仕様に立ち向かうアーキテクチャ

Yohei Maeda
December 04, 2024

 複雑な仕様に立ち向かうアーキテクチャ

株式会社LayerXのバクラク事業におけるアプリ開発と、複雑な仕様対応のアーキテクチャについて説明しています。Flutterを基盤としたアーキテクチャで、モジュール分割とレイヤー構造を採用。複雑な仕様には、再利用可能なSpecificationsパターンや、データ管理を効率化するFragment Colocationを組み合わせて対応しています。これにより、柔軟でスケーラブルなシステムを構築しています。

Yohei Maeda

December 04, 2024
Tweet

Other Decks in Programming

Transcript

  1. 4 © LayerX Inc. ⾃⼰紹介 株式会社LayerX (2023/09~) バクラク事業部 申請‧経費精算開発 APPグループ

    マネージャー 前⽥ 洋平(yohei) Android 10年 Flutter 3年 Go 4年 #お酒 #マンガ #ラジオ #リノベ
  2. © LayerX Inc.  6 「バクラク」シリーズラインナップ ‧AIが請求書を5秒でデータ化 ‧仕訳 / 振込データを⾃動作成 ‧電帳法‧インボイス制度にも対応

    仕訳‧⽀払処理効率化 ‧年会費無料で何枚でも発⾏可 ‧カード利⽤制限で統制を実現 ‧すべての決済で1%以上の還元 法⼈カードの発⾏‧管理 ‧帳票の⼀括作成も個別作成も⾃由⾃在 ‧帳票の作成‧稟議‧送付‧保存を⼀本化 ‧レイアウトや項⽬のカスタマイズも可能 請求書発⾏ ‧スキャナ保存データも直接取込  ‧AI-OCRが⾃動読取&データ化 ‧[取引先][取引⽇][取引⾦額]での検索 帳票保存‧ストレージ ‧AIが⾒積書‧請求書を5秒でデータ ‧スマホからも申請‧承認OK ‧柔軟な通知設定‧承認の催促機能 稟議‧⽀払申請 ‧直感的UIで従業員の負担を軽減 ‧Slack連携で打刻や⾃動リマインド可能 ‧わかりやすい残業 / 休暇管理レポート 勤怠管理 ‧AIが領収書を5秒でデータ化 ‧スマホアプリとSlack連携あり ‧領収書の重複申請などミス防⽌機能 経費精算
  3. © LayerX Inc. 9 • State Management ◦ flutter_hooks ◦

    Riverpod • Router ◦ auto_route • Network ◦ graphql_flutter (graphql_codegen) ◦ dio (Open API) • Database ◦ drift 利⽤しているライブラリ📚 利⽤技術
  4. © LayerX Inc. 12 アーキテクチャ Presetation Domain Data Provider Hooks

    UI Component Parts Compounds Pages Services Specifications Models GraphQL client OpenAPI client Database Notifier State
  5. © LayerX Inc. 20 • 仕様を表すパターン ◦ 複雑な仕様を表現する実装パターン(DDDで出てきたりする) • Bool

    or Enumを返す ◦ 基本的にはboolだが、Enumも許容している • Unit Testは必須 ◦ CIで落ちるようになっている Specification🧙 複雑な仕様にどう取り組むか
  6. © LayerX Inc. 24 • 複数の Query や Mutation で共有したいフィールドをまとめて

    Fragment として宣⾔することがで きる • Fragmentを利⽤することで、Colocation(コンポーネントとコンポーネントに必要なデータを近 くに配置すること)を実現しようとする設計の考え⽅ • WidgetとGraphQLファイルをセットで置く Fragment Colocation🪄 複雑な仕様にどう取り組むか
  7. © LayerX Inc. 31 • ⼤枠Features/Application/Dataでモジュール分け • Featuresの中⾝ Presentation/Domainでレイヤー分け •

    複雑な仕様にはSpecifications & Fragment Colocationで⽴ち向かおう まとめ まとめ
  8. © LayerX Inc. 32 もう少し詳しく聞きたい⼈はカジュアルに⾯談しましょう! We are hiring! 今後の展望 •

    LayerXについてもっと知りたい • どうやって開発してるのかしりたい • Flutterについて相談したい • お酒知りたい 「LayerX 採⽤ エンジニア」で検索🔍