From adb65f02f849e43bc6cae02dcfe799877878215b Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 31 Oct 2015 20:05:23 -0200 Subject: Documentação usando python-sphinx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.rst | 182 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 README.rst (limited to 'README.rst') diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..793c42a --- /dev/null +++ b/README.rst @@ -0,0 +1,182 @@ +.. Boas Práticas em Desenvolvimento documentation master file, created by + sphinx-quickstart on Sat Oct 31 19:44:44 2015. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +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. Metodologias e técnicas de produtividade. +2. Ambientes de desenvolvimento eficientes. +3. Licenças de software. +4. Controle de versão e social coding. +5. DevOps: desenvolvendo e orquestrando. +6. Segurança e privacidade. +7. Quando (não) reinventar a roda. +8. Lidando com os clientes. + +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. + +Dificuldade do curso +~~~~~~~~~~~~~~~~~~~~ + +Intermediária. + +Relação do curso com o PRONATEC +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Eixo Tecnológico: Informação e Comunicação (é um curso transversal, +aderente á todos os demais cursos que envolvem linguagens de programação +e / ou desenvolvimento de software). + +Aplicação do conhecimento +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Como e onde ele vai usar usar isso ? Por que que ele será um +profissional melhor aplicando este conhecimento ? + +Material Didático +~~~~~~~~~~~~~~~~~ + +Sugestão de Bibliografia: + +- O Mítico Homem-Mês. + +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 `_. +- 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). + -- cgit v1.2.3