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

Zdroják » Různé » IDF 2010 přineslo i témata známá ze Zdrojáku

IDF 2010 přineslo i témata známá ze Zdrojáku

Články Různé

Odpolední část prvního ročníku konference Internet Developer Fórum, která se uskutečnila 7. dubna 2010 v Národní technické knihovně v Praze, byla věnována oblastem, které jsou považovány leckdy za „buzzword“ či módní vlnu – totiž NoSQL databázím, agilním technikám a vývoji aplikací pro Facebook.

Nálepky:

Tento článek se zabývá odpolední částí programu IDF 2010. Informace z dopoledne naleznete v článku Petra Krčmáře, který vyšel na Rootu.

Ve 13.30 začal odpolední blok Internet Developers Fóra. Štafetu v moderování přebral po Petru Krčmářovi Petr Koubský. Prvním přednášejícím odpoledního bloku byl Honza Král s prezentací na téma NoSQL databází. Paralelně s jeho přednáškou začal workshop o vývoji aplikací pro Facebook, který vedli společně David Šmehlík a Jiří Dolejš ze společnosti Fleveo.

Honza Král: NoSQL

Honza Král zahájil přednášku vymezením pojmu NoSQL – nejde o zamítnutí SQL jako takového, ale o akronym z „Not Only SQL“, což naznačuje, že nejde o antagonistické skupiny, ale o rozšíření pohledu na přístup k databázím. Ve světě databází je známý tzv. CAP teorém, který říká, že ze tří požadavků (konzistence, dostupnost dat a tolerance k chybám infrastruktury, v originále Consistency, Availability a Partition tolerance), které můžeme od databáze vyžadovat, jsou splnitelné vždy jen dva najednou: SQL si vybraly CA, NoSQL jdou cestou splnění AP. Jedním z příkladu AP přístupu je např. systém DNS: Je stále dostupný, dokáže se vypořádat i s výpadkem části sítě, ale nezajišťuje, že data na všech DNS serverech jsou konzistentní (známé „probublávání změn“).

NoSQL databáze lze rozdělit do několika skupin podle toho, jakou strukturu dat používají. Asi nejjednodušší jsou Key-Value databáze, které fungují jako prostá úložiště obecných, nestrukturovaných dat, rozlišených klíčem (obdoba asociativních polí, slovníků a podobných datových struktur z programovacích jazyků). Příkladem Key-Value databáze je známý Memcache, který ukládá veškerá data do operační paměti a dokáže tak výrazně zrychlit běh aplikací, u nichž velký počet uživatelů stahuje relativně stále stejná data. Poněkud sofistikovanější obdobou je Redis, který nabízí ukládání dat na disk, v Japonku je velmi populární K-V databáze Tokyo Cabinet.

IDF 2010
Honza Král přednáší o NoSQL databázích

Dokumentové databáze, jako jsou např. MongoDB nebo CouchDB, ukládají data strukturovaná, jsou tedy nad nimi schopné provádět některé základní dotazy. Jako další typ uvedl Honza Král sloupcové databáze, jmenovitě BigTable a Cassandra. BigTable je interně používána Googlem k indexaci webových stránek, Cassandru vyvinul a používá Facebook, nyní je vyvíjena pod záštitou Apache Foundation.

Jedním z primárních důvodů, proč NoSQL databáze vznikly, je horizontální škálovatelnost (tj. rozprostření na víc oddělených strojů) při zápisu dat. Používané mechanismy vycházejí z práce Amazon Dynamo High Available Key-Value Store.

Při diskusi padl i dotaz, zda jsou v ČR tyto databáze používány – přeci jen jsou častěji zmiňovány v souvislosti s obřími celosvětovými projekty typu Google, Twitteru, Facebooku či Diggu. Velké servery používají minimálně Memcache, o tom, že by se někde používala vysloveně NoSQL databáze, se moc nemluví. Z publika zazněla poznámka, že Seznam používá pro nový fulltext HBase a Hadoop.

David Šmehlík a Jiří Dolejš: Vývoj pro Facebook

Praktická část odpoledního programu byla vyhrazena pro vývoj facebookových aplikací a vývoj iPhone. Petr Reichl, který měl přednášet o vývoji pro iPhone, se bohužel na poslední chvíli nemohl z vážných důvodů zúčastnit – přijměte tedy, prosím, omluvu organizátorů.

