Archiv pro 28. October 2007

Potřebujeme silné nástroje aneb vyvíjet kvalitní aplikace je stále stejně těžké

V tomto článku chci zachytit jenom několik myšlenek, které mě napadly při čtení článků od Potřebujeme silné nástroje. a Potřebujeme domyšlené nástroje a některých dalších komentářů.

Úvaha 1 – Mění se způsob práce, komplexnost zůstává

Dnes sice existují silné IDE, které začátečníka odstíní od elementárních úkonů, ale také je k dispozici více informací (článků, knih, kurzů, výuka ve škole) o daných tématech.

Myslím, že je situace uplně stejná jako před léty kdy sice člověk musel kompilovat zdrojáky javy z příkazové řádky, ale to byla jiná doba – méně informací, jiné nástroje jednoduše nebyly. Začátečníkovi je jedno jestli má IDE nebo příkazovou řádku – obojí je pro něj tako nové, nepochopitelné, že v prvních dnech nachápe aní jedno. Ortodoxní zastánce Assembleru může ohrnovat nos nad jazyky jakými je např. java, které jsou proti Assembleru „abstraktní“.

Když jsem před mnoha léty byl na setkání obchodních reprezentaců ČMSS mluvili spolu dva účastníci o tom, zda je bylo těžší schánět lidi, kteří by byli ochodní uzavřít smlouvu o stavebním spoření, před léty – když se stavební spoření v ČR rozjíždělo, nebo teď když už to všichni znají – odpověď byla zajímavá – je to pořád stejně těžké. Dřív byl větší trh (10 milionů potenciálních klientů) ale malá důvěra. Dnes je důvěra velká, ale trh se zmenšil na zlomek (mnoho lidí už stavební spoření má uzavřeno).

Myslím, že tento příklad snese srovnání i se světem programátorským – být dobrým programátorem (vyvíjet kvalitní aplikace) je pořád stejně těžké.

Úvaha 2 – Programujeme nebo lepíme?

V úvaze Programujeme nebo lepíme jsem se dočetl že:

Ale napadlo mě, že dneska už vlastně tolik neprogramujem, spíš skládáme (lepíme) dohromady existující kousky. Však se potichu šušká, že vše už bylo alespoň jednou napsáno.

A jaký je tedy závěr? I nadále programujeme, ale stále více se uchylujeme k lepení. A zda lepíme pomocí GUI klikátek nebo ne, to si musí každý rozhodnout sám, ale já jsem se rozhodl: „Raději ne, děkuji“.

Můj názor je ten, že je zatraceně jedno, jestli klikáte nebo programujete zdrojáky přímo. Používat by se měl ten způsob, který nás co nejrychleji pusune k cíli. Někdy je ten způsob naklikání a jindy ruční nakódování (zpravidla je to kombinace obou přístupů).

PS: Nejlepším lepidlem posledních let jsou anotace. Abychom se do toho lepidla, ale nezalepili sami.

Zalepit se lze od anotací i od XML konfigurace. Dobré je navrhovat architekturu aplikace tak, abychom toho lepidla potřebovali co nejméně – jednoduše nelepit jen proto, abysme ukázali, že umíme lepit.

Úvaha 3 – Stop pokročilým IDE pro začátečníky?

V jednom příspěvku na konferece (at) ja­va.cz jsem se dočetl:

Silna podpora v IDE? Ano, to je presne to, co NESMIE mat zaciatocnik, ktory potrebuje najskor pochopit, co presne musi implementovat, konfigurovat, ako to prelozit a ako to deploynut. Ked vsetko toto vie urobit rucne, moze pouzit vykonnu podporut v IDE aby robil veci rychlejsie a nezatazoval sa „reziou“ frameworku. Ak mu polovicu veci skryjete za IDE, tak ten framework nikdy nepochopi.

Tak s tímhle nesouhlasím. Pro začátečníka i pokročilého uživatele je důležité mít možnost si kostru aplikace naklikat. To jestli se začátečníka stane skutečný znalec dané technologie vůbec nezávisí na IDE, ale na člověku samotném.

