7. Quando (não) reinventar a roda

7.1 - Patterns

7.1 - O que são e por quê usar?

  • Design Patterns são “formas” de desenvolvimento reutilizáveis e consideradas como boas práticas.

  • A lista de patterns conhecidos é long demais para este curso

  • Daremos alguns exemplos ilustrativos que atendem o nosso critério de simplicidade.

  • São recomendações! Mais importante que usá-las é ter capacidade crítica para determinar quais fazem ou não sentido para o seu projeto.

7.2 - Exemplos

Daremos breves exemplos em três campos:

  • Design: separação de código de dados, sobretudo dados sigilosos!

  • Metodologia : DDD e TDD: documentar e testar antes, durante ou depois?

  • Implementação: Filosofia UNIX: * Pequenos softwares e bibliotecas (desacoplamento). * Que fazem bem uma coisa. * E que podem ser facilmente combinados.

7.2 - Anti-patterns

São o oposto das design patterns: formas de desenvolvimento não recomendadas. Exemplos:

  • O mito da pessoa-mês (Lei de Brooks).

  • Hype: cuidado com o ciclo dos modismos!

  • Inferno de dependências.

  • Bitrot: decaimento natural do código!

7.3 - Documentação: lendo e escrevendo

  • Documente não só para os outros, mas para você mesmo(a) no futuro.

  • Quanto mais próxima a documentação está do código, mais difícil dela se desatualizar.

  • Docblocks / heredocs: podem ser convertidos em documentação indexada, referenciada e navegável.

  • Documente procedimentos enquanto você os realiza.

Roteiro do screencast:

  • Concluindo a documentação do blogático, fazendo um commit e um release tag.

7.4 - Inventando, reinventando e desinventando

  • Caso tenha acompanhado este curso desde o começo e construiu nosso projeto/invento “blogático” desde o ínicio, agora você tem um software para documentar seu aprendizado em desenvolvimento. Acontece que ele é bem simples. E se você quiser algo mais completo e que seja uma solução pronta, já disponível?

  • Agora é hora de converter nosso projeto blogático para uma plataforma com mais funcionalidades!

Roteiro do screencast:

cd ~/projetos/blogatico
cp -r ../boaspraticas/_templates/ikiwiki/* .
make

7.5 - Atividades

  1. Consulte as referências por diversos design patterns e antipatterns. Quais patterns você acha mais interessantes? Quais antipatterns são mais perigosos?

  2. Crie a documentação do seu projeto. Pense que ela será lida por uma audiência bem geral que nunca ouviu falar do projeto e será determinante para que decidam se irão usá-lo ou não.