Sobes.tech
Middle

A Programação Orientada a Objetos (POO) é uma abordagem para desenvolver programas em que o código é organizado na forma de objetos Encapsulamento Encapsulamento é a união de dados e métodos que trabalham com esses dados dentro de uma mesma classe, bem como a restrição do acesso direto ao estado interno do objeto. Em palavras simples: o objeto gerencia seus próprios dados, e o código externo interage com ele através de métodos. Abstração Abstração é a seleção apenas das características importantes do objeto e o ocultamento dos detalhes de sua implementação. Em palavras simples: ao usuário importa o que o objeto faz, não como exatamente ele faz. Polimorfismo Polimorfismo é a capacidade de objetos com diferentes implementações usarem uma mesma interface. Nos testes, isso ajuda a escrever código universal que funciona com diferentes tipos de dados ou classes. Exemplo em Python: class Animal: def make_sound(self): pass class Dog(Animal): def make_sound(self): return "Au!" class Cat(Animal): def make_sound(self): return "Miau!" def animal_sound(animal: Animal): print(animal.make_sound()) dog = Dog() cat = Cat() animal_sound(dog) # Au! animal_sound(cat) # Miau! Nos testes automatizados, o polimorfismo é útil para: - Criar métodos de verificação universais - Implementar diferentes estratégias de teste através de uma mesma interface - Manter diferentes versões de API/UI sem alterar os testes Herança Herança é um mecanismo que permite a uma nova classe usar automaticamente uma classe existente, herdando suas propriedades e métodos. Em palavras simples: a nova classe reutiliza o código da classe pai e, se necessário, o amplia. Git 1. Sistemas de controle de versões. Local, centralizado, distribuído. 2. Conceitos básicos. Repositório, índice, commit, ponteiros, ramo, cópia de trabalho. 3. Trabalhar com repositório. Comandos: init, clone, status 4. Criar um commit. Comandos: add, commit. 5. Criar, ver, trocar entre ramos, excluir. Comandos: branch, checkout, log, diff. 6. Desfazer alterações. Comandos: restore, rm, checkout, revert. 7. Mesclar alterações entre ramos. Comandos: merge, cherry-pick, rebase. 8. Trabalhar com repositório remoto. Comandos: fetch, pull, push. 9. Trabalhar com GitHub, forks e Pull Requests.