5 điểm bởi xguru 2024-09-07 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Ủy ban TC39 đã bổ sung stage mới 2.7 để giúp quy trình cập nhật JavaScript nhanh hơn và trơn tru hơn
  • Bối cảnh của cập nhật
    • Kể từ ECMAScript 2015, JavaScript nhận các bản cập nhật mới hằng năm
    • Ủy ban TC39 đã dành nhiều nỗ lực cho công việc tiêu chuẩn hóa nhằm cải thiện ngôn ngữ
    • Một quy trình nhiều giai đoạn đã được đưa vào để bảo đảm các tính năng mới được thiết kế, kiểm thử và triển khai kỹ lưỡng

Quy trình theo từng giai đoạn vì chất lượng và khả năng tương thích

  • Stage 0: Khám phá ý tưởng tính năng mới và xác định vấn đề
  • Stage 1: Cần có mô tả rõ ràng và các vấn đề tiềm ẩn, cùng một kho lưu trữ giải thích tính hữu ích của tính năng và một "champion"
  • Stage 2: Bản nháp thiết kế ban đầu cho đặc tả. Ủy ban kỳ vọng tính năng này sẽ trở thành một phần của ngôn ngữ
  • Stage 3: Đề xuất ở trạng thái ứng viên, gần như đã hoàn thiện tính năng nhưng vẫn cần trải nghiệm thực tế thông qua việc triển khai trong trình duyệt hoặc runtime phía máy chủ
  • Stage 4: Mọi công việc liên quan đến đặc tả đã hoàn tất và sẵn sàng được đưa vào đặc tả ngôn ngữ tổng thể. Giai đoạn phê duyệt cuối cùng

Kiểm thử như một cột mốc rõ ràng

  • Trong quy trình ban đầu, khi đạt tới Stage 3 thì đôi khi phải viết lại các bài kiểm thử
  • Điều này đặc biệt gây khó chịu với các đề xuất lớn khi cần thay đổi thiết kế, vì quay lại Stage 2 còn đau đớn hơn quay lại Stage 3
  • Việc viết kiểm thử đòi hỏi khối lượng công việc đáng kể, nên nếu phải làm hai lần thì việc di chuyển giữa các stage trở nên khó khăn hơn dự tính
  • Stage 2.7 mới được đưa vào để tách riêng bước kiểm thử khỏi bước triển khai

Yêu cầu của Stage 2.7

  • Đã được phê duyệt "về nguyên tắc" nhưng vẫn cần xác minh
  • Viết kiểm thử là một trong những cách tốt nhất để xem xét mọi hệ quả từ thiết kế tính năng. Một số tính năng có thể cần viết kiểm thử ngay cả trước khi thiết kế hoàn tất
  • Cần xây dựng đầy đủ bộ kiểm thử và nguyên mẫu, đồng thời có đủ kinh nghiệm để chứng minh rằng có thể phát triển và triển khai được
  • Phần văn bản đặc tả cho tính năng đã hoàn chỉnh, và ủy ban TC39 sẽ không yêu cầu thay đổi nào khác ngoài những thay đổi phát sinh qua kiểm thử, triển khai và sử dụng
  • Stage 2.7 giúp giảm bớt công việc trùng lặp không cần thiết, đồng thời hỗ trợ đề xuất chuyển thẳng sang Stage 3
  • Giờ đây Stage 3 tập trung vào việc thu thập kinh nghiệm triển khai và phát hiện các vấn đề về tương thích web hoặc tích hợp

Ứng dụng thực tế của Stage 2.7

  • Khi bổ sung Stage 2.7, ủy ban TC39 đã rà soát mọi đề xuất Stage 3 hiện có; một số dự án chưa check-in toàn bộ kiểm thử nhưng gần như đã sẵn sàng nên vẫn được giữ ở Stage 3
  • Một vài đề xuất như deferred import và phương thức Math.sumPrecise đã đạt tới Stage 2.7
  • Regexp.escape, tính năng hỗ trợ escape chuỗi trong biểu thức chính quy, đã đạt Stage 2.7 và sau đó chuyển sang Stage 3 cùng với bộ kiểm thử
  • Trong khi đó, đề xuất "microwaits" (hiện được đặt tên là atomics.pause) là trường hợp khó viết kiểm thử hữu ích; nó gần đây đã được chuyển sang Stage 2.7 và phần lớn thảo luận xoay quanh việc nên đưa những ghi chú tham chiếu nào vào đặc tả cho triển khai

Chưa có bình luận nào.

Chưa có bình luận nào.