Co je to OOP a proč se to mám učit?
Ze všech stran slyšíš, že pokud se chceš živit jako programátor, musíš se naučit kromě programovacího jazyka taky nějaké to ó-ó-pé. Co to ale je a proč by tě to mělo zajímat?
Ze všech stran slyšíš, že pokud se chceš živit jako programátor, musíš se naučit kromě programovacího jazyka taky nějaké to ó-ó-pé. Co to ale je a proč by tě to mělo zajímat? Chceš se dozvědět, k čemu je to dobré a kde se OOP používá? Nebo jestli je to těžké a jak to funguje? Tak čti dál!
Co to je?
OOP, neboli objektově orientované programování (object-oriented programming), je způsob, jak nad kódem přemýšlet a jak ho psát. Možná jsi se také setkal/a s funkcionálním nebo procedurálním programováním. Jednotlivé způsoby se liší strukturou a designem kódu.
Proč by mě OOP mělo zajímat?
Existují 2 hlavní důvody, proč se naučit objektově orientované programování používat:
- Pokud se chceš zaměstnat v IT, tak se OOP dost pravděpodobně nevyhneš. Nejen, že ho budeš muset číst (v kódu ostatních programátorů), ale taky v něm budeš muset přemýšlet a psát.
- Pokud chceš časem pracovat na větších projektech (zhruba 50 000 řádků a více) budeš potřebovat OOP pro uchování srozumitelnosti a udržitelnosti kódu.
Kde se OOP používá?
Jednoduše řečeno, tento způsob zamyšlení se nad organizací kódu potkáš prakticky všude. OOP je jazykově neutrální, což znamená, že se používá napříč různými jazyky:
V některých IT odvětvích se používá OOP více (vývoj webu, databázové systémy) a v některých méně (data science, machine learning). Nicméně i v oblastech, které využívají OOP méně, se často pracuje s knihovnami (kód, který napsal někdo jiný a my ho používáme), které v něm jsou napsané.
Čili nehledě na odvětví, znalost objektově orientovaného programování se ti bude hodit.
Je to těžké?
Ano i ne. Některým trvá pochopit principy OOP déle. Více lidem pak trošku trvá OOP aplikovat do svého kódu, ale většině lidí dělá (hlavně ze začátku) problém začít psát kód v OOP tak, aby to bylo opravdu užitečné, smysluplné, udržitelné a srozumitelné.
Ale máme pro tebe dobré zprávy. Nebudeš jediný, komu se ze začátku točí z OOP hlava! Proto ti na různých programátorských fórech či skupinách vždycky někdo poradí.
K čemu je OOP dobré?
Na úplném začátku tvé kariéry ti jako “programátorovi“ za psaní kódu nebude žádná firma moc ochotna platit. Proč tomu tak je? Příkazy (řádky) se opakují. Výsledný kód je potom dlouhý a nepřehledný. Díky tomu se v něm pravděpodobně nachází množství chyb.
Pak ale objevíš funkce. To jsou kousky kódu, které programátor napíše jen jednou. Funkce mají jeden účel a jsou určené pro vykonání určitého setu příkazů. Například takovým účelem může být seřadit jména dle abecedy. Funkce tedy ve svém kódu jen takzvaně voláš jejich jménem, ale už nemusíš opisovat řádky. Jejich zavoláním se vykoná kód, který jsi jim předepsal (seřadit jména). To pak ušetří hodně místa a taky ti to umožní lépe udržovat kód.
Jako programátor pak můžeš svůj život dožít jenom psaním funkcí. Programy budou fungovat. V určitém bodu se ale může stát, že ty funkce bude taky třeba nějak uspořádat, aby ses v nich vyznal. Pak se pravděpodobně začneš věnovat objektově-orientovanému programování. To spočívá ve vytváření takzvaných tříd. Psaní tříd a objektově-orientované programování je tedy jedno a to samé. Třídy, kterým také říkáme objekty, mohou obsahovat vícero funkcí a být tak použity na vícero místech programu.
S OOP se častěji setkáme u větších projektů, protože, kromě dalšího množství benefitů, programátorům umožňuje organizovat jejich kód přehledněji. A přehlednost znamená efektivitu.
Jak to funguje?
Pojďme pěkně od začátku. Programování je zápis řešení problému pomocí kódu. V případě OOP se tyto problémy snažíme řešit pomocí objektů, které reprezentují objekty v reálném světě.
No a jak víme z kostiček, svět je plný lidí, hraček, zvířat, věcí a všechny mají 2 společné rysy – mají určité vlastnosti a chování.
Takže například chceme vytvořit aplikaci na úpravu obrázků. Co můžeme na obrázku upravit? Jeho velikost, jméno, jeho pixely, atp. To jsou jeho vlastnosti. Jak ho můžeme upravit? Změnit velikost, jméno, ořezat (neboli odstranit určitou část pixelů), otočit (neboli změnit polohu pixelů), změnit jeho barvu (změnit barvu pixelů). To je jeho chování.
Problém tedy je, jak upravit obrázek. Objekty, které jsme v tomto problému identifikovali, jsou obrázek a pixel. U každého objektu jsme si definovali jaký je (vlastnosti) a co s ním můžeme dělat (chování).
Dalším krokem by tedy bylo zapsat obrázek a pixel do kódu a začít je používat pro úpravu obrázku.
Jak zapsat objekty do kódu?
Než se vrhneš na psaní kódu v OOP, doporučujeme si nejdřív zažít psaní příkazů a funkcí. Pokud se to chceš naučit v Pythonu, můžeme ti s tím pomoct v Python Akademii.