aboutsummaryrefslogtreecommitdiff
path: root/aulas/reinventando.rst
diff options
context:
space:
mode:
Diffstat (limited to 'aulas/reinventando.rst')
-rw-r--r--aulas/reinventando.rst64
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>`_.