From 4d85ad4cb5569b01f2e85bbccde627c90bce6aae Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sun, 1 Nov 2015 19:06:32 -0200 Subject: -m Atualiza TODO --- TODO.rst | 4 +- aulas/ambientes.rst | 30 ++++++--- aulas/clientes.rst | 2 + aulas/devops.rst | 26 +++++--- aulas/licencas.rst | 7 +++ aulas/metodologias.rst | 162 +++++++++++++++++++++++++++--------------------- aulas/reinventando.rst | 2 + aulas/seguranca.rst | 2 + aulas/versionamento.rst | 14 ++++- 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 `_. + 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 `_. - `Lime Text Editor `_. - 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 `_. -- 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 `_. + +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 `_. - `PuPHPet - Online GUI configurator for Puppet & Vagrant `_. - 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 `_. -- `Best practices for software development - projects `_. -- `Boas práticas de engenharia de software \| Guia da Startup e da - Gestão de Produtos de - Software `_. -- `Boas Práticas de Desenvolvimento – melhorando o seu - dia-a-dia `_. -- `Melhores Práticas para Desenvolvimento de Sistemas e - Software `_. -- `Arquitetura, padrões, projetos e boas práticas sobre desenvolvimento - de software - - georgemendonca `_. -- `HOME -The Pomodoro Technique® `_. -- `Técnica de Pomodoro: Melhorar a Produtividade \| Freelancer e - Produtividade `_ -- `Técnica pomodoro – Wikipédia, a enciclopédia - livre `_. -- `Zen to Done - ZTD - Lucas - Teixeira `_. -- `Zen To Done (ZTD): The Simple Productivity System : zen - habits `_. - +- `Best coding practices - Wikipedia, the free encyclopedia `_. +- `Best practices for software development projects `_. +- `Boas práticas de engenharia de software \| Guia da Startup e da Gestão de Produtos de Software `_. +- `Boas Práticas de Desenvolvimento – melhorando o seu dia-a-dia `_. +- `Melhores Práticas para Desenvolvimento de Sistemas e Software `_. +- `Arquitetura, padrões, projetos e boas práticas sobre desenvolvimento de software - georgemendonca `_. +- `HOME -The Pomodoro Technique® `_. +- `Técnica de Pomodoro: Melhorar a Produtividade \| Freelancer e Produtividade `_ +- `Técnica pomodoro – Wikipédia, a enciclopédia livre `_. +- `Zen to Done - ZTD - Lucas Teixeira `_. +- `Zen To Done (ZTD): The Simple Productivity System : zen habits `_. +- `Time management - Wikipedia, the free encyclopedia `_. +- `Manifesto para o desenvolvimento ágil de software `_. 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 `_ e uma no `Gitlab `_. + Referências ----------- -- `Skeleton: Responsive CSS Boilerplate `_ -- `Versionamento Semântico 2.0.0 `_. - +- `Skeleton: Responsive CSS Boilerplate `_ +- `Versionamento Semântico 2.0.0 `_. -- cgit v1.2.3