Deno と AI を活用したプロジェクト構成のベストプラクティス集です。
このリポジトリの主体は .clinerules ファイルです。これは Deno を使用したモジュール設計とコーディング規約をまとめたガイドラインです。
その他のファイル(calc モジュール、constants モジュール、スクリプト類)は、.clinerules に記載されているベストプラクティスの実装例として提供されています。これらのサンプルコードは、ガイドラインの具体的な適用方法を示すためのものです。
このプロジェクトのモジュール設計は、以下の原則に基づいています:
各モジュールは、mod.ts
と deps.ts
の2つのファイルによってそのコンテキスト(文脈)が完全に定義されます:
-
mod.ts
: モジュールが外部に提供する機能を定義- 外部に公開するインターフェースのみを re-export
- 実装の詳細を隠蔽
- このファイルを見るだけで、モジュールの提供する機能が理解できる
-
deps.ts
: モジュールが依存する外部機能を定義- 他モジュールからの import をここに集約
- モジュール内で使用する外部依存を re-export
- このファイルを見るだけで、モジュールの依存関係が理解できる
この設計により:
- モジュールの依存関係が透明になる
- コードの変更影響範囲が予測しやすくなる
- モジュール間の結合度を低く保てる
- リファクタリングが容易になる
以下は上記の設計原則に従って実装されたサンプルコードの構造です:
.
├── calc/ # 計算機能モジュール(サンプル実装)
│ ├── mod.ts # 外部向けエクスポート(モジュールのインターフェース)
│ ├── deps.ts # 依存関係の管理(モジュールの依存コンテキスト)
│ ├── lib.ts # 実装(内部実装の詳細)
│ ├── cli.ts # CLI インターフェース
│ └── mod.test.ts # テスト
├── constants/ # 定数モジュール(サンプル実装)
│ ├── mod.ts # 外部向けエクスポート
│ ├── lib.ts # 実装
│ └── mod.test.ts # テスト
└── scripts/ # 開発用スクリプト(サンプル実装)
├── check-deps.ts # 依存関係チェック
└── deno-lint-plugin.ts # カスタムリントルール
- .clinerules を読んでガイドラインを理解する
- サンプル実装を参考に、自身のプロジェクトに適用する
- 必要に応じてガイドラインをプロジェクトの要件に合わせてカスタマイズする
サンプル実装を試すには:
# 依存関係のインストール
deno cache --reload deps.ts
# リントの実行
deno lint
# テストの実行
deno test
# カバレッジの確認
deno task test:cov
# コマンドラインでの検証
deno task check:deps
# リントプラグインによる検証
deno lint
# 開発サーバーの起動
deno task dev
# テストカバレッジの確認
deno task test:cov
# 依存関係のチェック
deno task check:deps
MIT
コントリビューションは主に以下の2つの形式で受け付けています:
-
.clinerules の改善
- ガイドラインの明確化
- 新しいベストプラクティスの追加
- 既存のプラクティスの更新
-
サンプル実装の改善
- 新しいサンプルの追加
- 既存サンプルの改善
- バグ修正
コントリビューションの際は以下を確認してください:
- .clinerules のガイドラインに従っているか
- サンプルコードが適切にガイドラインを実装しているか
- テストが追加されているか
- カバレッジが維持されているか
- リントエラーがないか
現在進行中のタスク:
- import/export ルールを静的に検査する lint ルールの作成
- mod.ts が re-export のみを行っているか検証
- deps.ts が他モジュールの mod.ts のみを参照しているか検証
- モジュール内の実装が deps.ts からの re-export を参照しているか検証