diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2015-10-23 12:27:44 -0200 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2015-10-23 12:27:44 -0200 |
commit | 764b7edffa950ca6b86748527ce4974d1c6bb56f (patch) | |
tree | 691768cca5e4b2d552fcc003ff96217920c56ad1 /README.md | |
download | boaspraticas-764b7edffa950ca6b86748527ce4974d1c6bb56f.tar.gz boaspraticas-764b7edffa950ca6b86748527ce4974d1c6bb56f.tar.bz2 |
Versão inicial
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..e079ddd --- /dev/null +++ b/README.md @@ -0,0 +1,99 @@ +Boas Práticas em Desenvolvimento +================================ + +Ementa +------ + +* Título do curso: Boas Práticas em Desenvolvimento de Software. +* Professores: Silvio Rhatto. +* Tempo estimado de dedicação do aluno e agenda de comprometimento sugerida: 40 horas. +* Público alvo e Pré-requisitos: o curso é orientado a desenvolvedores(as) de software que já possuem ao menos um conhecimento básico em programação e que necessitam melhorar sua produtividade ou mesmo trabalhar em time de maneira fluida. +* Dificuldade do curso: intermediário. + +### Currículo do professor + +Silvio Rhatto é bacharel em meteorologia, técnico em eletrônica e autodidata em computação. Desenvolve software livre há mais de 10 anos e já realizou diversos cursos na área de tecnologia, especialmente em segurança da informação e privacidade. + +### Descrição do curso + +Este curso introduz diversas metedologias, ferramentas e conceitos de desenvolvimento de software que aumentam a produtividade e facilitam o compartilhamento de código. A ideia é preencher a lacuna dos cursos específicos de programação que dificilmente abordam questões práticas e cotidianas como controle de versão, manutenção de um ambiente de desenvolvimento, licenciamento, segurança, etc. + +Apesar dos softwares serem produtos definidos, reprodutíveis e na maioria das vezes determinísticos, o seu desenvolvimento implica na canalização da criatividade, na capacidade de trabalhar colaborativamente e enfrentar desafios como a integração de elementos já disponíveis. Para que isso seja possível e agradável, é fundamental que o(a) programador(a) entenda o processo de desenvolvimento que vai além de simplesmente codificar seu raciocínio numa linguagem de programação. + +Serão apresentados problemas essenciais e acidentais da programação e diferentes maneiras de abordá-los, indo desde a ansiedade de programar até os modernos ambientes de teste contínuo. + +Ao concluir o curso, o(a) aluno(a) terá condições de: + +* Analisar criticamente as técnicas e ferramentas apresentadas. +* Escolher quais delas mais se adequam à sua realidade. +* Pesquisar o tema por conta própria. + +### Estrutura do curso + +O curso será dividido em 8 aulas, sendo cada aula organizada nos seguintes capítulos: + +1. O que são boas práticas em desenvolvimento? +2. Metodologias e técnicas de produtividade. +3. Ambientes de desenvolvimento eficientes. +4. Licenças de software. +5. Controle de versão e social coding. +6. DevOps: desenvolvendo e orquestrando. +7. Segurança e privacidade. +8. Quando (não) reinventar a roda. + +Os capítulos serão organizados na forma de: + +* Vídeo aulas. +* Testes e atividades online. +* Exercícios individuais de aplicação. +* Leitura de material didático de apoio. + +Plano de aulas +-------------- + +1. O que são boas práticas em desenvolvimento? + * Produto "funcional" desde o dia 0. +2. Metodologias e técnicas de produtividade. + * Mitos (pessoa-mês, métricas). + * A catedral e o bazar: Lei de Linus. + * Metodologias pessoais. + * Pomodoro. + * GTD. + * ZTD. + * Metodologias em equipe. + * Agile. + * Scrum. +3. Ambientes de desenvolvimento eficientes. + * A guerra dos editores de texto. + * Teclas de atalho, backups e ferramentaria. + * Ambiente de desenvolvimento eficiente e confortável. + * Criando seus templates de desenvolvimento. + * Mantendo um diário de bordo e uma base de conhecimento. +4. Licenças de software. + * GPL. + * BSD. + * Apache. + * Creative Commons. + * Domínio Público. +5. 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). +6. DevOps: desenvolvendo e orquestrando. + * Sysadmin básico. + * Vagrant, docker. + * Ambientes reprodutíveis. + * Integração contínua. +7. 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. +8. Quando (não) reinventar a roda. + * Antipatterns. + * Inferno de dependências. |