12/11/2016
Vložil: Jakub
1078
Sdílet: Facebook

Objektové a inline programování

Inline programování

Když jsem začínal programovat, můj první programovací jazyk byl Pascal. Ne objektový, ale ten původní. Začínal jsem s aplikací Borland TubroPascal 7.0, později jsem přešel na Free Pascal Compiler (FPC). Pascal je jazyk, který původně nevznikl za účelem, aby se v něm programovalo, ale za tím ůčelem, aby se na něm studenti naučili programovat. Časem se ukázal relativně schopný (ale zároveń jednoduchý, třeba jednodušší než jazyk C), a tak se ujal i v praxi.

Když programátor začíná, vždy začíná s inline prorgamováním. Je to jednodušší a pochopitelnější. V podstatě se jedná o to, že kód píšete jednoduše od začátku do konce, řádek po řádku, tak jak aplikace opravdu funguje.

Již relativně brzy však programátor přijde na to, že potřebuje používat některé části kódu víckrát na jednom místě. Samozřejmě existuje možnost kód prostě kopírovat na více míst, ale je to nepraktické. Ve chvíli, kdy se rozhodneme exitující kód upravit, musíme jej změnit na všech místech, kde se daná věc vyskytuje. Úpravou stejného kódu na více místech aplikace si koledujeme o vytvoření chyb (co hůř, na které nemusíme přijít hned).

Z tohoto důvodu začne programátor psát tzv. funkce. Jsou to v podstatě malé podprogramy, které se dají volat z libovolné části aplikace (či se mohou jednotlivé funkce volat mezi sebou navzájem), lze jim předávat různé parametry a číst jejich výsledky. Např. Pascal ještě odděluje funkce a procedury, přičemž procedura pouze vykonává nějakou operaci, zatímco funkce po dokončení procesu vrací výsledek.

Když už mluvíme o chybách, existují dvě základní chyby. Jsou to chyby ve zdrojovém kódu a potom chyby běhové (tzv. runtime errors). Chyby ve zdrojovém kódu způsobí většinou přímé selhání programu či jeho kompilace. Může se jednat o různou nekompatibilitu datových typů proměnných apod.

Běhové chyby se naproti tomu neprojeví během kompilace, ale jak říká název, až v průběhu aplikace. Typickou a velmi častou běhovou chybou je dělení nulou. Ani počítač totiž dělit nulou neumí (alespoň ne tak jednoduše). Ve většině programovacích jazyků vyvolá dělení nulou fatal error, v případě pascalové aplikace dokonce dojde k jejímu pádu.

Jakmile člověk začne psát nějaké komplexnější aplikace, okamžitě přijde na to, že inline programování pro to není vhodné.

Objektové programování

Objektové programování vzniklo až časem, když se ukázalo, jak kontraproduktivní je programovat tímto způsobem. Pascal integroval objekty v době okenních aplikací do aplikace Borland Delphi, což je v podstatě IDE postavené na objektovém Pascalu. Pokud znáte editor PSPad, tak ten je např. psaný v Delphi. PHP integrovalo objekty až ve své verzi PHP 5.0. Můj první redakční systém byl psaný inline způsobem a byla to katastrofa.

Objekty vznikly z důvodu, aby do velkých aplikací vnesly řád. Celé se to váže k ideologii, kdy se definuje třída, která funguje podobně jako forma a ze třídy se poté vytvářejí objekty. Existuje ještě velmi specifická věc - abstraktní třída. To je třída, ze které nikdy nevznikají objekty, ale další třídy. Z ní se dědí její vlastnosti, metody a teprve z nich se poté vytvářejí následné objekty. Dědičnost je naprosto základní a nejdůležitější princip moderního programování.

Objekty v programování jsou stvořeny k tomu, aby simulovaly objekty v reálném životě. Mají své vlastnosti a metody, které tyto vlastnosti upravují. Velmi jednoduše si objekt můžete představit jako auto. Auto má své hodnoty, jako maximální rychlost, obsah motoru či množství benzínu v nádrži. A auto jako objekt bude mít i své metody, jako je natankování paliva či jízdu. Jízda bude mít několik parametrů - konkrétně to bude místo A a místo B. Tato metoda by potom pravděpodobně vrátila počet najetých kilometrů. Mimo jiné by upravila množství paliva v nádrži.

V inline programování se velmi často vše děje v jednom (většinou hodně velkém) textovém souboru. Oproti tomu objektové programování rozděluje kód přehledně do mnoha souborů. Např. náš redakční systém má aktuálně přes 3,5 tisíce souborů. Není to však tak, že bych je všechny znal z paměti. Všechny věci mají přesný systém svého uložení, který mimo jiné vychází z MVC struktury a tudíž poté, co člověk systém pochopí, je pro něj zorientování jednodušší, než cokoliv jiného.

Spaghetti Code

Tento pojem je v objektování známý, každý programátor se toho bojí. Špagetový kód vzniká tím, že programátor chápe objekty a snaží se je používat, avšak amatérským a těžce nesprávným způsobem. Vzniká tím pak hybrid, který se sice snaží používat objekty, ale dělá to tak nešťastně, že je to spíš na škodu. V podstatě se pak děje to, že místo, aby se věci děly správně ve svých metodách, tak se dějí jinde než by měly (a co hůř tam, kde byste to často vůbec nečekali). Je to potom doslova zamotané jako špagety. Nejhorší, co se vám v práci může stát, je po někom podědit špagetový kód.

Pokud jste programátor a frustruje vás nějaký kód, který jste podědili v práci, doporučuji navštívit adresu www.hovnokod.cz . Zde uvidíte opravdové perly ze světa programování. Pokud uznáte, že to s čím se potýkáte je ještě horší než kódy, které zde vidíte, určitě bude fér se o to podělit s ostatními programátory.

ZPĚT

David Rubek - sídlo - Žižkova 346, 273 09 Kladno -Švermov, IČO: 616 39 133, Zapsán u: Magistrát města Kladna / odbor obecní živnostenský úřad. Kladno 272 52, Starosty Pavla 44

Tento web k poskytování služeb, zabezpečení Vašich dat a anlýze návštěvnosti používá soubory cookies. Jeho používáním s tím souhlasíte. Rozumím