Em busca da (feli|simpli)cidade | Adriano Laranjeira
← Simple assign vs. php_array
The pursuit of (happy|plain)ness →
Posted on 2010-05-31	by Adriano Laranjeira
Escrever e manter um programa deve ser uma tarefa prazerosa. Nada de código complicado, difícil de ser entendido por terráqueos.
Se o entendimento de seu programa necessita de conceitos que vão além dos algoritmos clássicos, use os recursos de comentários de sua linguagem para alertar ao(s) futuro(s) mantenedor(es) sobre o que ele precisa saber para manter o código. Ajuda muito pensar que o próximo mantenedor pode ser outra pessoa. Pense no simples, naquela velha história do KISS (Keep It Simple, Stupid).
Pense na língua portuguesa. Ela possui um dicionário, regras para semântica e sintaxe de sua escrita. Há milhares de recursos para escrever diferentes tipos de texto: narrativas, poesias, dissertações e muitos outros tipos. E cada tipo possui suas regras. Nesta analogia, sua linguagem (PHP, Python, etc.) é a lingua portuguesa. Algoritmos e padrões de projeto (em moda hoje em dia) são seus tipos de texto disponíveis. Cada tipo de texto (algoritmos e padrões de projeto) têm sua aplicação, vai de as conhecermos e além disso, saber aplicá-las no momento certo. Há também a questão da preferência: Evito poesias assim como evito certos algoritmos e padrões.
Responda a si o que é um bom texto. Para mim, um bom texto é direto, bem focado em seu tema, mais ligado a fatos constatáveis do que idéias abstratas. Utiliza palavras simples, as mais simples que consigam expressar o sentido requerido.
Hoje em dia, qualquer código-fonte é escrito quase que da mesma forma com que falamos com alguém. Manipular dados agora desobrigou-nos daqueles loops intermináveis em tabelas que precisavam ser manualmente "lockadas" e "indexadas". Aplicações agora são orientadas a objeto, precisam estar disponibilizadas na web, no celular, no XBox do filho do patrão, nos smartphones, em telões de 52″.
A interação humano-computador agora é uma disciplina fundamental, fractalizada pela engenharia de software. Aliás, tudo relacionado ao desenvolvimento de um software é fractalizado hoje em dia: podemos complicá-lo a níveis absurdos, desnecessário até. É comum ouvir em "camadas de abstração de dados" em aplicações que nunca trocaram de SGBD em mais de 10 anos (e cujo fornecedor ainda tem contrato por outros 10).
Este é o objetivo deste post: Um pedido a todos os envolvidos num projeto de software para que mantenham as coisas simples, legíveis e explícitas. Tim Peters (guru do Python) já disse isso. Disponha um tempo de sua vida lendo livros de algoritmos e design patterns. Desbloqueie sua criatividade. Toda vez que desenvolver web, pense na acessibilidade de sua aplicação, e ao fazê-lo, atravesse as fonteiras de seu navegador: afinal, o futuro de sua aplicação é imprevisível, e desconhece quando ela será utilizada na tela de um celular ou num telão de 52″. Utilize javascript com muito cuidado (desconfie sempre dele, e se puder, evite-o).