]> gitweb.fluxo.info Git - boaspraticas.git/commitdiff
-m Atualiza TODO
authorSilvio Rhatto <rhatto@riseup.net>
Sun, 1 Nov 2015 21:06:32 +0000 (19:06 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Sun, 1 Nov 2015 21:06:32 +0000 (19:06 -0200)
TODO.rst
aulas/ambientes.rst
aulas/clientes.rst
aulas/devops.rst
aulas/licencas.rst
aulas/metodologias.rst
aulas/reinventando.rst
aulas/seguranca.rst
aulas/versionamento.rst

index 83a4b85829360998abaf835bbb23abadb4a14b22..8d3406c6053eca06b9013d0dd02de3f308bd4e54 100644 (file)
--- 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.
index ed3562d38aa403f5409b6a49378db0b736dec14b..113a3ceff811191e49db6aa0a9c11fd2b900104c 100644 (file)
@@ -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/>`_.
-
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..22dbb7fc4f6d4955a48ca9250462232a8a3dcfc6 100644 (file)
@@ -0,0 +1,2 @@
+8. Lidando com os clientes
+==========================
index ddf8cff069ffbec1d2b6b46608ae7927ca3547f1..5b5e2e29f6be9be7ae093870aa75431236809af0 100644 (file)
@@ -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/>`_.
-
index 8b137891791fe96927ad78e64b0aad7bded08bdc..f0f35b27fde3709958333c085bb659ff4b95249f 100644 (file)
@@ -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.
index 90b9d3012edb394f90c086a8369b5f8f495424e0..de2d027e7d4ac8a4d3bb46ebe2c518a38ef2a6ec 100644 (file)
 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/>`_.
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0f13e139912c7574ae3abf86b4b455e12b4176d1 100644 (file)
@@ -0,0 +1,2 @@
+7. Quando (não) reinventar a roda
+=================================
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..55d148398c36ba83e8f2524a6a73ac7993e01890 100644 (file)
@@ -0,0 +1,2 @@
+6. Segurança e privacidade
+==========================
index 622b6e0693cc5db02a9f365262a19f5d6f0f8107..fe00f89e67e0df9ac54d134081905353fc033c68 100644 (file)
@@ -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/>`_.