以下の内容はhttps://ozaki25.hatenadiary.jp/entry/2024/12/23/212515より取得しました。
TypeScript開発にモジュラーモノリスを持ち込む
- Digitization部
- アーキテクチャ特性の1つとしてモジュール性
- モジュール性がないとコードの品質が低下する
- 技術的負債の量を抑えて開発生産性を維持するために必要なこと
- モジュラーモノリス
- 単一プロセスが別々のモジュールで構成される
- 独立して作業できる
- デプロイのために結合する必要がある
- レイヤードアーキテクチャ
- 技術レイヤーを水平に分割
- モジュラーモノリスは機能ごとに垂直に分割
- モジュール分割
- DBのテーブルもモジュールごとに分割し共有しない
- 同じテーブルを複数のモジュールからアクセスしてると改修はいるときの複雑さが増す
- テーブルのjoinが必須だと状況が違うことも
- モジュールの中をレイヤードアーキテクチャで
- モジュール外に公開するものだけをエントリーポイントのファイルでexport
- Lintによって縛る
- モノレポライブラリなどは使わなかった
- モジュールが明示的にexportしたものだけをimportするルールが守れればいい
- ルールは自作した
no-restricted-path なんかはあるが
Denoで作るチーム開発生産性向上のためのCLIツール
- Contract One
- 法人向けの契約データベース
- 契約書をデータ化構造化して全社で活用できる
- ちょっとしたスクリプトのコード
- 個々人が作ったりルールなく量産されることが多い
- メンテされてなかったりドキュメントもなかったり
- 共通の実行環境を作って整備した
- 用途
- テスト用のデータ準備
- サンプルPDFを生成
- 運用作業の自動化
- AI生成系のコマンド
- Deno
- 標準機能が豊富
- 依存をかなり小さくできる
- 標準ライブラリもDenoコアメンバーが作ってる
- 小さい環境で小さくやるのに相性がいい
- Globalにインストールできる
- Denoの昨日で任意のコマンドでグローバルにインストールされる
- TypeScriptで書ける
React Routerで実現する型安全なSPAルーティング
React Router
- Eight
- 名刺アプリ
- Sansanで唯一のtoC
- web版もある
- 企業向けのサービスもある
- React Router
- 不正なURLへの遷移
- 直に書くとtypoとかundefinedの場合とか
- 型安全にURLを生成できるような関数を作る
- generatePath()がReact Routerから提供されてるのでそれを使うといい
- ルーティング変更時の修正量
- React Routerのv7からRemixが統合される
- v6.4からloaderとactionの概念が入っていた
- 機能が増えたこともあってルーティングが変わると影響が大きくなった
- パスに応じた型の自動生成
型情報を用いたLintでコード品質を向上させる
Typed Linting
- Bill One
- Typed Linting
- 型情報を使って静的解析をする
- ASTに加えて型情報も使って解析する
- typescript-eslint
- 型情報を使うので実行時間は増える
- Rust製ツールでは
- BiomeやoxlintではまだTyped Lintingはできない
- パフォーマンス上の課題は変わらずあるため
以上の内容はhttps://ozaki25.hatenadiary.jp/entry/2024/12/23/212515より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます
不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14