aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2015-11-01 19:06:32 -0200
committerSilvio Rhatto <rhatto@riseup.net>2015-11-01 19:06:32 -0200
commit4d85ad4cb5569b01f2e85bbccde627c90bce6aae (patch)
tree2485aec3c2c7c7db13143718d05ffbb8e3e1f0a0
parent3930c24e40e2c35b182c6641a7aa103fc3bb29f6 (diff)
downloadboaspraticas-4d85ad4cb5569b01f2e85bbccde627c90bce6aae.tar.gz
boaspraticas-4d85ad4cb5569b01f2e85bbccde627c90bce6aae.tar.bz2
-m Atualiza TODO
-rw-r--r--TODO.rst4
-rw-r--r--aulas/ambientes.rst30
-rw-r--r--aulas/clientes.rst2
-rw-r--r--aulas/devops.rst26
-rw-r--r--aulas/licencas.rst7
-rw-r--r--aulas/metodologias.rst162
-rw-r--r--aulas/reinventando.rst2
-rw-r--r--aulas/seguranca.rst2
-rw-r--r--aulas/versionamento.rst14
9 files changed, 154 insertions, 95 deletions
diff --git a/TODO.rst b/TODO.rst
index 83a4b85..8d3406c 100644
--- a/TODO.rst
+++ b/TODO.rst
@@ -1,4 +1,6 @@
TODO
====
-- Gerar saídas em pdf.
+- Definir projeto de exemplo.
+- Completar roteiro de aulas.
+- Revisar conteúdo.
diff --git a/aulas/ambientes.rst b/aulas/ambientes.rst
index ed3562d..113a3ce 100644
--- a/aulas/ambientes.rst
+++ b/aulas/ambientes.rst
@@ -1,23 +1,33 @@
+2. Ambientes de desenvolvimento
+===============================
+
+- Neste curso será adotado o sistema operacional GNU/Linux como plataforma básica de trabalho.
+- Porém, o conteúdo do curso pode ser facilmente adaptado para outros sistemas.
+- Se você usa Windows ou MacOSX para desenvolvimento e quiser seguir normalmente o curso, recomendamos a criação de uma máquina virtual em GNU/Linux usando o Vagrant de acordo com a aula de `DevOps <devops.html>`_.
+
Ambiente básico
---------------
-- Editor de texto ou IDE: produz código.
-- Emulador de terminal: execução de tarefas.
-- Navegador web: ambiente de teste.
+- Editor de texto ou IDE: produz código.
+- Emulador de terminal: execução de tarefas.
+- Navegador web: ambiente de teste.
Editores
--------
-- Vantagens dos IDEs (NetBeans, Eclipse, Aptana, etc):
-- Ambiente de desenvolvimento integrado.
-- Vantagens dos editores de texto (Atom, Emacs, VIM, Notepad++, gedit
- etc):
-- Simplicidade.
-- Performance.
+- Vantagens dos IDEs (NetBeans, Eclipse, Aptana, etc):
+ - Ambiente de desenvolvimento integrado.
+- Vantagens dos editores de texto (Atom, Emacs, VIM, Notepad++, gedit etc):
+ - Simplicidade.
+ - Performance.
+
+Atividades
+----------
+
+- Teste diversos editores de textos e IDEs disponíveis para sua plataforma de desenvolvimento. Avalie cada um deles em termos de performance, funcionalidades, facilidade de uso e adaptação. A preferência pela plataforma de desenvolvimento varia muito de pessoa para pessoa: tente descobrir a sua!
Referências
-----------
- `Atom <https://atom.io/>`_.
- `Lime Text Editor <http://limetext.org/>`_.
-
diff --git a/aulas/clientes.rst b/aulas/clientes.rst
index e69de29..22dbb7f 100644
--- a/aulas/clientes.rst
+++ b/aulas/clientes.rst
@@ -0,0 +1,2 @@
+8. Lidando com os clientes
+==========================
diff --git a/aulas/devops.rst b/aulas/devops.rst
index ddf8cff..5b5e2e2 100644
--- a/aulas/devops.rst
+++ b/aulas/devops.rst
@@ -1,13 +1,20 @@
-DevOps: desenvolvendo e orquestrando
-====================================
+5. DevOps: desenvolvendo e orquestrando
+=======================================
-- Vagrant, docker, KVM e afins.
-- Ambientes reprodutíveis.
-- Integração contínua usando o `Travis CI <http://travis-ci.org/>`_.
-- Fazendo o deploy:
-- CLI básico (copiar, mover, apagar e permissões).
-- SSH e rsync.
-- Deploy via git.
+- Vagrant, docker, KVM e afins.
+- Ambientes reprodutíveis.
+- Fazendo o deploy:
+ - CLI básico (copiar, mover, apagar e permissões).
+ - SSH e rsync.
+ - Deploy via git.
+- Integração contínua usando o `Travis CI <http://travis-ci.org/>`_.
+
+Atividades
+----------
+
+- Instale o vagrant.
+- Crie uma máquina virtual para desenvolver o seu projeto.
+- Crie uma conta no Travis CI.
Referências
-----------
@@ -21,4 +28,3 @@ Referências
Jesus <https://danjesus.github.io/blog/deploy-facil-com-git/>`_.
- `PuPHPet - Online GUI configurator for Puppet &
Vagrant <https://puphpet.com/>`_.
-
diff --git a/aulas/licencas.rst b/aulas/licencas.rst
index 8b13789..f0f35b2 100644
--- a/aulas/licencas.rst
+++ b/aulas/licencas.rst
@@ -1 +1,8 @@
+3. Licenciamento
+================
+Atividades
+----------
+
+- Escolha uma licença para o seu projeto.
+- Entre no gerador de licenças do CreativeCommons e gere uma licença. Guarde o código de embarcação da mesma para inseri-la no seu projeto.
diff --git a/aulas/metodologias.rst b/aulas/metodologias.rst
index 90b9d30..de2d027 100644
--- a/aulas/metodologias.rst
+++ b/aulas/metodologias.rst
@@ -7,107 +7,127 @@
1.1 - Apresentação do professor e do curso
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Silvio Rhatto, desenvolvedor autodidata.
-- Curso dividido em aulas independentes umas das outras.
-- O curso completo é acompanhado pelo desenvolvimento de uma pequena
- aplicação.
+- Silvio Rhatto, desenvolvedor autodidata.
+- Curso dividido em aulas independentes umas das outras.
+- O curso completo é acompanhado pelo desenvolvimento de uma pequena aplicação.
1.1 - O que são boas práticas de desenvolvimento?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Trata-se de *organização* no trabalho para que ele flua.
-- Não há um único caminho: existem inúmeras metodologias e técnicas.
-- Vou ensinar as mais *simples* e que tendem a resistir ao tempo.
-- Foco em Software Livre e Aberto (FOSS).
-- Experimente diversas metodologias, técnicas e ferramentas e monte seu
- próprio kit.
-
-1.1 - Queremos / não queremos
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Queremos evitar:
-
-- Ansiedade.
-- Procrastinação.
-- Empacamento.
-- Ruído.
-
-Queremos:
-
-- Simplicidade sem comprometer funcionalidade (KISS).
-- Excelência (melhoria incremental) ao invés de perfeccionismo
- obssessivo.
+- Trata-se de *organização* no trabalho para que ele flua.
+- Não há um único caminho: existem inúmeras metodologias e técnicas.
+- Vou ensinar as mais *simples* e que tendem a resistir ao tempo.
+- Foco em Software Livre e Aberto (FOSS).
+- Experimente diversas metodologias, técnicas e ferramentas e monte seu próprio kit!
1.2 - Mitos e verdades do desenvolvimento
-----------------------------------------
-- Linearidade: pessoa-mês (Lei de Brooks).
-- Métricas: dificuldade de se estimar o tempo gasto.
-- Deterioramento natural do software!
+- Dificuldades essenciais e acidentais.
+- Linearidade: pessoa-mês (Lei de Brooks).
+- Métricas: dificuldade de se estimar o tempo gasto.
+- Deterioramento natural do software!
1.3 - Metodologias pessoais
---------------------------
+Queremos evitar:
+
+- Cabeça cheia de ruído.
+- Ansiedade.
+- Procrastinação.
+- Empacamento.
+
+Queremos:
+
+- Simplicidade sem comprometer funcionalidade (KISS).
+- Excelência (melhoria incremental) ao invés de perfeccionismo obssessivo.
+
1.3 - Metodologias pessoais - Básico
-------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Evitar distrações.
-- Uma tarefa por vez.
-- Foco na missão.
-- Fazer o essencial.
+- Evitar distrações.
+- Uma tarefa por vez.
+- Foco na missão.
+- Fazer o essencial.
+- Método não é lei, é sugestão de caminho.
1.3 - Metodologias pessoais - Pomodoro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- É a técnica mais simples.
-- Material: alarme e lista de tarefas.
+É uma técnica simples para execução de tarefas:
+
+- Material: alarme e lista de tarefas.
+- Escolha uma tarefa e anote na sua lista.
+- Ajuste o cronômetro (25 minutos tradicionalmente).
+- Trabalhe na tarefa até o cronômetro disparar. Marque um X na lista ao lado da tarefa.
+- Pare por um tempo curto (5 minutos, por exemplo).
+- Depois de 4 pomodoros, faça uma pausa mais longa (15 a 30 minutos).
1.4 - Metodologias pessoais - Get Things Done (GTD)
---------------------------------------------------
-- GTD.
-- ZTD.
+É uma técnica para organização do fluxo de tarefas:
+
+- Colete: apareceu na sua frente? Coloque para fora da cabeça!
+- Processe.
+- Organize.
+- Planeje.
+- Faça!
+- Workflow: https://en.wikipedia.org/wiki/Getting_Things_Done#/media/File:GTDcanonical.png
-1.5 - Metodologias em equipe
+1.5 - Metodologias pessoais - Zen to Done (ZTD)
+-----------------------------------------------
+
+- ZTD é um GTD simplificado e mais estruturado.
+- Tenha uma rotina.
+- Reduza as suas tarefas ao essencial.
+- Comece o dia realizando as tarefas importantes. Não se perca.
+- Sugestão do chef: ZTD com Pomodoro!
+
+1.6 - Metodologias em equipe
----------------------------
-- A catedral e o bazar: Lei de Linus.
-- Agile.
-- Scrum.
-- XP.
-- Kanban.
-- TDD.
+1.6 - A Catedral e o Bazar
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- Eficiência do código aberto.
+- Agile: conjunto de princípios.
+
+1.6 - Metodologias populares
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- Scrum: metodologia de gerenciamento de projetos.
+- XP: metodologia de engenharia de software.
+- Kanban: controle coletivo de tarefas.
+- TDD: técnica de desenvolvimento guiada por testes.
+- Híbridação: Scrumban + XP :D
Começando um projeto
--------------------
-- Brainstorm! O que é o projeto?
-- Pesquisa do que já existe.
+- Brainstorm! O que é o projeto?
+- Pesquisa do que já existe.
+
+Atividades
+----------
+
+- Adote a técnica Pomodoro numa tarefa grande e importante do seu dia. Você pode usar qualquer cronômetro disponível -- do seu computador, do telefone, do relógio de pulso ou mesmo um timer de cozinha. Permaneça apenas realizando a tarefa importante em cada bloco de 25 minutos. Avalie a eficácia do método: ele te ajudou?
Referências
-----------
-- `Best coding practices - Wikipedia, the free
- encyclopedia <https://en.wikipedia.org/wiki/Best_coding_practices>`_.
-- `Best practices for software development
- projects <http://www.ibm.com/developerworks/websphere/library/techarticles/0306_perks/perks2.html>`_.
-- `Boas práticas de engenharia de software \| Guia da Startup e da
- Gestão de Produtos de
- Software <http://www.guiadastartup.com.br/boas-praticas-de-engenharia-de-software/>`_.
-- `Boas Práticas de Desenvolvimento – melhorando o seu
- dia-a-dia <http://blog.matheusbodo.com/boas-praticas-de-desenvolvimento-melhorando-o-seu-dia-a-dia/>`_.
-- `Melhores Práticas para Desenvolvimento de Sistemas e
- Software <http://www.ibm.com/developerworks/br/rational/library/systems-software-lifecycle-development/>`_.
-- `Arquitetura, padrões, projetos e boas práticas sobre desenvolvimento
- de software -
- georgemendonca <http://softwarelivre.org/georgemendonca/blog/arquitetura-padroes-projetos-e-boas-praticas-sobre-desenvolvimento-de-software>`_.
-- `HOME -The Pomodoro Technique® <http://pomodorotechnique.com/>`_.
-- `Técnica de Pomodoro: Melhorar a Produtividade \| Freelancer e
- Produtividade <http://www.escolafreelancer.com/tecnica-de-pomodoro-melhorar-produtividade/>`_
-- `Técnica pomodoro – Wikipédia, a enciclopédia
- livre <https://pt.wikipedia.org/wiki/T%C3%A9cnica_pomodoro>`_.
-- `Zen to Done - ZTD - Lucas
- Teixeira <http://lucasteixeira.com/ztd/>`_.
-- `Zen To Done (ZTD): The Simple Productivity System : zen
- habits <http://zenhabits.net/zen-to-done-ztd-the-ultimate-simple-productivity-system/>`_.
-
+- `Best coding practices - Wikipedia, the free encyclopedia <https://en.wikipedia.org/wiki/Best_coding_practices>`_.
+- `Best practices for software development projects <http://www.ibm.com/developerworks/websphere/library/techarticles/0306_perks/perks2.html>`_.
+- `Boas práticas de engenharia de software \| Guia da Startup e da Gestão de Produtos de Software <http://www.guiadastartup.com.br/boas-praticas-de-engenharia-de-software/>`_.
+- `Boas Práticas de Desenvolvimento – melhorando o seu dia-a-dia <http://blog.matheusbodo.com/boas-praticas-de-desenvolvimento-melhorando-o-seu-dia-a-dia/>`_.
+- `Melhores Práticas para Desenvolvimento de Sistemas e Software <http://www.ibm.com/developerworks/br/rational/library/systems-software-lifecycle-development/>`_.
+- `Arquitetura, padrões, projetos e boas práticas sobre desenvolvimento de software - georgemendonca <http://softwarelivre.org/georgemendonca/blog/arquitetura-padroes-projetos-e-boas-praticas-sobre-desenvolvimento-de-software>`_.
+- `HOME -The Pomodoro Technique® <http://pomodorotechnique.com/>`_.
+- `Técnica de Pomodoro: Melhorar a Produtividade \| Freelancer e Produtividade <http://www.escolafreelancer.com/tecnica-de-pomodoro-melhorar-produtividade/>`_
+- `Técnica pomodoro – Wikipédia, a enciclopédia livre <https://pt.wikipedia.org/wiki/T%C3%A9cnica_pomodoro>`_.
+- `Zen to Done - ZTD - Lucas Teixeira <http://lucasteixeira.com/ztd/>`_.
+- `Zen To Done (ZTD): The Simple Productivity System : zen habits <http://zenhabits.net/zen-to-done-ztd-the-ultimate-simple-productivity-system/>`_.
+- `Time management - Wikipedia, the free encyclopedia <https://en.wikipedia.org/wiki/Time_management`_.
+- `Princípios por trás do Manifesto Ágil <http://www.agilemanifesto.org/iso/ptbr/principles.html>`_.
+- `Manifesto para o desenvolvimento ágil de software <http://www.manifestoagil.com.br/>`_.
diff --git a/aulas/reinventando.rst b/aulas/reinventando.rst
index e69de29..0f13e13 100644
--- a/aulas/reinventando.rst
+++ b/aulas/reinventando.rst
@@ -0,0 +1,2 @@
+7. Quando (não) reinventar a roda
+=================================
diff --git a/aulas/seguranca.rst b/aulas/seguranca.rst
index e69de29..55d1483 100644
--- a/aulas/seguranca.rst
+++ b/aulas/seguranca.rst
@@ -0,0 +1,2 @@
+6. Segurança e privacidade
+==========================
diff --git a/aulas/versionamento.rst b/aulas/versionamento.rst
index 622b6e0..fe00f89 100644
--- a/aulas/versionamento.rst
+++ b/aulas/versionamento.rst
@@ -1,6 +1,14 @@
+4. Controle de versão e social coding
+=====================================
+
+Atividades
+----------
+
+- Instale o git.
+- Crie uma conta do `Github <https://github.com>`_ e uma no `Gitlab <https://gitlab.com>`_.
+
Referências
-----------
-- `Skeleton: Responsive CSS Boilerplate <http://getskeleton.com/>`_
-- `Versionamento Semântico 2.0.0 <http://semver.org/lang/pt-BR/>`_.
-
+- `Skeleton: Responsive CSS Boilerplate <http://getskeleton.com/>`_
+- `Versionamento Semântico 2.0.0 <http://semver.org/lang/pt-BR/>`_.