5 pontos por xguru 2024-09-07 | Ainda não há comentários. | Compartilhar no WhatsApp
  • O comitê TC39 adicionou o novo estágio "2.7" para tornar o processo de atualização do JavaScript mais rápido e fluido
  • Contexto da atualização
    • Desde o ECMAScript 2015, o JavaScript recebe novas atualizações todos os anos
    • O comitê TC39 tem dedicado grande esforço ao trabalho de padronização para aprimorar a linguagem
    • Foi introduzido um processo em múltiplos estágios para garantir projeto, testes e implementação minuciosos de novos recursos

Processo em etapas para qualidade e compatibilidade

  • Stage 0: exploração de ideias de novos recursos e definição de problemas
  • Stage 1: deve haver um repositório e um "champion" que expliquem a utilidade do recurso, incluindo uma descrição clara e possíveis problemas
  • Stage 2: rascunho inicial do design da especificação. O comitê espera que o recurso passe a fazer parte da linguagem
  • Stage 3: proposta candidata em que o recurso está praticamente concluído, mas ainda é necessária experiência prática por meio da implementação em navegadores ou runtimes do lado do servidor
  • Stage 4: significa que todo o trabalho da especificação foi concluído e que ela está pronta para ser incluída na especificação completa da linguagem. Etapa de aprovação final

Testes como marco explícito

  • No processo original, ao chegar ao Stage 3, em alguns casos era necessário reescrever os testes
  • Isso fazia com que, especialmente em propostas grandes, voltar ao Stage 2 fosse mais doloroso do que voltar ao Stage 3 quando era preciso alterar o design
  • Escrever testes exige uma carga de trabalho considerável, então, quando isso precisava ser feito duas vezes, a movimentação entre estágios se tornava mais penosa do que o pretendido
  • O novo Stage 2.7 foi introduzido para separar a etapa de testes da implementação

Requisitos do Stage 2.7

  • Foi aprovado "em princípio", mas ainda precisa ser validado
  • Escrever testes é uma das melhores formas de considerar todas as consequências do design de um recurso. Alguns recursos podem exigir a escrita de testes antes mesmo de o design estar concluído
  • É preciso desenvolver o conjunto completo de testes e um protótipo, além de obter experiência suficiente para demonstrar que a implementação é viável
  • O texto da especificação do recurso está concluído, e o comitê TC39 não exige mudanças além das que surgirem por meio de testes, implementação e uso
  • O Stage 2.7 ajuda a reduzir trabalho duplicado desnecessário e permite que as propostas avancem diretamente para o Stage 3
  • O Stage 3 agora passa a se concentrar em obter experiência de implementação e descobrir problemas de compatibilidade com a web ou de integração

Aplicação prática do Stage 2.7

  • Ao adicionar o Stage 2.7, o comitê TC39 revisou todas as propostas existentes em Stage 3, e alguns projetos permaneceram em Stage 3 porque, embora ainda não tivessem registrado todos os testes, estavam quase prontos
  • Algumas propostas, como deferred import e o método Math.sumPrecise, já chegaram ao Stage 2.7
  • Regexp.escape, que oferece suporte a escape de strings dentro de expressões regulares, chegou ao Stage 2.7 e avançou para o Stage 3 junto com o conjunto de testes
  • Por outro lado, a proposta "microwaits" (atualmente chamada atomics.pause) era difícil para a escrita de testes úteis, passou recentemente ao Stage 2.7, e grande parte da discussão era sobre quais observações colocar na especificação para a implementação

Ainda não há comentários.

Ainda não há comentários.