Artigo
· Ago. 15 4min de leitura

Por que precisamos de regras ou convenções de codificação, afinal?

Este ótimo artigo despertou recentemente algumas discussões privadas, e eu gostaria de compartilhar algumas reflexões próprias a partir dele.

A preocupação central se resume a: Por que precisamos de regras ou convenções de codificação, afinal? O que aconteceu com a maravilhosa era do programador-artista renascentista, trilhando seu próprio caminho, antes de ser substituído pelo artesão e agora (ainda pior) pela IA?
Resumindo, há alguns motivos pelos quais padrões e diretrizes de codificação são úteis — e o programador-artista renascentista não desapareceu totalmente.

Motivo 1: Hoje em dia, quando você está treinando um verdadeiro artista iniciante, começa pedindo para ele tentar colorir dentro das linhas.
Esse artista pode ser brilhante um dia — mas ainda não é.
Se você quer aprender a produzir arte, faz isso primeiro; depois, gradualmente, aprende técnicas e conceitos com os mestres; e então, se for realmente bom (ou com um pouco de sorte), estabelece seu próprio estilo e cria algo novo que o resto do mundo vai querer seguir.
Mas, para começar, é preciso seguir as regras.

 

(Obs.: encontrei isso na internet; nenhum dos meus filhos ainda possui tal habilidade.)

Razão 2: Se você está operando em uma área onde seu nicho de criatividade deve se encaixar ao lado de outros – algo como uma colcha de retalhos – então você precisa de algumas regras para seguir, ou a arte não funcionará porque as peças não se encaixam. Você pode concordar com a convenção de “todos fazemos quadrados de 40cm” ou então ter que trabalhar de forma ainda mais próxima e colaborativa com um monte de outras pessoas, o que o artista solitário que passa 4 anos pintando um teto pode não ser o melhor em fazer. (Especialmente se a gerência decidir que alguns outros artistas solitários precisam ser chamados para “ajudar”).

(O ChatGPT me deu isso. Desculpas a todos os artistas de verdade.)

Razão3: Se você está trabalhando em uma peça de arte de programação existente, particularmente antiga ou particularmente brilhante, você frequentemente enfrenta o desafio entre entender e abraçar a intenção original do autor e a elegância do design e da execução, ou simplesmente dizer “agora eu estou no comando, vamos jogar fora e fazer do meu jeito”. Vou dar um exemplo aqui: uma aplicação web em que trabalhei faz uso intenso de “páginas XML” onde você tem um trio de (pageName.xml, pageName.js, pageName.mac) que constituem uma página. O pageName.xml foi, até mais recentemente do que eu gostaria de admitir, provavelmente escrito neste estranho dialeto "WD-xsl" que se assemelha muito ao XSLT padrão, mas só funciona no Internet Explorer Microsoft Edge se ele estiver fingindo ser o IE5. O pageName.js provavelmente contém a palavra "frame" cerca de 40 vezes mais do que seria confortável. O pageName.mac provavelmente está cheio de sintaxe de ponto, formas curtas de comandos e macros incoerentes. Se você é um desenvolvedor novo, você apenas chora e foge porque não faz sentido. Se você é um desenvolvedor sênior, você lê e entende um pouco, então decide “isso é nojento; vou fazer melhor de outra forma” – mas então a próxima pessoa a trabalhar na aplicação precisa aprender o paradigma original e o seu novo paradigma inteligente. Estenda isso por 20 anos e você terá um verdadeiro pesadelo. Mas se você é realmente um artista especialista, você pode fazer restauração de arte – ver a elegância na estrutura original e trabalhar dentro dela, consertando gentilmente as coisas arquitetonicamente inconsequentes que fazem o novo desenvolvedor chorar e o desenvolvedor sênior apertar "delete", sem criar uma bagunça fragmentada ou levar anos de trabalho repintando a coisa toda. Talvez você até produza seu próprio trabalho no estilo do velho mestre. A lição mais importante desta história é que, como um artista de verdade, você tem um interesse genuíno em produzir um trabalho de tal qualidade que alguém que o herde sem seus anos de experiência não decida jogar tudo fora – e as “pequenas coisas” como estilo de código, legibilidade e endereçamento de dívida técnica ajudam muito, preservando a arquitetura, se não cada linha de código

Em resumo:

  • Regras e convenções permitem treinar novos artistas brilhantes antes que eles sejam brilhantes.
  • Regras e convenções dão a você uma tela fixa para exercitar a criatividade sem precisar perder tempo tentando se dar bem com as pessoas.
  • Regras e convenções permitem que você faça algo bonito que não será jogado fora pela primeira pessoa a herdá-lo.
Discussão (0)1
Entre ou crie uma conta para continuar