Era uma vez, um desenvolvedor antigo e sábio me deu conselhos, que até recentemente eu realmente não apreciava.
Durante a revisão do código, consideramos algumas funções que exigiam que o programa exibisse uma lista de letras AZ (por exemplo, uma lista de contatos com um conjunto de botões que permitem que você pule para nomes que começam com uma determinada letra).
Então, um jovem programador de sucesso apareceu. (Bem, fui eu.) Decidi que, em vez do código rígido da matriz de todas as letras, seria mais fácil escrever um loop for que roda de 65 a 90 e depois gerava as letras pelo código de caractere recebido.
Em uma variante JavaScript, será algo parecido com isto:
for (let i = 65; i <= 90; i++) { letters.push(String.fromCharCode(i)) }
Um desenvolvedor antigo e sábio olhou para mim e perguntou por que eu simplesmente não codifiquei essa matriz. Não parece que o alfabeto será diferente de uma sessão para outra. Então, por que calculá-lo sempre?

Este artigo foi traduzido com o suporte da EDISON Software, que está desenvolvendo o sistema de diagnóstico do repositório de documentos Vivaldi e investindo em startups .
Eu estava apavorado. “Como você pode esperar que eu digite todas as letras, como algum tipo de criança. Eu sou um desenvolvedor de software profissional! "Eu tenho algoritmos e estruturas de dados, e um coprocessador matemático, pelo amor de Deus!"
"Bom", ele disse. "Basta usar essa funcionalidade em tempo de design para gerar uma matriz e, em seguida, copie e cole-a no seu código de trabalho."
E então ele disse isso:
"Evite em tempo de execução o que você pode fazer durante o desenvolvimento."
Agora vamos ser honestos. Meu pequeno loop for não iria desacelerar o aplicativo. E as máquinas modernas serão tão rápidas em entender esse código que ninguém nem notará. Mas, como regra, este é um conselho sábio.
Com muita freqüência, escrevemos código que converte raramente dados alterados de um formato para outro a cada solicitação. Pense em todas as situações em que obtemos conteúdo de um banco de dados que pode ser alterado uma ou duas vezes por ano, formata-o e envia-o ao navegador, sem ter que desacelerar o aplicativo. Isso é especialmente verdadeiro para sites associados a um sistema de gerenciamento de conteúdo.
É por isso que acho que, nos próximos anos, players conhecidos como Wordpress, Drupal etc. enfrentarão um problema sério de geradores de sites estáticos como
Gatsby ,
Hugo ou
Jekyll , combinados com um processo de construção suave,
CMS sem cabeça , CDN barato e rápido processo de integração contínua.
Esse padrão foi chamado
JAMstack , que significa "JavaScript, API e a pilha de marcação". E os
resultados são muito impressionantes .
O conselho de um desenvolvedor antigo e sábio soa em meus ouvidos: "Evite durante a execução do programa o que você pode fazer durante o desenvolvimento". E, com o tempo, percebi que esse conselho tem consequências de longo alcance. Não apenas para desenvolvimento de software, mas também para a vida toda.
Recentemente, li
o maravilhoso
livro de Ray Dalio, Principles: Work and Life . O tema central do livro é que existem muito menos tipos de problemas do que problemas reais. Portanto, se você trabalhar com antecedência e descobrir como abordará o tipo específico de problema que provavelmente encontrará, então, quando vier, estará muito melhor preparado para lidar com isso.
De fato, você pode tomar melhores decisões com mais rapidez, classificando sua abordagem para vários tipos de problemas durante o "desenvolvimento", quando está silenciosamente pensando na vida, e não durante a "execução", quando se depara com um problema real no momento e em pânico.
Dalio implementou essa técnica catalogando suas abordagens como um conjunto de princípios. Ele chegou ao ponto de codificar seu processo de tomada de decisão em um conjunto de algoritmos de computador que ele podia testar em uma enorme quantidade de dados históricos.
Como ele é multibilionário e administra uma empresa de investimentos muito bem-sucedida, eu diria que funcionou. De fato, Wall Street está começando a contratar mais programadores do que negociantes de ações. Portanto, se você tiver dúvidas de ter escolhido a profissão errada, há muitas evidências de que o software come o mundo.
- Compartilhei minhas próprias dicas e lições aprendidas em uma entrevista recente no podcast Developer On Fire, que você pode ouvir aqui .
- Você pode conhecer o JAMstack em Jamstack.org
- O blog Netlify também possui uma boa visão geral dos geradores de sites estáticos.
- E aqui está um artigo sobre uma pilha específica que eu revi e recomendei recentemente que usa uma combinação de Gatsby, Contentful, Netlify e Algolia como uma alternativa ao CMS tradicional para o site de documentação.
Publicações mais interessantes

Leia também o blog
Empresa EDISON:
20 bibliotecas para
aplicação iOS espetacular