OPP (Objektorienteeritud programmeerimine) on lähenemisviis tarkvaraarendusele, kus kood organiseeritakse objektidena
Inkapseulatsioon
Inkapseulatsioon on andmete ja nende töötlemise meetodite ühendamine ühte klassi ning otsese juurdepääsu piiramine objekti sisemisele olekule.
Lihtsamalt öeldes: objekt haldab ise oma andmeid ning väline kood suhtleb temaga meetodite kaudu.
Abstraktsioon
Abstraktsioon on ainult oluliste omaduste välja toomine ja üksikasjade varjamine.
Lihtsamalt öeldes: kasutajale on oluline, mida objekt teeb, mitte kuidas ta seda teeb.
Polümorfism
Polümorfism on võimalus erineva realiseeringuga objektidel kasutada sama liidest. See aitab kirjutada universaalseid koode, mis töötavad erinevate andmetüüpide või klassidega.
Näide Pythonis:
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!
Automaattestides on polümorfism kasulik:
- Üldiste kontrollimeetodite loomisel
- Erinevate testimisstrateegiate rakendamisel ühe liidese kaudu
- Erinevate API/UI versioonide toetamisel ilma testide muutmiseta
Pärimine
Pärimine on mehhanism, mis võimaldab uuel klassil kasutada olemasolevat, automaatselt omandades selle omadused ja meetodid.
Lihtsamalt öeldes: uus klass taaskasutab vanema klassi koodi ning vajadusel laiendab seda.
Git
1. Versioonikontrollisüsteemid. Kohaliku, tsentraliseeritud, hajutatud.
2. Põhiteadmised. Reposiit, indeks, commit, viitajad, haru, töökoopia.
3. Töö reposiidiga. Käskud: init, clone, status
4. Commiti loomine. Käskud: add, commit.
5. Harude loomine, vaatamine, vahetamine, kustutamine. Käskud: branch, checkout, log, diff.
6. Muudatuste tühistamine. Käskud: restore, rm, checkout, revert.
7. Muudatuste ühendamine. Käskud: merge, cherry-pick, rebase.
8. Töö kaugreposiidiga. Käskud: fetch, pull, push.
9. Töö GitHubiga, kopeerimine ja Pull Requests.