IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

1. diel - Úvod - Evolúcia metodík

Vitajte pri prvej lekcii kurzu Objektovo orientovaného programovania vo VBA. Nadväzujeme na znalosti kurzov Základy Microsoft VBA a VBA pre Excel. V tomto on-line kurze Objektovo orientovaného programovania vo VBA sa naučíme objektovo programovať a hlavne objektovo myslieť. Je to niečo trochu iné, než sme robili doteraz. Samotný program už nebudeme chápať ako niekoľko riadkov príkazov, ktoré interpret vykonáva zhora nadol.

V dnešnom VBA tutoriále sa pozrieme do histórie, ako sa programovalo skôr. Je to totiž dôležité na to, aby sme pochopili, prečo OOP vzniklo. Bude reč o evolúcii metodík.

Medzi tým, ako sa programovalo pred 40 rokmi a ako sa programuje dnes, je veľký rozdiel. Prvé počítače neoplývali veľkým výkonom a aj ich softvér nebol nijako zložitý. Vývoj hardvéru je však natoľko rýchly, že sa počet tranzistorov v mikroprocesoroch každý rok zdvojnásobí. (Moorov zákon).

Bohužiaľ, ľudia sa nedokážu rozvíjať tak rýchlo, ako sa rozvíja hardvér. Stále rýchlejšie počítače vyžadujú stále zložitejší a zložitejší softvér (resp. ľudia toho chcú po počítačoch stále viac a viac). Keď sa v jednej chvíli zistilo, že okolo 90 % softvéru je vytvorených s oneskorením, s dodatočnými nákladmi, alebo zlyhalo úplne, hľadali sa nové cesty, ako programy písať. Vystriedalo sa tak niekoľko prístupov, presnejšie sa im hovorí paradigma (chápajme ako smer myslenia). My si ich tu popíšeme.

Strojový kód

Program bol len súborom inštrukcií, kde sme nemali žiadnu možnosť pomenovávať premenné alebo zadávať matematické výrazy. Zdrojový kód bol samozrejme špecifický pre daný hardvér (procesor). Táto paradigma bola čoskoro nahradená.

Neštruktúrovaná paradigma

Neštruktúrovaný prístup je podobný assemblerom. Ide o súbor inštrukcií, ktorý sa vykonáva zhora nadol. Zdrojový kód už nebol závislý od hardvéru a bol lepšie čitateľný pre človeka. Prístup na nejaký čas umožnil vytvárať komplexnejšie programy.

Boli tu však stále mnohé úskalia. Jediná možnosť, ako urobiť niečo viackrát, alebo ako sa v kóde vetviť, bol príkaz GOTO. GOTO nám umožňuje "skákať" na jednotlivé miesta v programe. Miesta boli predtým špecifikované číslom riadku zdrojového kódu, čo je samozrejme nepraktické. Keď do kódu vložíme nový riadok, čísla prestanú súhlasiť a celý kód je rozbitý. Neskôr vznikla možnosť definovať tzv. návestie. Takto sa obchádzala napr. absencia cyklov. Takýto spôsob písania programov je samozrejme veľmi neprehľadný a čoskoro prestal postačovať na vývoj zložitejších programov.

Uvedomme si, že obrovské rozšírenie počítačov za posledných niekoľko dekád má na svedomí rast dopytu po softvéri a logicky aj rast dopytu po programátoroch. Iste existujú ľudia, ktorí dokážu bez chyby písať programy v assembleri alebo iných nízkych jazykoch, ale koľko ich je? A koľko si asi za takú nadľudskú prácu účtujú? Je potrebné písať programy tak, aby aj menej skúsení programátori dokázali písať kvalitné programy a nepotrebovali na tvorbu jednoduchej utilitky 5 rokov praxe.

Štruktúrované programovanie

Štruktúrované programovanie je prvou paradigmou, ktorá sa udržala dlhšiu dobu a naozaj chvíľu postačovala na vývoj nových programov. Programujeme pomocou cyklov a vetvenia. To je v podstate to, kam sme sa doteraz dostali.

Pri štruktúrovanom programovaní hovoríme o tzv. funkcionálnej dekompozícii. Problém sa rozloží na niekoľko problémov a každý problém potom rieši určitá funkcia s parametrami. Nevýhodou je, že funkcia vie len jednu činnosť. Keď chceme niečo iné, musíme napísať novú funkciu. Neexistuje totiž spôsob, ako vziať starý kód a len ho trochu modifikovať, musíme písať znova a znova. Vznikajú zbytočné náklady a chyby.

Túto nevýhodu je možné čiastočne obísť pomocou parametrizácie funkcií (počet parametrov potom ale rýchlo narastá), alebo použitím globálnych premenných. S globálnymi dátami vzniká však nové nebezpečenstvo - funkcie majú prístup k dátam ostatných. To je začiatok konca. Nikdy totiž neustrážime, aby niekde nedošlo k prepísaniu globálnych dát medzi funkciami a začne dochádzať k nekontrolovateľným problémom.

Celý program sa potom skladá z nezapuzdrených blokov kódu a zle sa udržuje. Každá úprava programu zvyšuje zložitosť. Program potom nutne dôjde do stavu, kedy náklady na pridávanie nových funkcií vzrastú natoľko, že sa program už neoplatí rozširovať. Zástupcovia tohto prístupu sú napríklad jazyky C, Pascal alebo QBasic.

Medzi štruktúrovaným programovaním a objektovo orientovaným programovaním existoval ešte medzičlánok, tzv. modulárne programovanie, ktoré nám umožňuje zapuzdriť určitú funkcionalitu do modulov. Stále však neexistuje spôsob, ako už napísaný kód modifikovať a znova využiť.

Ako už bolo spomenuté na začiatku článku, niekedy sa uvádza, že sa jednoduché programy majú písať neobjektovo, teda štruktúrovane. Nie je to však pravda. Keď zabudneme na fakt, že porušujeme filozofiu OOP ako takú, nikdy nemôžeme vedieť, či sa tento program neuchytí az malej utilitky sa nestane niečo vážnejšie. Potom opäť nutne dospejeme do stavu, kedy program nebude možné ďalej rozširovať a budeme ho buď musieť zahodiť alebo celý prepísať s pomocou OOP.

Neobjektovým spôsobom písania kódu sa prezýva "spaghetti code" pre ich neprehľadnosť (pretože špagety sú zamotané).

V budúcej lekcii, Úvod do objektovo orientovaného programovania vo VBA , si uvedieme úvod do objektovo orientovaného programovania vo VBA. Vysvetlíme si historické okolnosti vzniku OOP a tiež pojmy trieda, atribút, metóda a zapuzdrenie.


 

Všetky články v sekcii
Objektovo orientované programovanie (OOP) vo VBA
Preskočiť článok
(neodporúčame)
Úvod do objektovo orientovaného programovania vo VBA
Článok pre vás napísal Michal D.
Avatar
Užívateľské hodnotenie:
1 hlasov
Autor se věnuje tvorbě mobilních aplikací.
Aktivity