Permanecendo no Fluxo
(… ou , Por que fiquei obcecado com a programação de arquivo único e você também deveria)
A grande mentira que nos contam, na escola e novamente no início da carreira, é que ser “bom” em programação significa resolver problemas cada vez mais difíceis de uma maneira mais elegante. A verdade é muito mais mundana - ser bom em programação é resolver com eficiência um grande conjunto de problemas triviais, de forma rápida e limpa. O que é verdade, no entanto, é o quão valioso é o “estado de fluxo” para fazer isso. Ser capaz de permanecer imerso no trabalho permite que você alterne rapidamente entre os domínios, rastreando o fluxo de estado do usuário para a lógica de negócios até o armazenamento de dados e vice-versa.
Muitas práticas de programação “boas” adicionam complexidade:
- Modelos e visualizações separados e controladores.
- Mantenha todos os seus testes em arquivos e pastas paralelos.
- Não inline CSS — mantenha-o em uma hierarquia de arquivos CSS separados, referenciados por classe e ID.
- Nem mesmo ESCREVA CSS — use um pré-processador e gere-o a partir de alguma linguagem intermediária.
- Use namespaces aninhados de pacotes e módulos, cada um com suas próprias convenções padrão para nomear thin_gs.
Da mesma maneira que as escalas de pesquisa são traçadas contra a capacidade média do ser humano de discriminar (geralmente 5-7 opções, nunca mais de 9), estruturas que dependem de menos arquivos, de menos tipos e organizadas em uma hierarquia tão plana quanto possível são mais simples para os novos desenvolvedores se familiarizarem e mais fáceis para TODOS permanecerem em estado de fluxo ao trabalhar.
Programadores “bons” adoram denegrir PHP e javascript por serem linguagens “ruins”; ainda assim, ambos são notáveis por suportar padrões simples de “arquivo único”. O Javascript faz isso por meio do JSX; O PHP simplesmente permite que cada script php contenha HTML arbitrário também. Decidi recriar a alegria do desenvolvimento de arquivo único, mas para Python. Esperamos que isso preencha as lacunas óbvias entre as comunidades de ciência de dados python “Notebook”, as comunidades de desenvolvedores de software “Boot Camp” e as linhas de frente do desenvolvimento de aplicativos da web.
Nas próximas postagens do blog, falarei sobre muitas das práticas “ruins” que adotei para simplificar e agilizar minha experiência de desenvolvimento. Melhor ainda, anunciarei as várias bibliotecas de código aberto que descobri, ampliei ou desenvolvi ao longo do caminho.