- Komite TC39 menambahkan tahap baru "2.7" untuk membuat proses pembaruan JavaScript lebih cepat dan lebih mulus
- Latar belakang pembaruan
- Sejak ECMAScript 2015, JavaScript menerima pembaruan baru setiap tahun
- Komite TC39 telah mencurahkan upaya besar pada pekerjaan standardisasi untuk meningkatkan bahasa ini
- Untuk memastikan perancangan, pengujian, dan implementasi fitur baru dilakukan secara menyeluruh, diperkenalkan proses bertahap multi-level
Proses bertahap untuk kualitas dan kompatibilitas
- Stage 0: Menjelajahi ide fitur baru dan mendefinisikan masalah
- Stage 1: Harus ada repositori dan "champion" yang menjelaskan kegunaan fitur, disertai penjelasan yang jelas dan potensi isu
- Stage 2: Draft awal desain spesifikasi. Komite mengharapkan fitur tersebut akan menjadi bagian dari bahasa
- Stage 3: Proposal kandidat; fitur hampir selesai, tetapi masih membutuhkan pengalaman nyata melalui implementasi di browser atau runtime sisi server
- Stage 4: Menandakan semua pekerjaan pada spesifikasi telah selesai dan siap dimasukkan ke spesifikasi bahasa secara keseluruhan. Tahap persetujuan akhir
Pengujian sebagai tonggak yang eksplisit
- Dalam proses lama, setelah mencapai Stage 3, ada kalanya pengujian harus ditulis ulang
- Hal ini membuat kembali ke Stage 2 terasa lebih menyakitkan daripada kembali ke Stage 3, terutama untuk proposal besar ketika desain perlu diubah
- Menulis pengujian membutuhkan beban kerja yang cukup besar, jadi jika harus dilakukan dua kali, perpindahan antar tahap menjadi lebih menyakitkan daripada yang dimaksudkan
- Stage 2.7 yang baru diperkenalkan untuk memisahkan tahap pengujian dari implementasi
Persyaratan Stage 2.7
- Sudah disetujui "secara prinsip", tetapi masih memerlukan verifikasi
- Menulis pengujian adalah salah satu cara terbaik untuk mempertimbangkan semua konsekuensi dari desain fitur. Beberapa fitur mungkin perlu pengujian ditulis bahkan sebelum desain selesai
- Harus memperoleh pengalaman yang cukup untuk mengembangkan dan mengimplementasikan keseluruhan kumpulan pengujian serta menunjukkan bahwa hal itu dapat diterapkan
- Teks spesifikasi untuk fitur telah selesai, dan komite TC39 tidak meminta perubahan selain perubahan yang muncul melalui pengujian, implementasi, dan penggunaan
- Stage 2.7 membantu mengurangi pekerjaan ganda yang tidak perlu dan memungkinkan proposal langsung melaju ke Stage 3
- Stage 3 kini berfokus pada memperoleh pengalaman implementasi serta menemukan masalah kompatibilitas web atau integrasi
Penerapan nyata Stage 2.7
- Saat menambahkan Stage 2.7, komite TC39 meninjau semua proposal Stage 3 yang ada. Beberapa proyek belum melakukan check-in seluruh pengujian, tetapi karena hampir siap, tetap dipertahankan di Stage 3
- Beberapa proposal seperti deferred import dan metode Math.sumPrecise sudah mencapai Stage 2.7
- Regexp.escape, yang mendukung string escape di dalam regular expression, telah mencapai Stage 2.7 dan berpindah ke Stage 3 bersama kumpulan pengujiannya
- Sebaliknya, proposal "microwaits" (yang saat ini dinamai atomics.pause) dinilai sulit untuk dituliskan pengujian yang berguna, baru-baru ini dipindahkan ke Stage 2.7, dan sebagian besar diskusi berkaitan dengan catatan referensi apa yang harus dimasukkan ke spesifikasi untuk implementasi
Belum ada komentar.