Z vlastní praxe – PHP jsem se učil na jednoduchých „IDE“ – například Ultraedit. C# jsem se učil v plnotučném Visual Studiu, Javu jsem začal dělat v Eclipse. Naučil jsem se dobře všechny zmiňované jazyky – a IDE v tom nehrálo žádnou roli.

A ještě jeden příklad z praxe – na semináři o PHP byl představen framework Symfony – dva přednášející začali výklad přehledem možností spouštění frameworku z příkazové řádky, dál se vysvětlovala konfigurace v YAML souborech. To trvalo asi 45 minut – poté se někdo ze sálu zeptal jestli se při práci se Symfony ještě taky vůbec programuje v PHP. Další připomínka byla, že než se dostanu k psaní samotného kódu aplikace strávím několik dní vytvářením konfigurace.

Je krásně vidět, že tazatelé ani v jednom případě nepochopili výklad. YAML soubory nahrazují vlastní kód aplikace. Proč za každou cenu kódovat podobný kus kódu znovu a znovu? Symfony obsahuje defaultní konfiguraci a v té vygenerované jenom přepíšeme hodnoty, které chceme v našem projektu změnit (convention over configuration). Ve druhém případě tazatel nepochopil, že konfigurační soubory jsou vygenerovány automaticky – a je zcela jedno jestli je vygenerován automaticky YAML soubor nebo PHP třída. Co tím chci říct? Že i když se přednášející snažili předvést sílu frameworku na jednoduchých utilitách (příkazová řádka), tak to přesto nebylo částí obecentstva pochopeno. Věřím tomu, že kdyby existovalo IDE s podporou Symfony, tak by jeho skvělé schopnosti byly demonstrovatelné mnohém lépe – a o to pří seznamování s novým frameworkem jde.

Závěr

Myslím, že (stejně jako v ostatních aspektů života) nemusíme mít strach, že ke zlepšováním IDE nebude docházet. Pokrok a konkurence jsou úžasně zdravá věc.

Celý článek 5 komentářů 28. October 2007

PHP seminář podzim 2007 (a moje první přednáška) je za námi

Unikátní akce v českém PHP světě PHP seminář podzim 2007 (PHP workshop autumn 2007) je již minulostí. Václav Stoupa uspořádal k akci, na které bylo představeno několik PHP frameworků:

Jsem nadšen tím, že jsem mohl PHP komunitu seznámit se Zend Frameworkem. Moje přednáška trvala celkem 2,5 hodiny – trochu se protáhla z původně plánovaných 50 minut (resp. 1,5 hodiny po odpadnutí přednášky Michala Tilla).

Celé setkání trvalo od 9.00 do 19.00 a pokud mohu mluvit za sebe myslím, že se jedná přesně o typ akce, která je pro českou PHP komunitu hodně prospěšná.

Myslím, že by bylo dobré založit českou PHP user group – sdružení lidí, kteří budou sdílet svoje znalosti i PHP. Například ve světě Javy existuje od 12. září 2006 CZJUG (Česká komunita Java programátorů).

Činnost user groupy by spočívala v tom, že by jednou měsíčně uspořádala setkání, kde by proběhly dvě prezentace v trvání cca 2 hodin (dohromady).

Další možností je nahrávat PHP podcasty. Podcasty jsou zvukové záznamy s nahrávkou rozhovoru odborníků na dané téma. Opět si sáhnu pro příklad do českého javovského světa – CZ podcast volume #1 – Vývojová prostředí v Javě.

Materiály ke stažení k přednášce o Zend Frameworku

Závěr

Pokud by měl někdo jakékoliv dotazy k příkladu nebo k ZF samotnémá ať mě neváhá kontaktovat e-mailem nebo (ještě lépe) napsat svůj dotaz jako komentář k článku.

Celý článek 14 komentářů 28. October 2007


Kalendář

October 2007
M T W T F S S
« Sep   Nov »
1234567
891011121314
15161718192021
22232425262728
293031  

Články podle měsíců

Kategorie

Locations of visitors to this page