terça-feira, 16 de fevereiro de 2010

It`s Only Rock `n Roll (But I Like It)



Simplicidade é uma ideia poderosa. Capaz de transformar o ruído em comunicação, o desarrumado em elegante, o complicado no fácil. O Rock, gênero musical de maior sucesso e impacto cultural da atualidade, ergueu suas bases nessa ideia genial, como definido pela Wikipedia: "sua forma pura tem alguns poucos acordes, um forte e insistente contratempo e uma melodia cativante."

Essa economia é misteriosamente cativante e sedutora. A relação criada entre a música e o ouvinte é direta e íntima. Visceral. Ela acontece, por exemplo, quando cantamos a melodia de uma peça que gostamos ou quando colocamos a nossa trilha sonora predileta para tocar no celular.

Porém, atingir tamanho grau de simplicidade não é nada fácil. É necessário trabalho duro. Suor.

Veja uma das mais famosas fórmulas da Física:




Espantosamente simples, não? A fórmula relacionando massa com energia parece que esteve sempre ali, apenas esperando para ser descoberta... Entretanto, para chegar a essa elegância, foi preciso muito trabalho para "polir" as arestas e jogar fora tudo o que estava atrapalhando (obviamente, com um "empurrãozinho" da mente brilhante de um dos maiores cientistas do século XX).

Seguindo esse raciocínio, para desenvolvermos software que seja fácil manter, atualizar e compreender, é preciso prestar atenção aos mestres da simplicidade, como Albert Einstein e Keith Richards. Para esses monstros sagrados, o que é deixado de fora é tão (ou mais) importante do que aquilo que será utilizado.

Atualmente, devido ao vasto arsenal de patterns e frameworks disponíveis no mercado, é muito comum o desenvolvedor pecar pelo excesso na codificação, seja para tornar o código mais "elegante" ou simplesmente numa tentativa de impressionar os seus pares e mostrar "serviço".

Por exemplo, veja aqui o famoso "Hello World", totalmente redesenhado utilizando vários padrões de projeto [GoF] como AbstractFactory, Strategy e State. É uma caricatura interessante de como a "sobre-engenharia" do código pode resultar, paradoxalmente, em código ruim e de difícil manutenção.

É claro que não sou contra a utilização de padrões, na verdade é exatamente o oposto:  encorajo e apoio a sua adoção. Porém, assim como um guitarrista não faz música apenas subindo e descendo escalas, um desenvolvedor de software não irá criar peças de qualidade apenas copiando e entupindo o código com padrões sem sentido.

É preciso um equilíbrio entre técnica, arte, sensibilidade, experiência e talento.


Uma dica de como começar?

Dê uma espiada aqui.


5 comentários:

  1. O blog está show! Adoro as relações do cotidiano com a tecnologia!

    ResponderExcluir
  2. Olha só, blog tem que ter atualização FREQUENTE, viu?

    ResponderExcluir
  3. Mais de um post por semana não tá bom não? hahaha

    ResponderExcluir
  4. Vini, muito legal o blog! Escrever nos faz sentir mais vivos,não é? Acho que vou criar (pela milésima vez) um blog, depois te passo o endereço. Beijos!

    ResponderExcluir
  5. Ale,

    Escrever é muito bom mesmo!

    É como a "penseira" do Dumbledore hehe.

    Depois manda o endereço do seu blog.

    Bjs

    ResponderExcluir

Related Posts with Thumbnails