FNSP Web Page

Blog · página 2

Limitar pedidos sem incomodar quem visita

Um formulário aberto na internet acaba por receber a visita de um robô. Sem limite nenhum, uma tarde chega para encher a base de dados — e o custo de a limpar é sempre maior do que o de a proteger. 1. Janela fixa: simples, com um defeito const contagens = new Map(); function dentroDoLimite(chave, ma…

Ler o artigo

O Node já traz executor de testes

Durante anos, escrever o primeiro teste de um projeto Node começava por escolher entre o Jest, o Mocha, o Vitest e mais três — e por instalar duzentos pacotes para correr uma asserção. Desde a versão 20, o Node traz um executor de testes embutido . Para projetos pequenos e para bibliotecas, muitas v…

Ler o artigo

git bisect: encontrar o commit que partiu tudo

Funcionava no mês passado, está partido hoje, e pelo meio há duzentos commits. A forma manual de encontrar o culpado é ir recuando e experimentando — e são duzentas tentativas no pior caso. O git bisect faz uma busca binária pelo histórico: com duzentos commits, encontra-o em oito tentativas. 1. À m…

Ler o artigo

Ordenar sem estragar o original

Durante vinte e cinco anos, o sort() e o reverse() alteraram o array em que eram chamados. É a origem de uma classe inteira de bugs: uma função recebe uma lista, ordena-a para mostrar, e devolve-a alterada a quem a emprestou. O ECMAScript 2023 acrescentou quatro métodos que fazem o mesmo sem tocar n…

Ler o artigo

Agrupar listas com Object.groupBy

O Object.groupBy entrou no JavaScript com o ECMAScript 2024 e resolve uma coisa que toda a gente já escreveu à mão pelo menos uma vez: separar uma lista em grupos, segundo um critério qualquer. O que muda Deixa de ser preciso um reduce com um acumulador e a verificação do costume para o caso de a ch…

Ler o artigo

Porque é que o Vite arranca instantaneamente

Quem vem do Webpack e experimenta o Vite pela primeira vez faz sempre a mesma pergunta: como é que o servidor de desenvolvimento está pronto em menos de um segundo, num projeto onde o outro demorava trinta? A resposta não é "é mais rápido a fazer o mesmo". É que faz outra coisa . 1. O Webpack constr…

Ler o artigo

O que o ^ do package.json realmente permite

Está em todas as linhas de dependências de todos os projetos, e é frequentemente lido como decoração. Não é: é um contrato sobre o que pode entrar no seu projeto sem ninguém dar por isso. 1. Os três números 3 . 4 . 2 │ │ └── PATCH: correções, sem mudar comportamento │ └────── MINOR: funcionalidades …

Ler o artigo

Gostávamos de saber quantas pessoas visitam o site, com o Google Analytics. Sem a sua autorização não corre nada. Política de Privacidade.