David Šmehlík a Jiří Dolejš ze společnosti Fleveo, která se věnuje vyvíjení aplikací pro Facebook, prezentovali nejen programátorský pohled na vývoj aplikací, ale i pohled ze strany „obchodního modelu“, tedy jak aplikaci pro Facebook prodat, na co se zaměřit, o čem před spuštěním projektu přemýšlet a jaké otázky si klást. Workshop tak odpovídal nejen na otázku JAK, ale i PROČ?

IDF 2010
David Šmehlík a zásadní otázky u vývoje aplikací

Programátorský pohled se pak nesl ve znamení pojmů jako FBML, XFBML, FBJS a dalších technik, nástrojů a jazyků, které jsou používány při vývoji pro platformu Facebook. Součástí workshopu byly praktické ukázky toho, jak kód vypadá a jak vzniká jednoduchá aplikace.

Jiří Knesl: Agilní programování

Přednáška Jiřího Knesla byla zaměřena na chyby, které vývojáři při programování dělají, a na metody, jak jim předcházet. Chyby jsou při vývoji zákonité, ovšem velké části z nich lze předejít – například tím, že si vývojář nejprve zjistí, co má vlastně vyvíjet. Nejčastějším chybám se lze vyhnout prototypováním a uživatelským testováním, kdy prototypování řekne vývojáři CO má psát, testování pak JAK to má psát.

IDF 2010
Jiří Knesl

Programátoři dělají podle Jiřího Knesla nejčastěji chybu v tom, že předpokládají, že uživatelé budou stejně znalí a zběhlí v používání počítačů jako oni sami. Tento předpoklad se většinou při uživatelském testování ukáže jako mylný. Doporučeným postupem je začít od prototypu – základního návrh webu, který je velmi snadné vytvořit např. pomocí nějakého CSS frameworku a prostého HTML. S prototypem lze udělat základní testování použitelnosti. Na častou otázku: „Kde vzít lidi na uživatelské testování webů?“ odpovídá Jiří Knesl: „Ukažte web svojí matce! Ta většinou nebývá žádný profesionál, její pohled je tudíž pohledem běžného uživatele, který na váš web bude chodit!“

S prototypováním a testováním souvisí i další otázka, kterou vývojáři často kladou, a to je „jak přesvědčit management, že se to vyplatí?“ Obojí je většinou iniciativa zdola, kdy vývojáři věří, že jim to pomůže, ale naráží na výhrady managementu, který často nevidí bezprostřední význam a smysl takových technik. Nejschůdnější cestou je ukázat na nějakém projektu, že to opravdu funguje, že se to osvědčilo a že to má smysl. Leckdy je ale třeba počítat s tím, že vývojářský tým bude prosazovat tyto postupy takříkajíc managementu navzdory.

Podle zkušeností přednášejícího bývá paradoxně nejtěžší prosadit ve firmách testování (unit testy, Test-driven development), ačkoli právě přínos testů je pro vývoj nejvyšší. Programátorské chyby totiž mají tendenci se vracet, ale dobře napsaný test je dokáže odstranit. Při test-driven developmentu se dokonce začíná přímo napsáním testů, které ověří funkčnost kódu, a teprve pak se píše kód. Tento přístup má mimo jiné i tu výhodu, že vede zároveň k psaní testovatelných aplikací a k tomu, že si vývojáři při vymýšlení testů lépe uvědomí, co vlastně vyvíjejí. Dobrou pomůckou jsou při testování specializované nástroje – JUnit, NUnit, PHPUnit…

Poslední část přednášky Jiřího Knesla byla zaměřena na agilní metodiky a techniky – vhodně doplnila seriál na toto téma, který před časem vyšel na Zdrojáku. Agile je vhodné především pro menší týmy, zhruba do deseti lidí. Největší výhodou těchto metod a technik je to, že vývojáři pracují v krátkých iteracích, kdy na konci každé iterace je hotová nějaká část projektu, kterou lze ukázat zákazníkovi a učinit tak vývoj pružnější a průběžně financovaný. Navíc lze reagovat i na změny zadání, které jsou při klasickém způsobu vývoje vždy velmi nevítanou událostí. „Klasický model vypadá tak, že zákazník zaplatí zálohu, pak se půl roku nic neděje, a po půl roce dostane něco, co možná už ani nechce, protože si během té doby uvědomil, že nepotřebuje třeba e-shop, ale informační systém. Ovšem změna je v takovém případě už jen těžko proveditelná a zákazník je náhle v situaci, kdy je držen v šachu původním zadáním…“ U Agile by měla být změna zadání nikoli noční můrou vývojáře, ale naopak příjemnou událostí – lze ji totiž brát i tak, že si zákazník uvědomuje, co vlastně chce, což v důsledku vede k tomu, že vývojáři vyvíjí software, který zákazník opravdu použije.

