ArchSteer

ほとんどのチームにはアーキテクチャ図があります。しかし、それを信頼しているチームは少ないです。

コードベースはシステムの唯一の完全に最新の記録ですが、ファイルごとに読み込むことは、境界、依存関係の方向、データアクセス、時間の経過に伴う形状の変化を見るには不適切な方法です。

そこで今週、私は意図的にシンプルな実験を行っています:

1つのリポジトリに対してアーキテクチャX線を実行し、知らなかったことを1つ見つけてください。

チャレンジ

Python 3.10以降が必要です:

pipx install archsteer
cd your-repo
archsteer xray

Enter fullscreen mode Exit fullscreen mode

.archsteer/report.htmlを開き、1つの驚きを探してください:

  • きれいだと思っていた境界を横断する依存関係
  • 名前が示唆するよりもはるかに多くのシステムを所有しているモジュール
  • 予期しないレイヤーでのデータアクセス
  • 誰も覚えていない外部コールサイト
  • 現在のアーキテクチャの中にまだ存在するレガシーアーキテクチャ
  • ADRを生み出すべきだった構造変更

発見を共有するか、モデルが間違っている場合はissueを開くか、結果を非公開にしてください。3つの結果すべてが有用です。

できることとできないこと

ArchSteerはリポジトリを静的に読み取り、コード由来のモデル、生きているアーキテクチャドキュメント、図、進化フィード、境界変更のドラフトADRを出力します。ローカルで実行され、対象コードを実行せず、リポジトリをアップロードせず、アカウントも必要ありません。

モデルはヒューリスティックです。これは、システムが特定の動作をすることを正式に証明するものではなく、アーキテクトがキュレーションできる常に最新の出発点であることを意図しています。自信たっぷりに間違った境界は、まさに報告してほしい結果です。

現在の言語サポートはPython、TypeScript/JavaScript、Java Spring、Salesforce Apexをカバーしています。

コーディングエージェントによって重要性が増す理由

コーディングエージェントは編集周辺のファイルからローカルパターンを学習します。半移行されたコードベースでは、レガシー例がターゲット例を上回るため、エージェントはアーキテクチャを後退させる完全に妥当なコードを生成する可能性があります。

正確な現在のモデルにより、制御ループが可能になります:

  1. コードが実際に実装しているアーキテクチャを導出する
  2. 1つのターゲット不変条件を宣言する
  3. 関連する不変条件をコーディングエージェントのファイルスコープコンテキストに入れる
  4. 結果のコードを確認する
  5. 新たに発生した違反のみをブロックし、配信を継続しながら負債を削減する

このチャレンジは、チームがルールを記述する前に価値を提供するはずなので、ステップ1から始まります。

参加する

実行:

pipx install archsteer && archsteer xray

Enter fullscreen mode Exit fullscreen mode

次に、1つの驚くべき発見を共有し、GitHubのArchSteerにリンクするか、モデルがアーキテクチャを誤った最も具体的な例を提出してください。ArchSteerは無料でMITライセンスです。


Originally published at archsteer.com. I build ArchSteer and welcome blunt feedback on the model.