Komplexný pohľad na programovanie v php

Rasťo Turek  /  08. 01. 2004, 00:00

Ďakujem, že ste si našli čas a prečítate si túto časť. Nebola síce nevyhnutná, ale keď s niekým robím na aplikácii, či inom väčšom projekte, tak sa väčšinou chytám za hlavu, ako je možné, že to vôbec funguje, keď je to tak napísané a dlhé hodiny potom musím lúštiť zdrojové kódy. To by hádam na úvod aj stačilo...

V tejto časti Vám chcem ukázať, aké dôležité je formátovanie zdrojového kódu (ďalej už len zdrojákov), ďalej písanie komentárov poprípade celých manuáloch či už vo formáte pdf, doc, rtf alebo obyčajné txt. Na tom moc nezáleží. A napokon niečo o navrhovaní aplikácií pomocou ceruzky a papiera. Poďme však najskôr ku formátovanie zdrojového kódu.


Formátovanie zdrojových kódov

Najdôležitejšie je sa naučiť písať rovnako formátovaný text už od začiatku a zachovávať si tento štýl, inak by sa mohlo stať, že ak dostanete do ruky web, ktorý ste programovali pred dvoma rokmi a zákazník si želá zmenu, venovali by ste hodiny drahocenného času skúmaním zdrojového kódu. Samozrejme že nehovorím o kóde, ktorý ma sto riadkov, bavíme sa tu o rozsiahlych projektoch, ako napríklad veľké webové sídlo, redakčný systém, diskusné fórum a podobne. Tieto aplikácie majú rádovo viac ako tisícku riadkov a tak nie je jednoduché nájsť kde tu patričnú časť. Ale o tom až neskôr. Najskôr si prosím prezrite tieto dve časti kódu.


Prvá časť

echo ""; echo ""; echo "";
echo "

"; if($inet=="") { echo "Prazdny retazec, nieco nam tu chyba"; if($chyba=="ok") {echo "A este tu mame aj chybu";}}elseif($inet=="dobry"){if($inet == "problem"){ echo "A dalsi problem"; }else{ echo "A uz je po probleme";}}else{ header("Location: ".$_SERVER['PHP_SELF']."");}


Druhá časť

echo "";
echo "";
echo "";
echo "

";
if($inet=="")
{
echo "Prazdny retazec, nieco nam tu chyba";
if($chyba=="ok")
{
echo "A este tu mame aj chybu";
}
}
elseif($inet=="dobry")
{
if($inet == "problem")
{
echo "A dalsi problem";
}
else
{
echo "A uz je po probleme";
}
}
else
{
header("Location: ".$_SERVER['PHP_SELF']."");
}


Tak čo Vy nato? Ktoré je to lepšie? Určite mi dáte za pravdu, že druhý spôsob je oveľa priehľadnejší. Prosím, neskúšajte ten kód, je to len tak na ukážku, ani neviem, či by to fungovalo. Ale späť k problematike. Najlepšie je si zakoreniť určitú syntax do pamäte a tú používať snáď aj celý život :o). Ja osobne preferujem akúsi tabulátorovú syntax. To znamená, že povedzme podmienka je nadradená a od zloženej zátvorky je ďalšia časť kódu vzdialená o tabulátor. Občas nám možno vznikne trošku mohutnejší kód, ak máte napríklad 17 podmienok vnorené do seba, tak je tento kód „hrubší“, avšak je určite oveľa prehľadnejší. A ak si budete písať všetky aplikácie takýmto spôsobom a dostanete jednu z nich aj po štyroch rokoch do rúk s požiadavkou upgradu, nebudete mať problém si tento kód v rýchlosti prebehnúť v mysli a prípadne ho zmeniť.


Komentáre v zdrojovom kóde


Stretol som mnoho začiatočníkov, ktorí ani nemali poňatia o tom, čo to komentáre sú a na čo slúžia. Aj keď to nájdete na začiatku takmer každej odbornej publikácie ku každému programovaciemu jazyku, väčšina začiatočníkov tieto strany preskakuje a vrhajú sa priamo do kódovania. Lenže to je osudová chyba. Veľakrát sa mi stalo, že som dostal do ruky zdrojové kódy, v ktorých nebola ani čiarka od autora. Ja som mohol všetko skúšať a pozerať, aby som zistil, ako to funguje a o čo tam vlastne ide. Vo veľkých vývojových firmách sa do komentárov píšu kompletné vysvetlenia ku tej ktorej časti kódu, ďalej čo treba ešte dorobiť a podobne. Na veľkých projektoch, aby sa kódovanie urýchlilo, pracuje niekedy aj 15 až 30 programátorov. Asi si ani neviete predstaviť, aké problémy môžu vzniknúť, keby nebolo všetko kvalitne popísané a doplnené.

Komentáre majú jednoduchý zápis. Ak chcete doplniť komentár len do jedného riadku, tak do zdrojového kódu doplníte len //. Všetko za týmito lomítkami je už komentár a teda kód nebude spustený. A pre dlhšie komentáre cez niekoľko riadkov sa používa /* pre začiatok komentára a */ pre ukončenie komentára.

