OOP (Objektovo-orientované programovanie) je prístup k vývoju softvéru, pri ktorom je kód organizovaný vo forme objektov
Inkapsulácia
Inkapsulácia je spájanie dát a metód, ktoré s týmito dátami pracujú, v rámci jednej triedy, ako aj obmedzenie priameho prístupu k vnútornému stavu objektu.
Jednoducho povedané: objekt sám spravuje svoje dáta a vonkajší kód s ním komunikuje cez metódy.
Abstrakcia
Abstrakcia je vyčlenenie iba dôležitých vlastností objektu a skrytie detailov jeho implementácie.
Jednoducho povedané: používateľovi je dôležité, čo objekt robí, nie ako to robí.
Polymorfizmus
Polymorfizmus je možnosť objektov s rôznou implementáciou používať jeden rozhranie. V testovaní to pomáha písať univerzálny kód, ktorý pracuje s rôznymi typmi dát alebo triedami.
Príklad v Pythone:
class Animal:
def make_sound(self):
pass
class Dog(Animal):
def make_sound(self):
return "Woof!"
class Cat(Animal):
def make_sound(self):
return "Meow!"
def animal_sound(animal: Animal):
print(animal.make_sound())
dog = Dog()
cat = Cat()
animal_sound(dog) # Woof!
animal_sound(cat) # Meow!
V automatizovaných testoch je polymorfizmus užitočný pre:
- Vytváranie univerzálnych metód kontroly
- Implementáciu rôznych stratégií testovania cez jedno rozhranie
- Podporu rôznych verzií API/UI bez zmeny testov
Dedičnosť
Dedičnosť je mechanizmus, ktorý umožňuje novému triede používať existujúceho automaticky získavať jeho vlastnosti a metódy.
Jednoducho povedané: nová trieda znovu využíva kód rodičovskej triedy a v prípade potreby ho rozširuje.
Git
1. Systémy kontroly verzií. Lokálne, centralizované, distribuované.
2. Hlavné pojmy. Repozitár, index, commit, ukazovatele, vetva, pracovná kópia.
3. Práca s repozitárom. Príkazy: init, clone, status
4. Vytvorenie commitu. Príkazy: add, commit.
5. Vytváranie, prezeranie, prepínanie medzi vetvami, mazanie. Príkazy: branch, checkout, log, diff.
6. Zrušenie zmien. Príkazy: restore, rm, checkout, revert.
7. Zlučovanie zmien medzi vetvami. Príkazy: merge, cherry-pick, rebase.
8. Práca s vzdialeným repozitárom. Príkazy: fetch, pull, push.
9. Práca s GitHub, forky a Pull Requests.