Um blog sobre programação e arte, o conteúdo original pode ser acessado em trialforce.nostaljia.eng.br
Boas práticas de programação 2 – Organização de código
26 de Outubro de 2010, 0:00 - sem comentários aindaInfelizmente é muito comum encontrar códigos complicados de entender, não pela complexidade do algoritmo, mas sim, porque o código é tão bagunçado que fica difícil de entender o que acontece.
O código deve ser human-readable, ou seja, que possa ler lido por seres humanos, é vital, na construção de um software, se preocupar com a manutenibilidade do software, capacidade de manutenção que o código possui.
Para isso é importante que estruturemos nosso código de forma que posamos compilá-lo e ao mesmo tempo que outro programador (ou nós mesmo daqui a 2 anos) possamos entender o que ocorre. Dedica uns minutos a mais para tornar o código o mais legível possível, isso poupara dinheiro para empresa e tempo para o programador.
Umas das práticas mais erradas de se fazer é usar o CTRL+C CTRL+V, se você esta fazendo isto é porque algo esta muito errado em seu código, faço-o compilar, ser legível e evite replicar código de forma desnecessária.
Segue um exemplo de como NÃO fazer um radio button usando html e php:
if ( $a->object->myName == 't' ) { $b .= "<Input type= 'Radio' id='myVarTrue' name='myName' value= 't' checked> Sim"; $b .= "<Input type= 'Radio' id='myVarFalse' name='myName' value= 'f'> Não"; } elseif ( $a->object->myName == 'f' ) { $b .= "<Input type= 'Radio' id='myVarTrue' name='myName' value= 't'> Sim"; $b .= "<Input type= 'Radio' id='myVarFalse' name='myName' value= 'f' checked> Não"; } else { $b .= "<Input type= 'Radio' id='myVarTrue' name='myName' value= 't'> Sim"; $b .= "<Input type= 'Radio' id='myVarFalse' name='myName' value= 'f'> Não"; }
Analisem o código acima, reparem quantas vezes o código é replicado, e se existir um erro nesse código?
Poderíamos facilmente resolver isso com 3 linhas de código.
Vamos sair catando todos locais onde este trecho de código existir no sistema e corrigir ele mil vezes??
Imaginem como é agradável fazer manutenção de um software inteiramente construído desta forma.
Uma boa solução alternativa para este trecho seria a seguinte:
<input type='radio' id='isHighSchoolTrue' name='isHighSchool' value= 't' <?php if ( $this->isHighSchool == 't') echo "checked='checked' "?>>Sim <input type='radio' id='isHighSchoolFalse' name='isHighSchool' value= 'f'<?php if ( $this->isHighSchool == 'f') echo "checked='checked' "?>>Não
Resolvemos o mesmo problema em 2 únicas linhas.
Ainda vale notar que neste caso estamos gerando os radios um a um, poderiamos criar uma função, ou classe, para criar todos os radios de nosso sistema, evitando assim erro na criação de html, mas isto é conteúdo de outro post.
Compromissos e ScaleEX
20 de Outubro de 2010, 0:00 - sem comentários aindaOlá pessoal!
As aulas estão a toda, compromissos para todos os lados, tem estado difícil atualizar o blog.
Além do mais, estou trabalhando (durante as aulas) em uma nova versão do ScaleEX.
Reparem nos resultados obtidos.
O Programa ainda não esta disponível para download, pois precisa de algumas correções.
Assim que estiver posto o link
Boas práticas de programação 1 – Indentação e padrões de Projeto
6 de Outubro de 2010, 0:00 - sem comentários aindaQuando desenvolvemos um projeto de TI, que seja via desenvolvimento de software é importante que todo o código seja bem indentado, ou seja alinhando de forma correta.
Quando estamos desenvolvendo um projeto maior, com algumas pessoas programando, é importante a definição de um padrão de indentação, esse padrão deve ser documentado, deve esta escrito em algum endereço/lugar que todos programadores tenham acesso, é importante que todos sigam o padrão, e que não seja possível notar de foi o programador A ou o B que fez aquela código, só de olhar pra ele.
A palavra indentação não existe no português é um neologismo, uma “abrasileração” de indentation em inglês, recuo.
Segue um exemplo de um código não indentado (em PHP, mas a idéia vale para qualquer linguágem)
public function teste( $valor ) { minhaFuncao(); if ( $valor ) { $valor = 'meuValor'; for ($i =0 ; $i <10 ; $i++ ) { echo $i; } } }
Segue um exemplo de código indentado (em PHP):
public function teste( $valor ) { minhaFuncao(); if ( $valor ) { $valor = 'meuValor'; for ($i =0 ; $i <10 ; $i++ ) { echo $i; } } }
Você irá concordar que o código indentado é muito mais legível, apesar de neste caso o código não indentado também ser em um grande projeto, com vários arquivos e milhares de linhas de código, pode ficar confusa a leitura.
Vale citar que algumas linguagens, a exemplo do Python, exigem indentação correta para funcionar/compilar.
É importante também que os editores/IDES devem ser configurados, todos da mesma forma, para facilitar a geração do código indentado. Como dica: não utilizem tabulação real, troquem tab por espaço, no editor de textos.
Cada vez mais é importante ter este tipo de cuidado com o nosso querido código fonte, que no meu caso, é o ganha pão, padronização com intenção de melhorar a manutenibilidade, ou seja capacidade de manutenção do código.
Fica uma imagem para reflexão:
Abração a todos!
G’MIC Grey Magic Image Converter Gimp Plugin
24 de Setembro de 2010, 0:00 - sem comentários aindaOpa!
Gostaria de divulgar um plugin muito interessante para gimp.
É o G’MIC Grey Magic Image Converter, como pode ser visto na imagem abaixo, ele possui uma grande série de funcionalidades:
Este plugin é compilado (C e C++) então todo o processamento dele é bem rápido.
Ele também é muita-plataforma, oferece binários para Windows, linux e mac.
Vale a pena dar uma olhada.
http://gmic.sourceforge.net/gimp.shtml
Novo site da Nostalia Java 2D Game Engine
23 de Setembro de 2010, 0:00 - sem comentários aindaOPA!
Salve galera!
Esta no ar o novo site da nossa engine de jogos 2d Nostaljia.
Por enquanto o site esta somente em inglês, mas logo teremos uma versão em português.
Estaremos postando/criando conteúdo regularmente a partir de agora.
Mais informações: