LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> PHP (63) - Rozsáhlejší projekty 4.

Jak si při programování v PHP zorganizovat a ještě více ulehčit práci?

1.11.2004 15:00 | Petr Zajíc | Články autora | přečteno 29623×

Komerční sdělení: Pořádáme Kurzy PHP

Vývoj kvalitního kódu zahrnuje rovněž umění "vyznat se sám sobě". Mám tím na mysli vědět, co si při psaní kódu mohu dovolit, kde je nutné být sám na sebe přísný a kde je možné si práci nějakým způsobem ulehčit. Dnes se podíváme na některé takové metody a postupy.

Buďte líní

Nevím, zda je to dokázáno vědecky, ale správný programátor by měl být především líný. To mu umožní nedělat žádnou zbytečnou práci; a té je při psaní kódu možné udělat více než dost. Kdykoli se tedy chystáte psát nějaký kód, měli byste se nejprve sami sebe ptát:

  • Nepsal už jsem někdy podobnou funkci nebo skript?
  • Nemám k dispozici cizí kód, který by podobnou záležitost řešil?
  • Dal by se najít příklad takové věci na internetu?
  • Jestliže ne, mohl bych se alespoň inspirovat podobnou úlohou?

Většinou, zejména u jednoduchých úloh zjistíte, že nemusíte pracně "vynalézat kolo". Jestliže ale narazíte na úlohu tak speciální, že skutečně nenajdete podklady pro její řešení a budete to muset napsat od nuly, mohli byste uvažovat následovně:

  • Jestliže ten kód budete opravdu potřebovat jen jednou, napište jej a přestaňte na to myslet
  • Jestliže tušíte, že byste ten kód mohli použít vícekrát, napište jej pořádně a vytvořte k němu dokumentaci (viz minulý díl)
  • Pokud jste napsali něco opravdu unikátního, zvažte možnost, že byste se o kód mohli rozdělit s ostatními (ať už free, nebo za peníze)

Pozn.: Využívání cizích kódů s sebou samozřejmě přináší problém licencování. Měli byste se ubezpečit, že to, co děláte je zákonné.

Stanovte si postup

Je třeba si práci nějak zorganizovat. Mě se osvědčil následující postup: Zjistil jsem, že většina práce na zdrojovém kódu se dá rozdělit na dvě skupiny - na kód, který budu muset teprve pracně vymyslet a na kód, který budu psát téměř "z hlavy", protože vím, jak na to. Pokud máte "tvůrčí vlnu", nezabývejte se otrockým psaním "nudného" kódu, ale udělejte si "vycpávku". Vysvětlím na příkladu přihlašování k databázi:

<?      
  
if (validuser($database, $user, $password))
  {
    
//kód pro autorizované uživatele
  
}
  
  function
validuser ($database, $user, $password)
  {
    
//todo - dodělat přihlašování
  
}
?>

Neboli, v dané chvíli se vůbec nemusíte zabývat vlastním kódem funkce validuser, můžete směle pokračovat psaním dalšího kódu v těle skriptu (označil jsem to jako "kód pro autorizované uživatele". Kód funkce validuser může být pro Vás tak triviální, že jej budete schopni napsat "zpaměti o půlnoci" a můžete se věnovat "více tvůrčí" práci ve zbytku skriptu. Je samozřejmě důležité poznamenat si někam, že se kus kódu musí dopsat, jinak na to pravděpodobně zapomenete.

Pozn.: Jelikož v kódu PHP nezáleží, kde je ve skriptu funkce umístěna, může být třeba i za místem, z něhož je volána. Zde popsanému přístupu to zcela vyhovuje, lidé odkojení jazyky typu Pascalu to asi moc mít rádi nebudou.

Toto samozřejmě není jediný možný ani jediný správný postup. Ale pokud máte někdy náladu na "hardcore" programování a jindy ne, může to pro Vás být to pravé. Další možné postupy jsou třeba "podle předem stanoveného plánu" a "jak mě napadne". Ovšem, zejména poslední příklad většinou nevede ke kýženému cíli ;-))

Spravujte zdrojový kód

I při sebelepší práci se Vám občas stane, že dojdete k názoru, že určitá předchozí verze kódu je lepší než ta současná. Jenomže ji už nemáte k dispozici. Aby se to nestávalo, existují nástroje pro správu zdrojového kódu (třeba cvs nebo subversion). Fungují tak, že vytvoří "úložiště" kódu (tzv. repository) a vývojář může kód z úložiště načíst, pracovat na něm a pak jej uložit zpět. Úložiště může být přístupné více vývojářům, může být umístěno na síti a sleduje veškeré změny v kódu, které byly provedeny "venku" mezi načtením a uložením aktuální verze. Úložiště je schopno pracovat s libovolnými textovými soubory (jako jsou třeba zdrojové kódy PHP) a rovněž s binárními daty a není vázáno na žádný konkrétní programovací jazyk.

V případě, že dva nebo více vývojářů změní stejný soubor, existují v těchto nástrojích "správci konfliktů", kteří vám pomohou sladit změny provedené více uživateli. Úložiště mohou být rovněž přístupné jako webové služby a tak máte ke svým zdrojovým kódů přístup prakticky odkudkoli. Většina lidí si myslí, že zavést nástroje pro správu kódu ma význam až v momentě, kdy na projektu pracuje více vývojářů, ale když se nad tím zamyslíte, není to tak. I když pracujete sami, může se Vám hodit odpověď na otázky typu:

  • Kdy jsem provedl poslední změnu v tomto souboru
  • Jak vypadala tato složka před 14 dny?
  • Program xxx ve verzi aaa.bbb nefunguje dobře. Co se tam měnilo?

Můžete se vrátit k libovolné uložené verzi dokumentu a můžete dělat celou řadu dalších věcí. Můžete dokonce smazat soubor z pracovní kopie s tím, že úložiště si jej bude pamatovat.

Někdy Vám může "zachránit život" skutečnost, že máte úložiště kódu přístupné přes prohlížeč nebo umístěné mimo vaše "obvyklé stanoviště". Je to samozřejmě otázka zabezpečení, ale docela se může hodit možnost mít své zdrojové kódy kdykoliv k dispozici. Kolegovi někdo nedávno ukradl notebook... a i když to samozřejmě BYL problém, nepřišel díky umístění kódu v repository alespoň o podstatnou část své práce.

Pozn.: Uznávám, že u PHP není tato otázka tak palčivá. Obvykle si můžete zdrojové kódy PHP postahovat z běžícího webu, když není jiná možnost. To u kompilovaných jazyků samozřejmě nejde.

V dalším díle našeho seriálu se zaměříme na některé způsoby, jimiž můžete části svého kódu ladit. Těšte se, budeme si "hrát" s kódem z tohoto seriálu, v němž jste objevili chybu!

Verze pro tisk

pridej.cz

 

DISKUZE

CVS a Subversion 2.11.2004 09:00 MaReK Olšavský
L Re: CVS a Subversion 7.11.2004 15:58 Petr Zajíc
  L Re: CVS a Subversion 7.11.2004 15:59 Petr Zajíc
Větší projekty 7.12.2004 06:23 Petr Bednář
  L Re: Větší projekty 13.12.2004 21:13 Petr Zajíc




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

5.3.2017 19:12 /Redakce Linuxsoft.cz
PR: 23. března proběhne v Praze konferenci na téma Cloud computing v praxi. Hlavními tématy jsou: Nejžhavější trendy v oblasti cloudu a cloudových řešení, Moderní cloudové služby, Infrastruktura současných cloudů, Efektivní využití cloudu, Nástrahy cloudových řešení a jak se jim vyhnout.
Přidat komentář

27.2.2017 22:12 /František Kučera
Pozvánka na 137. sraz OpenAlt – Praha: Tentokrát jsme si pro vás připravili neobvyklou akci. Ve středu 1.3. v 17:30 nás přivítá sdružení CZ.NIC ve svých prostorách v Milešovské ulici číslo 5 na Praze 3, kde si pro nás připravili krátkou prezentaci jejich činnosti. Následně navštívíme jejich datacentrum pod Žižkovskou věží. Provedou nás prostory, které jsou běžnému smrtelníkovi nedostupné!
Po ukončení prohlídky se všchni odebereme do hostince U vodoucha, Jagelonská 21, Praha 3 pochutnat si na některém z vybraných piv či dát si něco na zub. Rezervaci máme od 19:30, heslo je OpenAlt.
Ale pozor! Do prostor datového centra máme omezený přístup, dostane se tam pouze 10 lidí! Takže kdo přijde dříve, ten má přednost, a občanky s sebou! Kdo nebude chtít na prohlídku datového centra, může se pomalu přesunout do hostince U vodoucha a u nepřeberné nabídky piv počkat na ostatní.
Přidat komentář

18.1.2017 0:49 /František Kučera
Členové a příznivci spolku OpenAlt se pravidelně schází v Praze a Brně. Fotky z pražských srazů za uplynulý rok si můžete prohlédnout na stránkách spolku. Příští sraz se koná už 19. ledna – tentokrát je tématem ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. Také budete mít příležitost si prohlédnout pražský hackerspace Brmlab.
Přidat komentář

8.1.2017 17:51 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 19. ledna od 18:30 v pražském hackerspacu Brmlab. Tentokrát je tématem srazu ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. K vidění bude mechanická klávesnice dasKeyboard, trackball Logitech nebo grafický tablet (a velký touchpad) Wacom. Přineste i vy ukázat svoje zajímavé klávesnice a další HW. V 18:20 je sraz před budovou, v 18:30 jdeme společně dovnitř, je tedy dobré přijít včas. Podle zájmu se později přesuneme do nějaké restaurace v okolí.
Přidat komentář

1.12.2016 22:13 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.
Komentářů: 1

4.9.2016 20:13 /Pavel `Goldenfish' Kysilka
PR: Dne 22.9.2016 proběhne v Praze konference Cloud computing v praxi. Tématy bude např. nejnovější trendy v oblasti cloudu a cloudových řešení, provozování ERP v cloudu, o hostování různých typů softwaru, ale třeba i o zálohování dat nabízeném podnikům formou služby.
Přidat komentář

1.9.2016 11:27 /Honza Javorek
Česká konference o Pythonu, PyCon CZ, stále hledá přednášející skrz dobrovolné přihlášky. Máte-li zajímavé téma, neváhejte a zkuste jej přihlásit, uzávěrka je již 12. září. Konference letos přijímá i přednášky v češtině a nabízí pomoc s přípravou začínajícím speakerům. Řečníci mají navíc vstup zadarmo! Více na webu.
Přidat komentář

27.8.2016 8:55 /Delujek
Dnes po 4 letech komunitního vývoje vyšla diaspora 0.6.0.0
diaspora* je open-source, distribuovaná sociální síť s důrazem na soukromý
Více v oficiálním blog-postu
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

24.3.2017 11:54 / Hui
country cottages

16.3.2017 16:33 / BezvaDesign.cz
Re: Hledám grafika do teamu

9.3.2017 11:44 / Jaromir Obr
Re: chyba

18.1.2017 20:18 / martin horky
Spolupraca linuxu a microsoftu

17.1.2017 9:57 / Pavel Hrubeš
Re: Externí USB televizní karta

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2017) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze