diff options
-rw-r--r-- | TODO.rst | 2 | ||||
-rw-r--r-- | aulas/ambientes.rst | 27 | ||||
-rw-r--r-- | aulas/clientes.rst | 11 | ||||
-rw-r--r-- | aulas/devops.rst | 8 | ||||
-rw-r--r-- | aulas/encerramento.rst | 30 | ||||
-rw-r--r-- | aulas/licencas.rst | 50 | ||||
-rw-r--r-- | aulas/metodologias.rst | 10 | ||||
-rw-r--r-- | aulas/reinventando.rst | 9 | ||||
-rw-r--r-- | aulas/seguranca.rst | 21 | ||||
-rw-r--r-- | aulas/versionamento.rst | 38 | ||||
-rw-r--r-- | conf.py | 2 | ||||
-rw-r--r-- | plano.rst | 136 |
12 files changed, 262 insertions, 82 deletions
@@ -1,7 +1,7 @@ TODO ==== -- Adicionar referência da licença na documentação gerada. - Referências de cada aula na ementa do curso. - Completar roteiro de aulas. +- Gravar screencasts. - Revisar conteúdo. diff --git a/aulas/ambientes.rst b/aulas/ambientes.rst index 7a0787c..7a751db 100644 --- a/aulas/ambientes.rst +++ b/aulas/ambientes.rst @@ -5,15 +5,18 @@ - 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 ---------------- +2.1 - Ambiente básico e a guerra dos editores de texto +------------------------------------------------------ + +2.1 - Ambiente básico +~~~~~~~~~~~~~~~~~~~~~ - Editor de texto ou IDE: produz código. - Emulador de terminal: execução de tarefas. - Navegador web: ambiente de teste. -Editores --------- +2.1 - Editores +~~~~~~~~~~~~~~ - Vantagens dos IDEs (NetBeans, Eclipse, Aptana, etc): - Ambiente de desenvolvimento integrado. @@ -21,18 +24,28 @@ Editores - Simplicidade. - Performance. -Fluxo de trabalho ------------------ +2.2 - Emulador de terminal +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +2.3 - Fluxo de trabalho +~~~~~~~~~~~~~~~~~~~~~~~ - Diário de bordo: de um arquivo de texto a um blog sobre desenvolvimento. - Organização de pastas. - Backups. + +2.4 - Scripts e templates +~~~~~~~~~~~~~~~~~~~~~~~~~ + - Scripts de produtividade. +- Templates de desenvolvimento. 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! +#. 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! + +#. Crie uma pasta para o seu projeto. Referências ----------- diff --git a/aulas/clientes.rst b/aulas/clientes.rst index 22dbb7f..bb3b398 100644 --- a/aulas/clientes.rst +++ b/aulas/clientes.rst @@ -1,2 +1,13 @@ 8. Lidando com os clientes ========================== + +6.1 - Como fazer / Apresentar uma proposta comercial para um cliente? +--------------------------------------------------------------------- + +6.2 - Items essenciais de uma proposta +-------------------------------------- + +6.3 - Como cobrar +----------------- + +- Por hora ou por projeto? diff --git a/aulas/devops.rst b/aulas/devops.rst index 947feed..559251f 100644 --- a/aulas/devops.rst +++ b/aulas/devops.rst @@ -3,18 +3,18 @@ - 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. -- 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. +#. Instale o vagrant. +#. Crie uma máquina virtual para desenvolver o seu projeto. +#. Crie uma conta no Travis CI. Referências ----------- diff --git a/aulas/encerramento.rst b/aulas/encerramento.rst index 15b58e3..ca1124f 100644 --- a/aulas/encerramento.rst +++ b/aulas/encerramento.rst @@ -1,2 +1,32 @@ 9. Encerramento =============== + +9.1 - Metodologias e técnicas de produtividade +---------------------------------------------- + +9.2 - Ambientes de desenvolvimento eficientes +--------------------------------------------- + +9.3 - Licenças de software +-------------------------- + +9.4 - Controle de versão e social coding +---------------------------------------- + +9.5 - DevOps: desenvolvendo e orquestrando +------------------------------------------ + +9.6 - Segurança e privacidade +----------------------------- + +9.7 - Quando (não) reinventar a roda +------------------------------------ + +9.8 - Lidando com os clientes +----------------------------- + +9.9 - Seguindo adiante +---------------------- + +* Sempre haverá novos métodos para eliminar as dificuldades acidentais na programação. +* Não existem verdades absolutas, mas sim um caminho para reavaliações e autoconhecimento. diff --git a/aulas/licencas.rst b/aulas/licencas.rst index f0f35b2..98a0195 100644 --- a/aulas/licencas.rst +++ b/aulas/licencas.rst @@ -1,8 +1,54 @@ 3. Licenciamento ================ +3.1 - O que é e por quê licenciar? +---------------------------------- + +* Propriedade intelectual: marcas, patentes, direito autoral. +* Licença padrão e automática: copyright. +* No Brasil: `Lei 9610/98 <http://www.planalto.gov.br/ccivil_03/leis/L9610.htm>`_. + +3.2 - Licenças básicas +---------------------- + +3.2 - Domínio Público +~~~~~~~~~~~~~~~~~~~~~ + +- Obras sem direitos autorais. +- Existe direito moral (autores/as podem reinvindicar a autoria). + +3.2 - New BSD +~~~~~~~~~~~~~ + +3.2 - MIT +~~~~~~~~~ + +3.3 - GNU GPL +------------- + +Quatro liberdades do software livre: + +- 0. Rodar. +- 1. Estudar. +- 2. Redistribuir. +- 3. Melhorar. + +* Exemplo: `licença desta documentação </LICENSE.html>`_. + +3.4 - Creative Commons +---------------------- + +3.5 - Outras licenças +--------------------- + +3.5 - Apache +~~~~~~~~~~~~ + +3.5 - Mozilla +~~~~~~~~~~~~~ + 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. +#. 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 424e1bf..65a7895 100644 --- a/aulas/metodologias.rst +++ b/aulas/metodologias.rst @@ -1,8 +1,8 @@ 1. Metodologias e técnicas de produtividade =========================================== -1.1 - Apresentação ------------------- +1.1 - O que são boas práticas em desenvolvimento? +------------------------------------------------- 1.1 - Apresentação do professor e do curso ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -114,7 +114,9 @@ Queremos: 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? +#. 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? + +#. Para este curso, definimos o nosso projeto de exemplo como sendo um website bem simples. Você pode fazer o mesmo ou então escolher qualquer projeto que queira fazer usando qualquer linguagem de programação e adaptar as atividades propostas nas aulas seguintes de acordo com o seu caso. Sugerimos apenas que você escolhe um nome para o seu projeto, mesmo que temporário! Mas lembre-se: nomes tem poder! :) Referências ----------- @@ -130,7 +132,7 @@ Referências - `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`_. +- `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/>`_. - https://www.mountaingoatsoftware.com/blog/differences-between-scrum-and-extreme-programming diff --git a/aulas/reinventando.rst b/aulas/reinventando.rst index 0f13e13..25f05fb 100644 --- a/aulas/reinventando.rst +++ b/aulas/reinventando.rst @@ -1,2 +1,11 @@ 7. Quando (não) reinventar a roda ================================= + +6.1 - Antipatterns +------------------ + +6.2 - Inferno de dependências +----------------------------- + +6.3 - Documentação: lendo e escrevendo +-------------------------------------- diff --git a/aulas/seguranca.rst b/aulas/seguranca.rst index 55d1483..787c9f0 100644 --- a/aulas/seguranca.rst +++ b/aulas/seguranca.rst @@ -1,2 +1,23 @@ 6. Segurança e privacidade ========================== + +6.1 - Segurança começa no desenvolvimento +----------------------------------------- + +* Criptografia é só uma parte das práticas seguras. +* Testes de penetração: inverta os papéis: e se você fosse o/a atacante? + +6.2 - Use bibliotecas consolidadas! +----------------------------------- + +6.3 - Princípio das permissões mínimas +-------------------------------------- + +6.4 - Criptografia básica +------------------------- + +* Assinaturas digitais. +* Comunicação cifrada. + +6.5 - Certificados x509 para SSL/TLS/HTTPS +------------------------------------------ diff --git a/aulas/versionamento.rst b/aulas/versionamento.rst index 61cb10e..1e3e075 100644 --- a/aulas/versionamento.rst +++ b/aulas/versionamento.rst @@ -1,12 +1,44 @@ 4. Controle de versão e social coding ===================================== +4.1 - O que é? Pra que serve? +----------------------------- + +* Versionando desde o dia 0. + +4.2 - Quais sistemas existem? +----------------------------- + +4.3 - Git: introdução +--------------------- + +4.4 - Git: navegando no histórico +--------------------------------- + +4.5 - Git: ramificações (branches) +---------------------------------- + +4.6 - Usando o git-flow +----------------------- + +4.7 - Social coding (gitlab, github, etc) +----------------------------------------- + +4.8 - Github: criando e forkando um projeto +------------------------------------------- + +4.9 - Github: fazendo um pull request +------------------------------------- + +4.10 - Github: sistema de tickets +--------------------------------- + Atividades ---------- -- Instale o git. -- Crie uma conta do `Github <https://github.com>`_ e uma no `Gitlab <https://gitlab.com>`_. -- Faça um pequeno site com o Skeleton. +#. Instale o git. +#. Crie uma conta do `Github <https://github.com>`_ e uma no `Gitlab <https://gitlab.com>`_. +#. Faça um pequeno site com o Skeleton. Referências ----------- @@ -64,7 +64,7 @@ language = 'pt_BR' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ['_build', '_themes', 'README.rst'] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None @@ -1,63 +1,79 @@ Plano de aulas ============== -1. Metodologias e técnicas de produtividade. - - Apresentação do professor e do curso. - - O que são boas práticas de desenvolvimento? - - Mitos e verdades do desenvolvimento. - - A catedral e o bazar: Lei de Linus. - - Metodologias pessoais. - - Pomodoro. - - GTD. - - ZTD. - - Metodologias em equipe. - - Agile. - - Scrum. - -2. Ambientes de desenvolvimento eficientes. - - A guerra dos editores de texto e IDEs. - - Ambiente de desenvolvimento eficiente e confortável. - - Backups e ferramentaria. - - Criando seus templates de desenvolvimento. - - Mantendo um diário de bordo e uma base de conhecimento. - -3. Licenças de software. - - GPL. - - BSD. - - Apache. - - Creative Commons. - - Domínio Público. - -4. Controle de versão e social coding. - - O que é? Pra que serve? - - Quais sistemas existem? - - Focando no git e no git-flow. - - Versionando desde o dia 0. - - Social coding (gitlab, github, etc). - -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: - - SSH e rsync. - - Permissões. - -6. Segurança e privacidade. - - Segurança começa no desenvolvimento. - - Use bibliotecas consolidadass! - - Princípio das permissões mínimas. - - Criptografia básica: - - Assinaturas digitais. - - Comunicação cifrada. - - Certificados x509 para SSL/TLS/HTTPS. - -7. Quando (não) reinventar a roda. - - Antipatterns. - - Inferno de dependências. - - Documentação: lendo e escrevendo. - -8. Lidando com os clientes. - - Como fazer / Apresentar uma proposta comercial para um cliente? - - Items essenciais de uma proposta. - - Como cobrar (por hora ou por projeto). +* Aula 1: Metodologias e técnicas de produtividade. + + * Capítulo 1: O que são boas práticas em desenvolvimento? + * Capítulo 2: Mitos e verdades do desenvolvimento. + * Capítulo 3: Metodologias pessoais. + * Capítulo 4: Metodologias pessoais: Get Things Done (GTD). + * Capítulo 5: Metodologias pessoais: Zen to Done (ZTD). + * Capítulo 6: Metodologias em equipe. + * Capítulo 7: Começando um projeto. + +* Aula 2: Ambientes de desenvolvimento eficientes. + + * Capítulo 1: ambiente básico e a guerra dos editores de texto. + * Capítulo 2: emulador de terminal. + * Capítulo 3: fluxo de trabalho. + * Capítulo 4: scripts e templates. + +* Aula 3: Licenças de software. + + * Capítulo 1: O que é e por quê licenciar? + * Capítulo 2: Licenças básicas. + * Capítulo 3: GNU GPL. + * Capítulo 4: Creative Commons. + * Capítulo 5: Outras licenças. + +* Aula 4: Controle de versão e social coding. + + * Capitulo 1: O que é? Pra que serve? + * Capítulo 2: Quais sistemas existem? + * Capítulo 3: Git: introdução. + * Capítulo 4: Git: navegando no histórico. + * Capítulo 5: Git: ramificações (branches). + * Capítulo 6: Usando o git-flow. + * Capítulo 7: Social coding (gitlab, github, etc). + * Capítulo 8: Github: criando e forkando um projeto. + * Capítulo 9: Github: fazendo um pull request. + * Capítulo 10: Github: sistema de tickets. + +* Aula 5: DevOps: desenvolvendo e orquestrando. + + * Capítulo 1: Vagrant, docker, KVM e afins. + * Capítulo 2: Ambientes reprodutíveis. + * Capítulo 3: Integração contínua usando o Travis CI. + * Capítulo 4: Fazendo o deploy: + +* Aula 6: Segurança e privacidade. + + * Capítulo 1: Segurança começa no desenvolvimento. + * Capítulo 2: Use bibliotecas consolidadas! + * Capítulo 3: Princípio das permissões mínimas. + * Capítulo 4: Criptografia básica: + * Capítulo 5: Certificados x509 para SSL/TLS/HTTPS. + +* Aula 7: Quando (não) reinventar a roda. + + * Capítulo 1: Antipatterns. + * Capítulo 2: Inferno de dependências. + * Capítulo 3: Documentação: lendo e escrevendo. + +* Aula 8:. Lidando com os clientes. + + * Capítulo 1: Como fazer / Apresentar uma proposta comercial para um cliente? + * Capítulo 2: Items essenciais de uma proposta. + * Capítulo 3: Como cobrar. + +* Aula 9: Encerramento. + + * Capítulo 1: Metodologias e técnicas de produtividade. + * Capítulo 2: Ambientes de desenvolvimento eficientes. + * Capítulo 3: Licenças de software. + * Capítulo 4: Controle de versão e social coding. + * Capítulo 5: DevOps: desenvolvendo e orquestrando. + * Capítulo 6: Segurança e privacidade. + * Capítulo 7: Quando (não) reinventar a roda. + * Capítulo 8: Lidando com os clientes. + * Capítulo 9: Seguindo adiante. |