5 ポイント 投稿者 xguru 2024-09-07 | まだコメントはありません。 | WhatsAppで共有
  • TC39委員会が、JavaScriptの更新プロセスをより速く円滑にするため、新しいステージ「2.7」を追加
  • 更新の背景
    • ECMAScript 2015以降、JavaScriptは毎年新しい更新を受けている
    • TC39委員会は、言語の改善のために標準化作業へ大きな努力を注いできた
    • 新機能の徹底した設計、テスト、実装を確実にするため、多段階プロセスを導入

品質と互換性のための段階的プロセス

  • Stage 0: 新機能のアイデアを探り、問題を定義
  • Stage 1: 明確な説明と潜在的な課題を含み、機能の有用性を説明するリポジトリと「チャンピオン」が必要
  • Stage 2: 仕様の初期設計Draft。委員会は、その機能が言語の一部になることを期待
  • Stage 3: 候補提案として機能はほぼ完成しているが、ブラウザやサーバー側ランタイムでの実装を通じた実地経験が必要
  • Stage 4: 仕様に関するすべての作業が完了し、言語仕様全体に組み込む準備が整ったことを意味する。最終承認段階

明示的なマイルストーンとしてのテスト

  • 元のプロセスでは、Stage 3に到達するとテストを書き直さなければならない場合があった
  • これは設計変更が必要な場合、特に大きな提案では、Stage 3へ戻るよりもStage 2へ戻るほうがよりつらかった
  • テスト作成にはかなりの作業量が必要なため、2回行う必要があると、ステージ間の移動が意図以上に負担になる
  • 新しいStage 2.7は、テスト段階を実装から切り離すために導入された

Stage 2.7の要件

  • 「原則として」承認されているが、検証が必要
  • テスト作成は、機能設計のあらゆる結果を考慮するための最良の方法の1つ。一部の機能では、設計完了前でもテスト作成が必要になる場合がある
  • 完全なテストスイートとプロトタイプを開発し、実装可能であることを示す十分な経験を得る必要がある
  • 機能仕様のテキストは完成しており、TC39委員会は、テスト・実装・利用を通じて発生する変更以外の変更を求めない
  • Stage 2.7は不要な重複作業を減らし、提案がそのままStage 3へ進めるよう支援する
  • Stage 3は現在、実装経験を得て、Web互換性や統合上の問題を見つけることに関する段階

Stage 2.7の実際の適用

  • TC39委員会はStage 2.7を追加する際、既存のすべてのStage 3提案を見直し、一部のプロジェクトは全テストをチェックインしていなかったものの、準備がほぼ完了していたためStage 3のままとなった
  • deferred import提案とMath.sumPreciseメソッドのようないくつかの提案は、すでにStage 2.7に到達
  • 正規表現内で文字列エスケープをサポートするRegexp.escapeはStage 2.7に到達し、テストスイートとともにStage 3へ移行
  • 一方で「microwaits」提案(現在はatomics.pauseという名称)は、有用なテストを書くのが難しいもので、最近Stage 2.7へ移され、実装のための仕様にどのような注記を入れるべきかが主な議論だった

まだコメントはありません。

まだコメントはありません。