Poslepu.cz na novém URL

Od ledna 2014 najdete blog na adrese poslepu.cz.

čtvrtek 20. května 2010

Jak se programuje poslepu. Díl třetí - Nette Framework.

V posledním díle seriálu o programování jen pomocí sluchu a hmatu nás Roman Kabelka seznámí s tím, jak se mu poslepu používá Nette Framework.

Slovo má Roman.

Na podzim minulého roku jsem se dozvěděl o Nette Frameworku. Ihned mě zaujaly dvě vlastnosti:

  • Webová aplikace má m vstupních akcí a n výstupních pohledů, přičemž logicky související akce a pohledy jsou sdruženy v jedné třídě (presenteru).
  • Podoba pohledu je dána šablonou, jež má úspornější zápis a větší bezpečnost, než když šablona je tvořena přímo v PHP.

Presentery a celý komponentový systém formují zdrojové kódy do ustálené struktury, s níž lze pomocí dříve uvedených technik orientace nalézt požadovaný kus kódu. Metody pro akce a pohledy mají v presenterech předepsané konvence, což lze využít např. tak, že hledáním řetězce "ion act" je možné přeskakovat po jednotlivých metodách akcí.

Šablony Latte filteru tím, že dovolují uvození výstupu "<?php echo ..." zkrátit na pouhou otevírací složenou závorku, přispívají také k příjemnější práci. Pokud k tomu přidáme ještě tzv. n atributy, je zdrojový kód přehledný a prostorově úsporný, což se ocení především při čtení skrze braillský řádek.

I když z hlediska přehlednosti je Nette Framework pro nevidomé programátory dosti dobrým pomocníkem, neznamená to, že by každý měl začínat s prvními pokusy o webové aplikace právě v Nette Frameworku. Hlavní úskalí vidím v dokumentaci frameworku a ve faktu, že objektové programování začátečníkům nebude zcela vlastní. Pokud ovšem je člověk schopen toto zvládnout, projeví se veškeré přednosti Nette Frameworku.

Když mi před nedávnem volal kamarád s tipem na vytvoření webu, který se bude skládat převážně ze statických stránek a dvou formulářů odesílaných na e-mail, pojal jsem to jako šanci odzkoušet Nette Framework. K tomu ve skutečnosti došlo až ve chvíli, kdy byl web již hotový. Vše spěchalo, a tak jsem jej dočasně vystavěl na svém vlastním malém frameworku. Po převedení do Nette Frameworku jsem tak mohl porovnat výhody jednotlivých řešení:

  1. Nebýt jednoduchosti vyvíjeného webu, musel bych řešit generování navigace v Nette Frameworku dle mých požadavků, což ve svém frameworku jsem měl ošetřené.
  2. Šablona webu v Nette Frameworku je přehlednější zejména díky chytré syntaxi Latte filteru, jehož výhoda ve stručnosti byla již zmíněna.
  3. Web www.pujckynej.net postavený na Nette Frameworku je členěn do čtyř logických celků, což umožňuje snadno dohledat příslušné pasáže:
    1. Statické stránky.
    2. Stránky generované z dat v XML a transformované pomocí XSLT.
    3. Stránka s formulářem pro žádost o spolupráci.
    4. Průvodce pro formulář s on-line žádostí.

Mé původní řešení pro statické stránky bylo jednoduché, pro formuláře však už nepříliš průhledné, neboť v rámci přehlednosti se kód tříštil do několika objemějších souborů ošetřujících všechny situace.

  1. Nette Framework přirozeně vede programátora k dělení aplikace do menších souborů, jež jsou však přehledně provázány díky dědičnosti tříd a doporučené adresářové struktuře. Myslím si, že čím menší soubor, tím lépe pro orientaci skrze odečítač.
  2. Nette Framework elegantně soustřeďuje na jedno místo definice formulářů a pravidla jejich chování. Z mých zkušeností opakující se HTML kód nejen, že je nezáživný na psaní, ale vykazuje i vyšší chybovost. Orientace v takovém jednotvárném textu je bez zrakové kontroly do jisté míry ztížena vlivem právě jednotvárného okolního kontextu. Tento problém se především týká formulářů a tabulek. Nette Framework kód formuláře generuje dle stručných volání metod, což nesnáze značně v této oblasti redukuje.

Závěrem

Poslepu rozhodně programovat lze. Dá to pouze více úsilí v hledání programovacího jazyka a vývojového prostředí, s nimiž zrakově postižený programátor se dobře zžije z hlediska abstraktního myšlení a automatizace běžných postupů. Mně se nejvíce osvědčil Poznámkový blok Windows a PSPad, z čehož větší úsilí přímo plyne. Je nutno si však uvědomit, že sofistikovaná vývojová prostředí práci skrze odečítač v mnoha případech nijak výrazně neusnadní. Dle mých zkušeností hlavním zdrojem těchto komplikací nejčastěji bývá nestandardní přístup z pohledu operačního systému k ovládacím prvkům, jež umožňují různé zvýrazňování kódu a jeho automatické doplňování, což odečítači může činit nemalé problémy při vyčítání relevantního obsahu.

Na závěr si můžete prohlédnout zdrojový kód třídy jednoho z formulářů, jež jsem vytvořil pro zmíněný web Pujckynej.net.

Autorem článku je Roman Kabelka.

Související odkazy

6 komentářů:

Anonymní řekl(a)...

Máte můj neskonalý obdiv, ale buďte rád, že ten web www.pujckynej.net nevidíte. Je to neuvěřitelná šílenost.
Jako programátor si nedovedu představit, že by mohl nevidomý mezi konkurencí obstát. Možná snad jako analytik, ale babrat se zdlouhavě s kodeřinou nemá podle mě smysl.

Tomas Fejfar řekl(a)...

Mě zaujalo, (i když je to logické), jak je ten kód nepřehledný :)

Martin Hassman řekl(a)...

Tomáši, on je ten kód přehledný. Musíš ho jen poslouchat, nikoliv číst očima.

Anonymní řekl(a)...

Odkazy na úvodní stránce www.pujckynej.net na jednotlivé typy půjček jsou nefunkční. Např. http://www.pujckynej.net/uvod/produkty/#pujcky-pro-zamestnance

Roman Kabelka řekl(a)...

Abych to uvedl na pravou míru: Já na svědomí mám vnitřnosti postavené na Nette, Javascript a XHTML šablonu webu, design a kódování obsahu jednotlivých stránek dělal kamarád, který s tou zakázkou přišel.

Za upozornění na nefunkční odkazy díky, budou opraveny a to názorně. Více příští týden, přijde ještě na téma programování poslepu malý bonus.

Olda řekl(a)...

Taky mě překvapilo, jak kód vypadá nepřehledně, ale když si to tak uvědomím, tak všechny ty tabulátory a mezery jsou vlastně jen sugar pro oči, jinak je to zbytečné zdržování...