Sobes.tech
Middle

La Programación Orientada a Objetos (POO) es un enfoque para desarrollar programas en el que el código se organiza en forma de objetos Encapsulación La encapsulación es la unión de datos y métodos que trabajan con esos datos dentro de una misma clase, así como la restricción del acceso directo al estado interno del objeto. En palabras simples: el objeto gestiona sus propios datos, y el código externo interactúa con él a través de métodos. Abstracción La abstracción es la selección de solo las características importantes del objeto y el ocultamiento de los detalles de su implementación. En palabras simples: al usuario le importa qué hace el objeto, no cómo exactamente lo hace. Polimorfismo El polimorfismo es la capacidad de objetos con diferentes implementaciones de usar una misma interfaz. En las pruebas, esto ayuda a escribir código universal que funciona con diferentes tipos de datos o clases. Ejemplo en Python: class Animal: def make_sound(self): pass class Dog(Animal): def make_sound(self): return "¡Guau!" 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) # ¡Guau! animal_sound(cat) # ¡Miau! En las pruebas automatizadas, el polimorfismo es útil para: - Crear métodos de verificación universales - Implementar diferentes estrategias de prueba a través de una misma interfaz - Mantener diferentes versiones de API/UI sin cambiar las pruebas Herencia La herencia es un mecanismo que permite a una nueva clase usar automáticamente una clase existente, heredando sus propiedades y métodos. En palabras simples: la nueva clase reutiliza el código de la clase padre y, si es necesario, lo amplía. Git 1. Sistemas de control de versiones. Local, centralizado, distribuido. 2. Conceptos básicos. Repositorio, índice, commit, punteros, rama, copia de trabajo. 3. Trabajar con un repositorio. Comandos: init, clone, status 4. Crear un commit. Comandos: add, commit. 5. Crear, ver, cambiar entre ramas, eliminar. Comandos: branch, checkout, log, diff. 6. Deshacer cambios. Comandos: restore, rm, checkout, revert. 7. Fusionar cambios entre ramas. Comandos: merge, cherry-pick, rebase. 8. Trabajar con un repositorio remoto. Comandos: fetch, pull, push. 9. Trabajar con GitHub, forks y Pull Requests.