Zazněly i výhody agilních metod a technik pro samotné řízení týmů a projektů – na každého člena týmu je vidět, ví se co umí, co dělá, jak kvalitní kód odevzdává,… Lze je tak lépe motivovat či lépe přidělovat konkrétní úkoly, což vede k tomu, že členové týmu mají tendenci rychle zlepšovat svoje schopnosti, vyvíjet rychleji a kvalitněji.

Závěr: Panelová diskuse

Závěr konferencí patří tradičně panelovým diskusím, a ani IDF nebylo výjimkou. Panelovou diskusi moderoval Petr Koubský, a nejen o webových aplikacích a vývojářských nástrojích s ním diskutovali někteří přednášející.

IDF 2010
Účastníci panelové diskuse. Zleva: Jiří Knesl, Petr Koubský, Daniel Steigerwald, David Grudl, Adam Fendrych a David Šmehlík

Diskutovalo se i v kuloárech, a mnozí návštěvníci využívali šance zeptat se přednášejících či jiných účastníků na konkrétní otázky, problémy či probrat s nimi některé nápady. V 17 hodin skončila diskuse i celá konference Internet Developers Fórum 2010.

Pokud se vám konference líbila, nebo naopak vás napadá něco, co by bylo v příštím ročníku určitě změnit, pojďte o tom diskutovat do fóra.

Foto: Ivana Dvorská

Komentáře

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

já bych celou konferenci shrnul asi takhle:

  • ujasnili jsme si, jak se vlastně nahlas vyslovuje javascript a yui
  • dozvěděli jsme se, že je jquery na hovno
  • že přednášející mají rádi konference, protože poznávají nové lidi
  • tam, kde končí plat phpčkaře, začíná plat programátora v pythonu
  • že se měl facebook udělat hned na začátku jinak, hlavně ne v php
  • že vývojáři nerozumí hw (neumějí zapnout nefungující mikrofon)
  • že web má navrhovat navrhovač webů a vývojář programovat, designér dělat design a…

+ závěrečná diskuze, ve které zazněla triviální otázka, proč v čr vzniká málo velkých projektů, startupů a místo nějaké kloudné odpovědi celá diskuze trapně skončila jako vždy, že samozřejmě za všechno může zlé PHP a blbý uživatel…

František Kučera

Diskuse by skončila trapně, kdyby lidi nevěděli, co povídat a bylo by ticho – myslím, že to Petr K. ukončil přesně v ten správný okamžik.

Zapomněl jsi ale na jinou věc, kterou jsme se nedozvěděli: kde se v ČR používají noSQL databáze. Odpověď vyšuměla do ztracena, resp. odbyla se tím, že memcache se používá všude možně – což je sice pravda, ale memcache se z principu nepoužívá jaké nějaké primární úložiště dat, ale jen jako jakýsi „urychlovač“, mezipaměť.

(nepočítám tu zmínku o Seznamu, ale to myslím neříkal nikdo z přednášejícím a neznělo to moc přesvědčivě)

honza

Tady se právě naplno projevila neocenitelná funkce a nutnost moderátora :) Podle mě může diskuze obsahovat trapné místa i když není ticho, ale to je tedy asi věc názoru. Jinak mně se některé odpovědi a názory líbily, ale ten všeobecný přehled pokulhával no…

Tušim, že zástupci seznamu řikali, že chtěli nasadit cassablancu, ale v testech vyšla hůř.

A ještě tu zmínim Jirku Knesla, který byl naopak velkým přínosem, protože velmi trefně vsuvkoval zkušenosti mimo ČR a odlehčené příjemné vtipkování Davida G.

Michal Augustýn

Cassandru, ne Cassablancu ;-)

Jiří Knesl

Já musím poděkovat za skvělou organizaci (navzdory všem problémům s přednášejícími, že Arthure?). Z konference jsem si kromě pár nových kontaktů na zajímavé lidi odvezl i odkaz na databázi Neo4J, o které povídal Honza Král – ta mě zaujala (ukázkový zdroják http://github.com/andreasronge/neo4j/blob/master/examples/railway/railnet-app.rb).

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.