Přejít k navigační liště

Zdroják » Různé » Střípky z WebExpo 2009 – I

Střípky z WebExpo 2009 – I

Články Různé

Na letošní konferenci WebExpo 2009 zaznělo mnoho zajímavých přednášek pro vývojáře webových aplikací a webdesignéry, ale nejen pro ně. Pojďme si některé z nich připomenout, představit stručně obsah, vypíchnout zajímavosti, a pro ty, kdo se na WebExpo nedostali, nastínit hlavní myšlenky a shrnout důležité informace.

Druhý ročník konference WebExpo proběhl ve dnech 16. – 18. října v areálu ČZU v Praze-Suchdole. Třídenní program zahrnoval více než 60 přednášek, workshopů a diskusí na témata, která souvisí s vývojem, rozvojem a provozem webových a mobilních aplikací. Ve čtyřech sálech se střídaly přednášky, věnované vývoji, webdesignu, frameworkům a byznysu. Pro čtenáře Zdrojáku jsme vybrali některé zajímavé přednášky o programování a webdesignu.

Když něco rozeberem, tak leda debuggerem

WebExpo - Eclipse

Přednášku s tímto názvem měl Juraj Michálek ze společnosti SinusGear. Přednáška byla zaměřená na debuggování serverových aplikací a na představení nástrojů, které je možné pro ladění aplikací použít. Juraj Michálek demonstroval ladění aplikací názorně v prostředí Eclipse – nejprve ukázal, jak ladit vyvíjenou aplikaci (konkrétně v Pythonu), pak demonstroval připojení k běžící binární aplikaci, zmínil vzdálené ladění aplikací, běžících na serveru, a představil i post-mortem ladění (po pádu aplikace).

Další část přednášky se zabývala debuggováním PHP aplikací v prostředí Eclipse (konkrétně PDT) pomocí ZEND Debuggeru pro PDT. Na příkladu jednoduché aplikace ukázal Juraj názorně, jak nastavit prostředí, aby se Zend Debuggerem spolupracovalo, a jak ji pak následně krokovat.

Potřebné změny v php.ini při použití ZEND debuggeru:

zend_extension=/cesta/k/debuggeru/ZendDebugger.so
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always
zend_debugger.connector_port = 10013

Závěr přednášky byl věnován testům. Juraj vysvětlil, proč je špatné testy nepsat – v konečném důsledku nepoužívání testů prodražuje vývoj, zpomaluje jej a snižuje možnost znovupoužitelnosti kódu. Naproti tomu dobře napsané testy mohou fungovat i jako součást dokumentace kódu. K testování PHP kódu doporučuje Juraj používat nástroj PHPUnit a RATS (Rough Auditing Tool for Security). K testování HTTP požadavků pak aplikaci Netcat.

Přednáška: Juraj Michálek – Když něco rozeberem, tak leda debuggerem
Materiál k přednášce: Prezentace (pdf)

XML v PHP 5

WebExpo - Jiří Kosek
Jiří Kosek

