Treinamento em Python
Ricardo Brito do Nascimento (http://brito.blog.incolume.com.br)
- Apresentar,
- aprimorar as habilidades de desenvolvimento; e
- aprimorar técnicas da linguagem Python.
Vontade de aprender, desejo de pesquisar, noções básicas de informática e operação do sistema operacional por linha de comando.
Desenvolvedores, administradores de sistemas, programadores e interessados em geral.
120 horas
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
OKSe o resultado for similar ao apresentado, Meus parabéns!! Você concluiu o curso com sucesso!!
| 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
git clone --depth 1 https://gitlab.com/development-incolume/treinamentos/incolumepy_tdd.git -b 2.2.1; ou
git clone --depth 1 [email protected]:development-incolume/treinamentos/incolumepy_tdd.git -b 2.2.1Observação: em -b será a tag mais rescente ou a indicada pelo professor.
- pipenv
cd incolumepy_tdd
pipenv --python 3.7
pipenv install -dou
- poetry
cd incolumepy_tdd
poetry env use 3.7
poetry install- 
Criação de modulo; Tratamento de Exceções; Personalização de mensagem de exceções; 
- 
Criação de módulos em classe; classes em python; Tratamento de Exceções; Personalização de mensagens de exceções; 
- 
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 
- 
Interface em python; metodos NotImplementedError; property/setter 
- 
Herança 
- 
Herança 
- 
Herança 
- 
Herança 
- 
Metodos abstratos e Classe abstrata 
- 
Personalização de exceções por tipo 
- 
Clousures 
- 
Decoradores 
- 
Meta programação em Classe Python 
- 
Fatoração de código agregando funcionalidades 
- 
Fatoração de código com mudança de código sem perder funcionalidades 
- 
Recursividade 
- 
Fatoração para recursividade 
- 
Properties com bloqueio de escrita; raspagem HTML com BeautifulSoup; 
- 
Iteração com servidor python http.server; e utilização do selenium; 
- 
Utilização request; tratamento de HTML via python; 
- 
Validação de dados com expressões regulares; 
- 
Fatoração Employer 
- 
Manibpulação com CSV e Fatoração de classe com herança; 
- 
Calculos de Hashes 
- 
Conversão de cores rgb para hexadecimal; 
- 
Decodificador Morse 
- 
Gerador de senhas 
- 
Manipulação de arquivos 
- 
Permissões no Sistemas de Arquivos Nativo (Linux, Unix, MacOS, Windows, e outros) 
- 
Menu em terminal 
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