Blog Intermol

Arquivo de 22 de Fevereiro de 2008

Conceitos de programação - parte 1

Programar é um brinquedo. Passamos horas nos divertindo ao usar meios eletrônicos para resolver problemas próprios ou alheios.

Porém, há limites. A expansão de nossas habilidades vem com a capacidade de produzir mais programando cada vez menos. Como no mundo do software livre e aqui na Intermol sempre temos o futuro em mente, há dois aspectos básicos na programação de cada detalhe, apectos que observamos no nosso cotidiano. Ambos vindos dos 20+ anos de experiência de programação de cada membro. Temos a parte e o todo. Neste artigo iremos analizar a parte.

Cada função desempenha uma e somente uma função.. Se criamos uma função pra somar A+B, ela vai apenas somar A+B e não vai fazer mais nada - dois números entram, um número sai. A função não deverá fazer mais nada, nem crescer com mais possibilidades e complicações.

Se queremos uma função pra fazer A+B+C, será escrita outra função, mesmo que ela use a primeira. Caso ela use a primeira função criamos o que se chama dependência. O controle de dependências deve ser examinado com cuidado para garantir a qualidade do código final. É normal que comportamentos um dia tido como normais sejam no futuro tido como bugs - realizar consertos em funções dependentes pode se tornar desastroso. Por isso é necessário que se façam validações (testes) das funções de forma automatizada.

Pra PHP, uma ferramenta fácil pra validar funções individuais é o PHPUnit. Ao escrever a função, deve-se cadastrar sua contra parte em PHPUnit. O PHPUnit é uma ferramenta que executa a sua função com uma série parâmetros que você tenha selecionado, e compare com os resultados que você espera. A validação de funções deve começar com as funções de menor número de dependências. Mesmo sem o PHPUnit fazer uma validação automatizada de uma função é fácil: basta executar as funções com os parâmetros a serem testados e validar seu retorno.

Com o tempo, temos pacotes de funções (e de classes) bastante sólidos que podem ser integrados em um projeto subsequente. Essas funções e classes compõem a parte. No próximo artigo será discutido como organizar e integrar estes pacotes.

1 comentário »