Não se apegue ao seu código. Se apegue aos seus testes

Faz um tempo que não falo de programação. O que atiçou a vontade de escrever de novo sobre o assunto é, pra variar, a liberdade que as redes sociais deram para que muitos pudessem falar a respeito de tudo, só pelo esporte de falar.

Dessa bagunça toda, algumas “máximas” têm sido criadas sobre o meio e, a que dá o título deste post tem me incomodado recentemente, apesar de já ter respondido sobre isso.

O motivo é, eu gosto do que faço, e sim, eu me apaixono pelo meu código, e muito. Gosto do que ele faz, do resultado que ele gera. Como não ficar feliz quando todos os seus testes retornarem “Success” depois de enviar sua versão para o build automatizado? Até mesmo antes disso, quando você roda os testes localmente.

Sim, eu gosto do meu código, mas gosto mais ainda quando ele funciona. E funcionar significa, pelo menos para mim (e recomendo que para você), que ele passa nos testes.

Permita-me caro leitor conduzi-lo de forma resumida pelo processo de amadurecimento pelo qual passei, que me fez chegar no ponto da carreira em que estou.

Como comecei a gostar do meu código

Já criei bastante código (afinal são mais de 20 anos programando), menos do que deveria, sendo honesto. Sou o tipo de programador que gosta de matutar o problema, colocar no “papel” antes mesmo de escrever uma linha de código. Esse é meu “normal”. Era melhor ainda quando isso era feito em equipe, onde todos discutiam o mesmo problema numa sala enquanto rabiscávamos o quadro.

Em um momento, seja por pressão de projetos, seja porque outros profissionais usam uma abordagem diferente, seja por outra máxima, a de “errar rápido para corrigir rápido”, senti a pressão de codificar o quanto antes. Isso foi para mim, um erro. Comecei a criar muito código, código é trabalho, e trabalho tem valor. Mesmo que tivesse criado uma monstruosidade, tinha apego por ela, afinal, era minha criação, uma obra de arte.

Depois de muito ver minha arte causar dores de cabeça para mim e para outros do time, achei melhor mudar a forma de encarar meu trabalho.

Como comecei a desgostar/desapegar do meu código

O subtítulo é drástico, mas é mais ou menos o que acontece. O que mudou de fato foi o seguinte: TESTES!

Você aprende isso na aula de programação, mas esquece no minuto seguinte.

Se pudesse dar uma recomendação para qualquer programador em qualquer idade, seria o seguinte: Apegue-se a seus testes! É a parte mais importante do seu projeto. É a garantia de que seu código, bonito ou feio, curto ou longo, siga padrões de código ou não (deveria, mas esse é assunto para outro post), funcionará. Muito mais do que simplesmente compilar, o importante é que seu código faça o que ele deveria.

Se você trabalha numa linguagem moderna, ela provavelmente disponibiliza um mecanismo de testes, comumente unitários. Use-o, abuse dele. Nenhum profissional que conheço e que utiliza testes hoje se arrepende. Os que não usam, ficam na categoria dos que “ainda não entenderam”. Isso não vem de mim, mas dos grandes nomes da programação (Robert Martin, Martin Fowler, Dave Farley, entre outros).

Quando você se acostumar com o fato de que trabalho feito significa seu código passar nos testes, será o ponto em que você terá se desapegado dele.

Boa sorte e sucesso!

Web – Escrevendo HTML de um jeito semântico

Dica dada pelo Rodrigo Ghedin do MeioBit.

Uma das coisas quem mais me agrada na codificação é entender o que estou escrevendo. A programação natural é ainda o sonho de muitos pesquisadores e profissionais da área. Escrever algo que você e o computador entendam da mesma forma é algo que levaria a produtividade na área de desenvolvimento de sistemas a um patamar interessante. Teoricamente não seria preciso mais de programadores, mas sim pessoas com boas idéias.

Deixando a viagem de lado, o que a dica do post do Rodrigo mostra é um plugin Zen Coding para editores HTML que permite escrever HTML de uma forma interessante.  Por exemplo (o clássico), digitar o seguinte texto:

div#header>img.logo[alt=image]+ul#nav>li*2>a:link

Produziria o seguinte HTML:

<div id="header">
    <img src="" alt="image" class="logo"/>
    <ul id="nav">
        <li>
            <a href="http://"></a>
        </li>
	<li>
            <a href="http://"></a>
        </li>
    </ul>
</div>

Interessante não? Para os amantes de tables, se quisesse criar uma tabela com 5 linhas e 10 colunas, bastaria digitar o seguinte snippet:

table>tbody>tr*5>td*10

Só não vou colocar o resultado aqui pois além de óbvio, ele ficaria grande demais. É possível customizar os ids, fazendo-os incrementais. Chamei o texto acima de snippet pois é exatamente o conceito utilizado. Obviamente existe uma combinação mais inteligente para gerar o resultado proposto.

O site oficial do plugin é:

http://code.google.com/p/zen-coding/

Um vídeo bem bacana da demonstração do plugin funcionando pode ser visto abaixo:

Zen Coding v0.5 from Sergey Chikuyonok on Vimeo.

Há versões para várias IDEs. Desenvolvedores Web, uni-vos!

O post oficial da dica está no seguinte endereço:

http://meiobit.com/65450/zen-coding-html

Desenvolvimento – Os 25 erros mais graves (e comuns) de programação

O SAS Intitute publicou uma lista dos 25 erros de programação mais graves. Desenvolvedores, arquitetos e testadores têm que conhecer “décor”. Em alguns deles, as plataformas de desenvolvimento nos apóiam (ou dificultam) a ocorrência desses erros. Para outros temos que tomar cuidado. Leitura obrigatória para quem tem contato com desenvolvimento:

link: http://www.sans.org/top25errors/

A página dá uma boa explicação dos porquês da importância do elencamento destes erros, o que isso traz de vantagens para as empresas de software e consumidores. O elencamento contou com a participação de várias empresas do ramo, da Symantec a Microsoft.

Os erros foram dividos em 3 categorias:

Sinceramento, é mais justo categorizar estes erros como os mais comuns. Claro que este fato os tornam mais graves, pois na tentativa de qualquer invasão a um sistema, estes serão os primeiros a serem atacados. De qualquer forma é um “puxão de orelha” na maioria dos programadores.

Dica dada pela Revista Mundo .NET

Vídeos – Aprendendo a programar para a Web… e bem!

Antes do comunicado “oficial”, vou falar um pouco sobre o assunto.

É fato. Programar para a Web jáse tornou algo corriqueiro para qualquer profissional de tecnologia. Mesmo que ele passe longe de um servidor web ou linguagem de programação, ele tem idéia do que é HTML, Javascript, CSS e outras coisas que compõem o mundo da programação para a Web.

Mesmo profissionais que não são da área de tecnologia tem que se render a um entendimento mínimo de como as páginas web são construídas, isso claro se quiserem tirar algum proveito que vá além da simples rolagem, leitura e cliques no links.

Conclusão: qualquer um que tenh algum contato um pouco mais “intenso” com tecnologia no dia a dia já sabe e cria seu próprio site, html, ou qualquer coisa que possa ser publicada.

Isso tem gerado uma classe de programadores Web, se é que podemos nomeá-la assim, que tem gerado “produtos” de qualidade sofrível por motivos que não vem ao caso neste momento, mas que comentarei em outra oportunidade, espalhados por vários futuros posts/artigos.

O objetivo desse post além da divulgação promovida pelo título é, como obter um diferencial no desenvolvimento Web já que há tantos detentores deste conhecimento, o que resulta na seguinte verdade:

É fácil achar programadores web. Difícil é achar bons programadores web. Percebo isso em cada processo seletivo que passo e em conversas com colegas no ramo.

Talvez seja por isso que a Visie, uma consultoria de treinamento para desenvolvimento Web tem disponibilizado uma série de materiais para ensinam e orientam como desenvolver aplicações para a Web dentro do padrões estabelecidos pelo W3C. Tá, mas o que isso significa?

Significa desenvolver sites com um padrão de qualidade exigido pela maioria dos navegadores, o que significa que seu site funcionará bem, independente de qual browser seja utilizado. Mas o mais importante é que, seguir estes padrões Web significa que seus sites serão bem vistos pelos mecanismos de busca. Isso agrega um valor altíssimo a seu conhecimento pois todo site construído nestes padrões estará sempre um ponto a frente de outros que disputem o mesmo público, mas que não seguem estas boas práticas. Isso sem falar que seu código será mais limpo, legível, reaproveitável e leve.

Os tutoriais são disponibilizados em formato texto e vídeos. Para acessá-los, os endereços são:

http://visie.com.br/campus

http://www.tableless.com.br/

Há planos de acesso para conteúdo restrito e pago, mas tem muita coisa disponível gratuitamente e de ótima qualidade.

Desejo a todos bons estudos!

Abraços

Tomás