diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2015-11-01 19:06:32 -0200 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2015-11-01 19:06:32 -0200 |
commit | 4d85ad4cb5569b01f2e85bbccde627c90bce6aae (patch) | |
tree | 2485aec3c2c7c7db13143718d05ffbb8e3e1f0a0 | |
parent | 3930c24e40e2c35b182c6641a7aa103fc3bb29f6 (diff) | |
download | boaspraticas-4d85ad4cb5569b01f2e85bbccde627c90bce6aae.tar.gz boaspraticas-4d85ad4cb5569b01f2e85bbccde627c90bce6aae.tar.bz2 |
-m Atualiza TODO
-rw-r--r-- | TODO.rst | 4 | ||||
-rw-r--r-- | aulas/ambientes.rst | 30 | ||||
-rw-r--r-- | aulas/clientes.rst | 2 | ||||
-rw-r--r-- | aulas/devops.rst | 26 | ||||
-rw-r--r-- | aulas/licencas.rst | 7 | ||||
-rw-r--r-- | aulas/metodologias.rst | 162 | ||||
-rw-r--r-- | aulas/reinventando.rst | 2 | ||||
-rw-r--r-- | aulas/seguranca.rst | 2 | ||||
-rw-r--r-- | aulas/versionamento.rst | 14 |
9 files changed, 154 insertions, 95 deletions
@@ -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/>`_. |