diff options
Diffstat (limited to 'aulas/reinventando.rst')
-rw-r--r-- | aulas/reinventando.rst | 64 |
1 files changed, 42 insertions, 22 deletions
diff --git a/aulas/reinventando.rst b/aulas/reinventando.rst index 089bb83..af8e3fb 100644 --- a/aulas/reinventando.rst +++ b/aulas/reinventando.rst @@ -4,52 +4,72 @@ 7.1 - Patterns -------------- -* TDD. -* Separando código de dados, sobretudo dados sigilosos! -* Desacoplamento. -* Filosofia UNIX: - * Pequenos softwares/bibliotecas. - * Que fazem uma coisa bem. +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 - Antipatterns ------------------- +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! -* Linearidade: o mito da pessoa-mês (Lei de Brooks). * Inferno de dependências. * Bitrot: decaimento natural do código! -7.3 - Inventando, reinventando e desinventando ----------------------------------------------- +7.3 - Documentação: lendo e escrevendo +-------------------------------------- -Hora de converter nosso projeto blogático para uma plataforma com mais funcionalidades! +* 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. - cd ~/projetos/blogatico - cp -r ../boaspraticas/_templates/ikiwiki/* . - make +7.4 - Inventando, reinventando e desinventando +---------------------------------------------- -7.4 - Documentação: lendo e escrevendo --------------------------------------- +* 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? -* Quanto mais próxima a documentação está do código, mais difícil dela se desatualizar. -* Docblocs / heredocs. -* Documente procedimentos enquanto você os realiza. +* Agora é hora de converter nosso projeto blogático para uma plataforma com mais funcionalidades! Roteiro do screencast: :: - sudo apt-get install ttyrec + cd ~/projetos/blogatico + cp -r ../boaspraticas/_templates/ikiwiki/* . + make 7.5 - Atividades ---------------- +#. Consulte as referências por diversos design patterns e antipatterns. Quais patterns você acha mais interessantes? Quais antipatterns são mais perigosos? +#. 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. + 7.6 - Referências ----------------- * `Versionamento Semântico 2.0.0 <http://semver.org/lang/pt-BR/>`_. +* `On Documentation-Driven Development // Collective Idea | Crafting web and mobile software based in Holland, Michigan <http://collectiveidea.com/blog/archives/2014/04/21/on-documentation-driven-development/>`_. +* `Readme Driven Development <http://tom.preston-werner.com/2010/08/23/readme-driven-development.html>`_. |