Přednáška Jiřího Koska, spojená s autogramiádou, byla vlastně stručným shrnutím obsahu jeho stejnojmenné nové knihy, kterou vydalo nakladatelství Grada. (Tematicky se přednáška kryla se seriálem Přehled podpory XML v PHP5, který vychází zároveň na Zdrojáku.

Jiří Kosek nejprve shrnul stav podpory XML v PHP a změny, které se odehrály v uplynulých letech v jednotlivých verzích. Připomněl chaos v podpoře XML v PHP4 (dva různé XSLT procesory) a zpětnou nekompatibilitu verze 5. Zároveň podrobně zmínil problémy s podporou UNICODE a vícebytových znakových sad v PHP vůbec (podporu Unicode by mělo přinést PHP 6).

Problém s vícebytovými znakovými sadami:
Co vypíše následující PHP skript: <?php echo strlen("Čau"); ?>  – výsledek může být 3, 4 nebo 5, v závislosti na kódování a konkrétním zápisu znaku „Č“.

Doporučení: Používejte mb_string funkce. PHP má direktivu, pomocí níž je možné zapnout mb_string funkce místo obyčejných řetězcových funkcí. Použijte následující kód v .htaccess:

php_value mbstring.internal_encoding "utf-8"
php_value mbstring.func_overload 7

Pokud potřebujete v PHP pracovat s XML soubory, Jiří Kosek doporučuje:

  • Pro velké dokumenty, u nichž je potřeba rychlé zpracování, použít XMLReader.
  • Pro dokumenty, které se vejdou do paměti a s nimiž potřebujeme manipulovat, použít DOM
  • Nepoužívat SAX, ve většině případů je lépe se vyhnout i SimpleXML.

Přednáška: Jiří Kosek – XML v PHP5

Materiál k přednášce: Prezentace

Na Zdrojáku na toto téma od stejného autora vychází seriál Přehled podpory XML v PHP5.

Chcete se naučit o PHP víc?

Akademie Root.cz pořádá školení Kurz programování v PHP5. Jednodenní kurz programování v PHP 5 je určen všem webovým vývojářům, kteří se chtějí do hloubky seznámit a sžít s programovacím jazykem PHP ve verzi 5. První část kurzu je zaměřena na nový objektový model se všemi jeho vlastnostmi, ošetření chyb pomocí výjimek a efektivní využití těchto konceptů. Druhá část je zaměřena na nové knihovny PHP 5, především pro práci s databázemi, XML a objekty. Pozornost je věnována i zajištění kompatibility s PHP 4, přechodu z této verze a výhledu na PHP 6. Máte zájem o jiné školení? Napište nám!

Tajemství v používání a programování Firebugu

Webexpo I
Jan Odvárko

Přednášku o Firebugu, debuggovacím nástroji pro Firefox, přednesl na WebExpo 2009 Jan Odvárko, snad nejpovolanější člověk, který o Firebugu může hovořit (Jan Odvárko je spoluautorem tohoto nástroje – viz rozhovor na Zdrojáku). Ve své přednášce zmínil nové funkce, které nabízí aktuální verze Firebugu, a představil Firebug API, rozhraní, které umožňuje vytváření doplňků pro Firebug.

Firebug je rozšíření Firefoxu pro ladění webových aplikací. Pravděpodobně neexistuje vývojář webových aplikací hodný toho jména, který by jej neznal. Rozhraní Firebugu se skládá ze sady panelů, které nabízejí nejrůznější funkce.

Panel Script obsahuje debugger, který umožňuje debugovat stránku (statické skripty), dynamické skripty pomocí eval, a skripty událostí. V nástrojích nabízí profiler, watch panel (v němž lze sledovat hodnoty proměnných) a call stack (zásobník s voláním funkcí). Zajímavou funkcí je „Break on next“, která zastaví vykonávání při další události a otevře obslužný skript pro danou událost.

Panel Console nabízí především logování chyb a varování. Zároveň obsahuje příkazovou řádku, která umožňuje vykonat skripty v kontextu stránky – lze tedy volat funkce nebo přistupovat k lokálním proměnným. Nabízí vlastní API pro vytváření rozšíření (extensions).

Pomocí panelu DOM lze procházet strom zobrazeného dokumentu a naživo měnit hodnoty. Nabízí mechanismus „Break on Property Change“ (zastavení skriptu při změně vlastnosti elementu). Podobnou funkcionalitu nabízí i HTML inspektor – umožňuje editovat CSS i HTML kód. V postranním panelu navíc zobrazuje pro konkrétní element všechny aplikované styly, vypočítané styly, informace o layoutu elementu a všechny vlastnosti elementu.WebExpo-Firebug

Panel Síť (Net) sleduje poslané a vrácené HTTP požadavky. Obsahuje i JSON a XML explorer (pro ulehčení ladění AJAX a AJAJ aplikací). Navíc umožňuje záznamy o HTTP provozu exportovat ve formátech NetExport a HAR. Panel umožňuje nastavit i breakpointy, které jsou aktivovány spuštěním XHR (asynchronního HTTP požadavku), a které mohou být podmíněny splněním nějakých předpokladů.

JavaScript a AJAX

Pracujete s HTML a chtěli byste své weby dostat na vyšší úroveň? Naučte se používat moderní funkce dnešních prohlížečů. Naučíme vás používat JavaSctipt a AJAX, tvořit základní skripty a ovládnout web pomocí nových vlastností. Školení pořádá Akademie Root.cz, školí Jakub Vrána.

Druhou část přednášky věnoval Jan Odvárko programování Firebugu pomocí rozšíření (Firebug Extensions). pro Firebug existuje cca 30 rozšíření, z těch zajímavějších lze jmenovat:

  • Chromebug: Debugger pro Firefox rozšíření
  • Yslow: Analýza rychlosti nahrávání webových stránek
  • Firecookie: Správa & ladění cookies
  • FirePHP: Podpora pro logování PHP událostí (nutná spolupráce serveru)
  • Rainbox: Barevná syntaxe pro JavaScript

Další rozšíření lze nalézt na stránce getfirebug.com/ex­tensions

Firebug existuje i ve verzi Lite, kterou lze použít i pro jiné prohlížeče. V tomto případě funguje jako běžný vložený JS a nabízí velmi podobnou funkcionalitu (s výjimkou funkcí, které vyžadují nadstandardní přístup k prohlížeči).

V přednášce zazněly i informace o budoucím vývoji: Očekává se záložka Events, pomocí které půjde sledovat události navěšené na DOM uzlech. Ve verzi 1.6 by měl být Memory panel pro zjištění paměťových nároků jednotlivých elementů. Do budoucnosti se počítá i s vracením kroků v debuggeru či s podporou lokálních úložišť dat (Storage panel – local storage, session storage, globalStorage, lokální databáze).

CSS frameworky, grid a zlatý řez

Na WebExpu přednášeli i přednášející ze zahraničí. Jedním z nich byl Vladimir Carrer, Makedonec žijící v Itálii, který vytvořil sedm CSS frameworků. Ve své přednášce posluchačům přiblížil, co jsou to vlastně CSS frameworky, k čemu se používají a v čem usnadňují kodérům práci. 

Webexpo I
Vladimir Carrer

Úvod přednášky rozkryl problematiku názvosloví. Autorovými slovy: Místo „framework“ můžete použít „knihovna“. CSS Framework je předpřipravená knihovna stylů, která by měla usnadnit  stylování stránky v CSS a standardizaci postupu, která vede i ke znovupoužitelnosti kódu. Frameworky lze podle Vladimira dělit na typografické, gridové, pro tisk, pro formuláře a komplexní.

Základem CSS frameworku je layout model. Každý používá vlastní, protože v současnosti není žádný „univerzálně přijímaný“. Mezi layoutové CSS frameworky patří: YAML, YUI, Blueprint, 960.gs, Emastic, Malo, OOCSS, baselinecss, The Golden Grid, The 1Kb CSS Grid, 1 line CSS Framework a mnoho dalších. Nelayoutové CSS frameworky lze rozdělit na typografické (Tripoli, Boilerplate, SenCSS, Better Web Readability Project), programátorské (Compass, LESS, CSScaffold, xCSS) a ostatní (Hartija, Formy).

Vladimir Carrer se věnoval i častým výhradám vůči CSS frameworkům. Jednou z nejčastějších výhrad je, že zavádí nesémantické názvy tříd. Odpovědí na tuto výhradu je, že CSS frameworky by měly používat logické označení tříd, které by mělo dávat smysl. Pokud např. existuje vlastnost, která bude mít víc variant (např. šířka sloupce), mělo by označení třídy dávat smysl – např.pokud  lc300 znamená „left column 300px“, potom rc450 by mělo být analogicky „right column 450px“.

Přednáška rovněž představila historii a vlastnosti některých nejznámějších frameworků.

  • Blueprint: Nyní je asi nejpoužívanější – je logický a je snadné jej používat. Obsahuje 12/24 sloupců, standardní šířka je 950px.
  • 960.gs: Název pochází z čísla 960, což je jeho šířka v px. Nabízí 12 a 16 sloupců s mnoha různými variantami rozložení: 100, 10:90, 20:80, 30:70 … 80:20, 90:10 atd.
  • The Golden Grid: Obrázek by měl být rozdělen na 3×3 části. Významná místa jsou na křížení rozdělovacích čar (hrany prostřední části). Golden Grid má 6/12 sloupců, jeho standardní šířka je 970px.
  • Formy: Framework pro formuláře. Nabízí několik základních rozložení prvků pro webové formuláře (Vertical Form, Default Form, Light Form).
  • Emastic: Framework založený na relativní velikosti (em). Nabízí fixní i fluidní sloupce včetně „zoomování“ stránky v prohlížečích, které to neumožňují. Zajímavost: Funguje i v IE5.5

Na základě svých zkušeností doporučuje Vladimir CSS frameworky Emastic, Malo, 960.gs a The Golden Grid.

Přednáška: Vladimir Carrer – CSS frameworky, grid a zlatý řez
O CSS frameworcích vyšel na Zdrojáku před nedávnem seriál CSS frameworky pro masy.

V příštím pokračování si připomeneme další zajímavé přednášky, které zazněly na letošní konferenci WebExpo.

Foto: Ivana Dvorská

Komentáře

Subscribe
Upozornit na
guest
7 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Jiří Knesl

Vladimir ani zdaleka nevytvořil 7 frameworků. Třeba ta jeho jednořádková srandička, která půlí sloupce, rozhodně není framework. Čimž rozhodně nechci snižovat jeho práci, sám CSS frameworky používám a jsem s nimi velmi spokojen. S jeho argumenty během přednášky se dost ztotožňuji.

Jakub Vrána

Šestku to podle mě vrátit nemůže.

3 jednobajtové kódování
4 UTF-8
5 UTF-8 s využitím combining character
6 by bylo UTF-16, to ale PHP pro zápis kódu nepodporuje

Jiří Kosek

Souhlas, myslím, že i v tomto duchu jsem to během přednášky prezentoval, ale možná si to špatně pamatuji.

Nicméně i s UTF-8 by to šlo vytáhnout na 6, stačilo by do řetězce vložit „neviditelné“ znaky jako ZERO WIDTH JOINER apod. ;-)

David Grudl

Před použitím


php_value mbstring.func_overload 7

bych důrazně varoval, protože pozmění fungování několika interních funkcí PHP a knihovny, které na jejich standardní chování spoléhají, nemusí fungovat správně.

Jiří Kosek

To je zajímavé zjištění, i když mě to vlastně tak moc nepřekvapuje :-(

Neměl bys konkrétní příklad, kdy přetížení mbstringem něco pokazí?

David Grudl

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.