Použitie je nasledovné:

/*sem mozete vkladat akykolvek text trebars aj ydrojovy kod if($a=a) a ten sa nespracuje
a
vidite
ze
to
ide
aj cez niekolko riadkov */
echo ""; // tu sa nam vygeneruje zaciatok html
echo ""; // tu sa nam vygeneruje titulok

Ale teórie by stačilo, zase tu máme dva príklady, na ktoré sa spoločne pozrieme a neskôr si ich vysvetlíme.

Prvá časť

echo "";
echo "";
echo "";
echo "

";
if($inet=="")
{
echo "Prazdny retazec, nieco nam tu chyba";
if($chyba=="ok")
{
echo "A este tu mame aj chybu";
}
}
elseif($inet=="dobry")
{
if($inet == "problem")
{
echo "A dalsi problem";
}
else
{
echo "A uz je po probleme";
}
}
else
{
header("Location: ".$_SERVER['PHP_SELF']."");
}


Druhá časť

echo ""; // generovanie zaciatku html tagov
echo ""; // tytulok stranky
echo ""; // ciastocne ukoncenie html tagov a zaciatok novych
echo "

"; // aby sa vsetok text vycentroval
if($inet=="") // podmienka pre premenu $inet
{
echo "Prazdny retazec, nieco nam tu chyba"; // ak je hodnota prazdna, vyhodi chybu
if($chyba=="ok") // ak je chyba z predchodzieho formulara udana, vyhodi dalsiu chybu
{
echo "A este tu mame aj chybu"; // vypisanie dalsej chyby
}
}
elseif($inet=="dobry") // ak podmienka nebola splnena overime ci premena $inet nema dalsie
{ // hodnoty
if($inet == "problem") // ak je to problem, tak ho ho vypiseme
{
echo "A dalsi problem"; // vypisanie problemu
}
else // ak nebola splnena podmienka, tak uz iba toto
{
echo "A uz je po probleme"; // problem vyrieseny
}
}
else // ak podmienka nebola splnena
{
header("Location: ".$_SERVER['PHP_SELF'].""); // tak presmeruje na aktualnu

//stranku serveru
}

Ako sami vidíte, tak komentáre môžu veľmi pomôcť. A keď nie Vám, tak aspoň ďalším programátorom, ktorí budú upravovať Váš program. Hádam Vám budú povďační a začnú aj oni takto upravovať svoje aplikácie a nakoniec vznikne programátorská elita :o). Ale dosť snívania.


Navrhovanie aplikácií pomocou ceruzy a papiera

A nakoniec Vám chcem ukázať, aké dôležité je navrhnúť celý projekt, aplikáciu alebo len skript dopredu na papier alebo len tak do počítača. Najlepšie sa však robí s ceruzkou a papierom. Samozrejme, že si nebudete vypisovať na papier všetky kódy, Vy si len nakreslíte štruktúru celej aplikácie a teda kompletnú aplikačnú logiku. To znamená, že ak napríklad vytvárate fórum, tak si najprv musíte v hlave vymyslieť, ako bude toto fórum fungovať, čo má obsahovať a čo bude poskytovať používateľom. Tak isto aj ja, keď píšem pre Vás tieto články, najskôr si napíšem skript, ktorý musí fungovať a až potom uvažujem, či sa o ňom oplatí písať a či je dostatočne zaujímavý. Keby som to robil spôsobom, že najskôr si napíšem celý článok a až potom skript, tak by články vychádzali po mesiacoch a nie hodinách. Teda aj aplikáciu si je treba poriadne rozvrhnúť, a až potom ju začať písať. Najviac sa to však oplatí pri navrhovaní obrovských sídel a tabuliek databáz. Osobne som to kedysi ako začiatočník nebral ani do úvahy. Jednoducho som si myslel, že si najskôr niečo načmárať na papier a potom podľa toho robiť? Nezmysel. Ale nakoniec ma k tomu donútili okolnosti, keďže som navrhoval dôležitý projekt pre veľmi cenného klienta. A tak som to vyskúšal a odvtedy už aj malé aplikácie najskôr navrhnem na papier. Nechcem Vám tu opisovať, ako sa to robí, na to určité nie som dobrý odborník. Všade nájdete veľa kvalitnej literatúry či diskusií. Ja som Vám chcel len ukázať, ako je dôležité správne programovať podľa určitých zásad.


Na záver Vám chcem povedať iba toľko, že ak sa budete držať svojich zásad a budete čítať mnoho publikácií a serverov, tak určite budete zvládať programovanie oveľa ľahšie a kvalitnejšie a tým si samozrejme získate viac zákazníkov a aj návštevníkov Vašich stránok.

Prajem Vám všetkým všetko dobré do nového roku 2004, veľa kvalitných skriptov a samozrejme veľa šťastia a pohody, ktorá je pre každého programátora nevyhnutná.


Rastislav Turek // break.sk

Neprehliadnite: