実稼働準備完了
Vize はまだ実験段階です。
それは隠れるべき免責事項ではありません。現在のフェーズの説明です。
目標は、実験的なプロジェクトから本番環境に対応したツールチェーンに移行することです。唯一の正直な道は、現実世界での検証とコミュニティからのフィードバックです。
おもちゃのアプリだけでは不十分
小さなサンプルは開発に役立ちます。
これらにより、1 つのルール、1 つの変換、1 つのソース マップ、1 つのコンパイラ動作を分離できます。
しかし、本番環境の Vue プロジェクトは小さな例ではありません。それらには以下が含まれます:
- 珍しいパッケージレイアウト
- 新旧の Vue パターンを一緒に
- パスのエイリアス
- 自動インポート
- マクロ
- スタイルプリプロセッサ
- 深くネストされたコンポーネント
- 生成されたファイル
- フレームワークの規約
- プラグインの動作
- プラットフォーム固有の問題
おもちゃのサンプルだけを渡すツールチェーンは、本番環境に対応していません。
素晴らしいデモを備えたプロトタイプです。
徹底的なスイープが重要
ここでは退屈な作業が最も重要です。
Vize は実際のプロジェクトをファイルごとに、エラーごとに、診断ごとに、スナップショットごとに実行する必要があります。
つまり、次のことを確認します。
- ビルド出力
- lint 出力
- 型チェック出力
- フォーマッタの安定性
- ソースの場所
- パス解決
- 開発サーバーの動作
- 実稼働ビルドの動作
- Windows と Unix の違い
このような徹底的な作業は魅力的ではありません。
しかし、それは「サンプル上で動作する」を「実際のリポジトリでも存続する」に変える作業です。
コミュニティからのフィードバックが主なインプットです
コミュニティはメンテナーが想像していなかったケースを発見するでしょう。
それは失敗ではありません。それがポイントです。
すべての実際のレポートは価値があります。
- コンパイルに失敗したプロジェクト
- ルールを使用できなくする誤検知
- 技術的には正しいが役に立たない診断
- CI におけるパフォーマンスの崖
- マクロ規約が欠落しています
- Windows のみのパスの問題
- 1 つのトークンを指すソース マップ
これらの報告は中断ではありません。それらはデータセットです。
正しい対応は、それらをフィクスチャ、テスト、スナップショット、ベンチマークに変えることです。
本番準備完了はラベルではなく動作です
README にそう書いてあるからプロジェクトが「本番準備完了」になるわけではありません。
これは時間の経過に伴う動作です。
- 修正リクエストは回帰テストになります
- ベンチマークは実際のワークフローをカバーします
- リリースノートではリスクについて説明しています
- 重大な変更は意図的なものです
- CI はサポートされているプラットフォームを表します
- 診断は自動化に十分な安定性を維持します
- ユーザーはツールが何を行うかを予測できます
Vize は多くのレイヤーに影響を与えるため、これは特に重要です。コンパイラの不一致、リンターの誤検知、型チェックの不一致、または不正なソース マップはすべて、さまざまな形で信頼を損なう可能性があります。
表面積が大きいため、ハードルは高くなります。
ここで独立性が役立つ理由
公式ツールには別の種類の注意が必要です。
それらはエコシステムへの期待を即座に伝えます。大規模なユーザーベースに影響を与えずに、あまり積極的に実験することはできません。
Vize は独立しているため、迅速に行動する余地が与えられます。
- アーキテクチャの変更を試す
- 内部を書き換える
- 厳密な診断を追加します
- 代替コンパイラ バックエンドをテストする
- 弱い抽象化を削除する
- パフォーマンスのボトルネックを追跡する
- 即時の安定性を約束することなく、コミュニティのレポートから学びます
そのスピードは便利ですが、それには責任が伴います。
プロジェクトはそのステータスを明確にし、検証に真剣に取り組む必要があります。
ロードマップはフィードバック型です
運用準備への道は、機能チェックリストだけではありません。
それはフィードバック ループです。
- 実際のプロジェクトで Vize を実行します。
- すべての失敗をテストまたはフィクスチャとしてキャプチャします。
- 症状だけでなく、基礎となるモデルを修正します。
- 公式ツールと動作を比較します。
- パフォーマンスを可視化します。
- 驚くべきケースが退屈になるまで繰り返します。
そうやってツールチェーンは成長していきます。
終わったふりをすることではありません。
システムが信頼できるようになるまで、実際のコード、実際のユーザー、実際の制約に基づいて作業を形成します。