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

TypeScript開発にモジュラーモノリスを持ち込む

 TypeScript開発にモジュラーモノリスを持ち込む

■ イベント
TypeScriptを活用した型安全なチーム開発 2024
https://sansan.connpass.com/event/337268/

■ 発表者
技術本部 Digitization部 Bill One Entryグループ
秋山 雅之

■ Digitization部 採用情報
https://media.sansan-engineering.com/digitization

SansanTech

December 22, 2024
Tweet

More Decks by SansanTech

Other Decks in Technology

Transcript

  1. PR:Digitization部② 研究開発 ビジネス職 オペレーションセンター データ化の品質・コスト・ オペレーションの管理 オペレーター(データ⼊⼒・ スキャンする⼈)の採⽤ など Bill

    One Entryグループ データ化 グループ 請求書データ化システム 契約書データ化 システム 請求書スキャン システム メール署名抽出 システム インフラ グループ データ化システムのインフラ基盤 名刺データ化 システム エンジニア職 Digitization部 プロダクト 開発 Sansanの 開発エンジニアなど
  2. PR:Digitization部③ 名刺データ化 メール署名抽出 契約書データ化 請求書データ化 AWS インフラ ⾔語 フレームワーク ライブラリ

    Ruby on Rails React Sidekiq Ruby on Rails Sidekiq Ruby on Rails React Redux Express Chromatic AWS AWS Next.js MUI ReactAdmin Chakra UI FastAPI OpenCV その他ツール その他 Re:dash, CircleCI など 請求書スキャン React Semantic UI Express Fast API
  3. ⽅針3:Lint ルールによって実現する - (1) パッケージ管理ツールの workspaces 機能 - e.g., npm,

    yarn, pnpm - (2) モノレポ管理ツール - e.g., Turborepo, Nx - (3) Linter - e.g., ESlint, Biome
  4. • 経験的に知られていたコード品質が持つビジネスインパクトを、 裏付けるような研究が⾏われている。 • コード品質を担保する⼿法としてモジュラーモノリスがある。 • モジュールを括りだすガイドラインとして次の2つを設定した。 ◦ (A) ドメインで分離する

    ◦ (B) DBデータを占有するように分離する • 各モジュールはレイヤードアーキテクチャで構成した。 • NoSQLは、モジュールにDBデータを占有させる⽅針と相性が良い。 • TypeScriptにおけるモジュール化には静的解析が使え、 Lintルールの設定だけでも機能する。 まとめ