Skip to content

incolume-jedi/incolumepy_tdd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Treinamento em Python

Sobre o Curso

Nome

Treinamento em Python

Instrutor

Ricardo Brito do Nascimento (http://brito.blog.incolume.com.br)

Objetivo

  • Apresentar,
  • aprimorar as habilidades de desenvolvimento; e
  • aprimorar técnicas da linguagem Python.

Pré−Requisitos

Vontade de aprender, desejo de pesquisar, noções básicas de informática e operação do sistema operacional por linha de comando.

Público Alvo

Desenvolvedores, administradores de sistemas, programadores e interessados em geral.

Duração

120 horas

Introdução

Este treinamento se divide em etapas sequênciais, de conhecimento cumulativo para aperfeiçoar e aprimorar as habilidades de desenvolvimento e técnicas da linguagem.

O treinamento consite na metodologia TDD - Test Driven Development, ou em português Desenvolvimento Orientado por Testes.

Os testes deste treinamento foram implementados em doctest, unittest e os mais recentes em pytest. Os resutados dos testes indicarão se o objetivo foi atendido, ou não.

Ao terminar o desenvolvimento dos testes, o resultado deverá ser similar ao apresentado abaixo:

$ nosetests tests/*
...........................................................
----------------------------------------------------------------------
Ran 59 tests in 8.072s

OK

Se o resultado for similar ao apresentado, Meus parabéns!! Você concluiu o curso com sucesso!!

Ambiente necessário

incolumepy_tdd version status python version requisitos
2.8.0 3.8, 3.9, 3.10 cliente git, poetry, tox
2.7.0 3.7, 3.8, 3.9 cliente git, poetry, tox
2.6.1 obsoleto 3.7, 3.8, 3.9 cliente git, poetry, tox
2.5.0 descontinuado 3.7, 3.8, 3.9 cliente git, pipenv, poetry, tox
2.4.0 descontinuado 3.6, 3.7, 3.8 cliente git, pipenv, tox
2.3.0 descontinuado 3.6, 3.7, 3.8 cliente git, pipenv, tox
2.2.0 descontinuado 3.6, 3.7, 3.8 cliente git, pipenv, tox
2.1.0 descontinuado 3.6 cliente git, pipenv
2.0.0 descontinuado 3.6 cliente git, virtualenv, nosetests
1.0.0 descontinuado 3.6 cliente git, virtualenv
0.1.0 descontinuado 3.6 Estrutura inicial

Para melhor aproveitamento do ambiente de desenvolvimento sugiro a utilização do Pyenv e Pipenv/poetry. Detalhes em:

Usuários Linux: http://brito.blog.incolume.com.br/2019/11/python-ambientes-virtuais-com-pyenv.html

Usuários Windows: https://brito.blog.incolume.com.br/2020/11/python-ambientes-virtuais-com-pyenv-win.html

Outra ferramenta útil será o git, detalhes em http://brito.blog.incolume.com.br/2013/03/guia-rapido-de-comandos-git-lado-usuario.html

Como começar?

Baixe o projeto para diretório local

git clone --depth 1 https://gitlab.com/development-incolume/treinamentos/incolumepy_tdd.git -b 2.2.1; ou
git clone --depth 1 git@gitlab.com:development-incolume/treinamentos/incolumepy_tdd.git -b 2.2.1

Observação: em -b será a tag mais rescente ou a indicada pelo professor.

Crie o ambiente virtual para o projeto

  • pipenv
cd incolumepy_tdd
pipenv --python 3.7
pipenv install -d

ou

  • poetry
cd incolumepy_tdd
poetry env use 3.7
poetry install

Qual o conteúdo em cada etapa?

  1. Criação de modulo; Tratamento de Exceções; Personalização de mensagem de exceções;

  2. Criação de módulos em classe; classes em python; Tratamento de Exceções; Personalização de mensagens de exceções;

  3. Classes; atributos estáticos; manipulação de datas; estruturas de dados (listas), slice em lista e string; Calculos em floats; manipulação de atributos privados; property/setter

  4. Interface em python; metodos NotImplementedError; property/setter

  5. Herança

  6. Herança

  7. Herança

  8. Herança

  9. Metodos abstratos e Classe abstrata

  10. Personalização de exceções por tipo

  11. Clousures

  12. Decoradores

  13. Meta programação em Classe Python

  14. Fatoração de código agregando funcionalidades

  15. Fatoração de código com mudança de código sem perder funcionalidades

  16. Recursividade

  17. Fatoração para recursividade

  18. Properties com bloqueio de escrita; raspagem HTML com BeautifulSoup;

  19. Iteração com servidor python http.server; e utilização do selenium;

  20. Utilização request; tratamento de HTML via python;

  21. Validação de dados com expressões regulares;

  22. Fatoração Employer

  23. Manibpulação com CSV e Fatoração de classe com herança;

  24. Calculos de Hashes

  25. Conversão de cores rgb para hexadecimal;

  26. Decodificador Morse

  27. Gerador de senhas

  28. Manipulação de arquivos

  29. Permissões no Sistemas de Arquivos Nativo (Linux, Unix, MacOS, Windows, e outros)

  30. Menu em terminal

Testes modulares

Para testar cada etapa individualmente utilize o comando abaixo, para cada arquivo de teste unitário:

nosetests tests/03_employers_tests.py
...........
----------------------------------------------------------------------
Ran 11 tests in 0.006s

OK