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

Zdroják » JavaScript » Reportáž z Devel.cz konference 2013

Reportáž z Devel.cz konference 2013

V sobotu se na FIT ČVUT uskutečnil již druhý ročník vývojářské Devel.cz konference. V průběhu dne vystoupilo 11 zajímavých řečníků s přednáškami týkajícími se především vývoje webu. S jakými trendy se budeme setkávat v roce 2013?

Este.js – javascriptové aplikace robustně, modulárně a efektivně

Daniel Steigerwald krátce představil svůj evoluční javascriptový framework / dev stack Este.js postavený na Google Closure Library (knihovna, ve které je napsaný např. Gmail). Ale spíše než samotným frameworkem se zabýval nástroji, které použil při nedávném refactoringu. Jedná se o nástroje, které na backendu už používáme delší dobu, ale na frontend se dostaly teprve nedávno. Představil package manager Bower (obdoba npm, ale pro frontend) a javascript task runner Grunt. Na závěr ukázal i Component, což je kombinace package manager a module loaderu, a hodí se především pro vytváření malých javascriptových komponent.

Este.js - javascriptové aplikace robustně, modulárně a efektivně

Kinohled.cz za 2 týdny

Jak vytvořit web za 10 dní od wireframů po spuštění bety nám ve své case study řekl Vojta Semecký z Wikidi. Podělil se o zajímavá řešení, která byla při vývoji použita. Při vstupu na web se uživateli dle jeho města uloženého v cookies z nginx cache vrátí příslušná stránka. Cookies se tedy zpracovávají už na reverzním proxy serveru. Během výběru vhodného databázového úložiště se zjistilo, že databáze vlastně není potřeba. Proč řešit jednoduché věci složitě? Data získaná z API se jednoduše uloží do JSON souboru a ten se následně používá při renderování šablon.

Code Review FTW!

O výhodách praktikování code review ve firmě nás přesvědčili David Majda a Josef Reidinger ze SUSE. Hlavními přednostmi jsou lepší kód a návrh, vzájemné učení vývojářů a zvýšení bus factoru – kolik vývojářů musí přejet autobus, aby projekt neměl kdo spravovat. Základní workflow je: úprava kódu => pull request => (přijetí => merge) || (odmítnutí => úprava kódu). Ten, kdo kód kontroluje, pak může postupovat dle následujícího checklistu:

  1. Je kód dobře čitelný? (délka funkcí, řádků, štábní kultura)
  2. Rozumím tomu, co kód dělá? (pojmenování funkcí, uspořádání, samovysvětlující kód)
  3. Skautské pravidlo = každá úprava musí zanechat kód ve stejném nebo lepším stavu, než byl předtím
  4. Jde to udělat lépe?

Zároveň je potřeba poskytovat pouze konstruktivní kritiku, s radou, jakým jiným způsobem to vyřešit.

Kritizujte kód, ne člověka!

Kritizujte kód, ne člověka!

Strojové učení z rychlíku

Michal Illich poskytl stručný úvod do problematiky neuronových sítí a rozhodovacích stromů. Strojovým učením je možné řešit nejen klasické problémy jako rozpoznávání obrazu či řeči, ale využívá se hojně i na webu – AdWords, spam filter, doporučené produkty v e-shopech, doporučené filmy na Flixster. Obecně lze říct, že pomůže téměř na všech projektech, kde máte víc dat, než zvládne člověk zpracovat a zároveň jste schopni definovat a změřit cíl (např. více objednávek, prokliků). V konkurenčním prostředí navíc umožní získat náskok před konkurencí.

Pár tipů na dobré open-source knihovny:
Neuronové sítě: FANN (C), cuda-convnet (C++, GPU), Theano (Python, GPU)
Rozhodovací stromy: gbm (R), Weka (Java), Scikit-learn (Python)

Soft(ware) skills

Protože už se David Grudl o Nette prý napřednášel do konce života, začal přednášet o UX. Tématem UX by se měl zabývat každý vývojář aplikací. Cílem je, aby se aplikace dobře používala, a vývojář by neměl uživatelům, byť nechtěně, házet klacky pod nohy. Přednáška byla spíše v praktickém duchu, protože David pravděpodobně nestihl připravit slidy.

Chybové hlášky při validaci formuláře je potřeba psát z pohledu uživatele. Hláška by neměla říkat, co je špatně, ale co má uživatel udělat („Zadali jste neplatný e-mail“ => „Zadejte platný e-mail“). Vždy je dobré se zamyslet, zda je daný údaj opravdu povinný a zda nemá nasazené zbytečné validace – např. minimální délku jména (zaregistruje se „Vu“?).

Jediný přednášející, který se občerstvoval pivem

Jediný přednášející, který se občerstvoval pivem

Opřel se také do nového Zdrojak.cz. Při zobrazení článku na mobilu je potřeba příliš scrollovat. Kdo by chtěl sdílet článek ještě předtím, než si jej přečte? Proč zobrazovat počet tweetů článku? Pokud jich je málo, asi článek není dobrý, pokud hodně, už je zbytečné jej tweetovat.

Zahashovat heslo, uložit, …, profit!

Odborník na bezpečnost Michal Špaček poradil, jak správně ukládat hesla. Nejbezpečnější jsou ty hashovací algoritmy, které trvají nejdéle – případnému útočníkovi pak trvá déle i prolomení. Pro hashování by se neměly používat hashovací algoritmy md5 ani sha1, které nebyly pro hashování hesel původně vůbec určené. Od PHP 5.3.7 je pro tyto účely doporučeno používat funkci crypt s blowfish algoritmem. Od PHP 5.5 pak bude nejjednodušší použít funkce password_hash a password_verify.

Velká data, internet věcí a velká příležitost

Přednáška Patricka Zandla byla o největší změně, které se v nejbližší době stihneme účastnit. Každý rok objem dat ukládaných na internet několikanásobně roste. Zajímavé bude především využití senzorových dat. Už nyní třeba Google z vaší rychlosti pohybu po dálnici určuje hustotu dopravy a podle toho posílá do navigací upravené trasy. V budoucnu se může najít využití třeba ve zdravotnictví – korelace s lidmi, kteří mají stejný životní styl a odhalení hrozících zdravotních rizik. Hlavní část přednášky byla věnována elektrárnám v ČR a možnému řešení, jak decentralizovat distribuci elektřiny pomocí smart grid. Přednáška měla ukázat, že big data nejsou jen abstraktní pojem, ale že budou prakticky ovlivňovat naše životy.

Patrick Zandl

Jak se efektivně naučit iOS vývoj

Michal Vašíček názorně ukázal vývoj aplikace Hello World pro iPhone. Jak vytvořit UI pomocí Interface Builderu a propojit s kódem v Objective-C. Následně ukázal i jednoduchou aplikaci, která stahuje a zobrazuje data z API. Jakožto Android vývojáře mě překvapilo, jak jednoduchá je tvorba animací a provádění asynchronních operací na pozadí.

S CoffeeScripem snadněji, rychleji a radostněji!

Martin Malý představil přednosti CoffeeScriptu, jazyka, který přibližuje JavaScript jednoduché syntaxi Pythonu. Není v něm potřeba psát středníky, závorky a spousta věcí jde napsat rychleji. Pokud si chcete CoffeeScript vyzkoušet, na oficiálním webu se nachází interaktivní konzole. Pro pokročilejší, Iced CoffeeScript zjednodušuje asynchronní volání a práci s callbacky. CoffeeScript Redux přidává source maps pro debuggování.

Nová verze CoffeeScript 1.5 obsahuje Literate CoffeeScript, mód, který umožňuje psát v syntaxi Markdown, spouští se pak pouze odsazený zdrojový kód.

Tvorba javascriptové aplikace v AngularJS pomocí Apiary.io

Framework AngularJS od Google, vyvíjený převážně českými a slovenskými vývojáři, přestavil Ladislav Prskavec. Hlavními přednostmi Angularu jsou two-way data binding (schopnost měnit obsah UI změnou vlastností objektu a naopak) a snadná testovatelnost v různých prohlížečích pomocí Testacular.

Také představil aplikaci Apiary.io sloužící nejen k dokumentaci API. Specifikace API se napíše v Blueprint syntaxi připomínající Markdown. Očekávaný formát odpovědí API se popisuje pomocí JSON schema. Apiary.io je možné použít při vývoji k vytvoření mock serveru, v pozdější fázi pak k testování funkčního API, zda vrací předpokládaný výstup. Lze použít i proxy, díky čemuž jsou všechny dotazy na API monitorovány a snadno se odhalí případné problémy.

Osobní produktivita pomocí vlastních rozšíření do prohlížeče

„Rozšíření můžeme psát pro všechny prohlížeče, kromě IE… pokud ho lze klasifikovat jako prohlížeč,“ začal svoji závěrečnou přednášku Riki Fridrich, známý např. jako autor Chrome rozšíření Punkový konzument. Zdaleka nejjednodušší je vyvíjet rozšíření pro Chrome. Základem každého takového rozšíření je manifest.json a to je všechno, co je potřeba.

Během přednášky naprogramoval rozšíření, které do adresního řádku přidá vyhledávání v PHP dokumentaci včetně našeptávače. Dále trochu rozporuplné rozšíření, které na webu filmové databáze zobrazí tlačítko pro stažení torrentu. Na obě rozšíření stačilo pár řádku JavaScriptu a vědomí, že „web je API“ – všechno, co je na webu, je možné si rozparsovat.

Každý účastník obdržel tričko Programmer + Coffee = Code

Každý účastník obdržel tričko Developer + Coffee = Code

Závěr

Dle mého skromného názoru se akce vyvedla a těším se na další, která by mohla být na 75 % ještě někdy v létě letošního roku. Ale záleží na tom, jestli se najde dostatek zajímavých témat, o kterých by se dalo přednášet, a zda bude chuť. Díky organizátorům za plynulý průběh akce a FIT ČVUT za poskytnutí krásných prostor!

Další odezvy

(Budeme průběžně doplňovat)

Komentáře

Odebírat
Upozornit na
guest
0 Komentářů
Nejstarší
Nejnovější Nejvíce hlasů

Proč vám model napíše Python, i když jste si řekli o Rust

AI
Komentáře: 0
Výkonnostní propast mezi Pythonem a ostatními jazyky se za poslední rok a půl skoro zavřela. Dnešní modely zvládají Rust i Go srovnatelně dobře. Když jim ale volbu necháte, sáhnou stejně po Pythonu. A u knihoven je to ještě výraznější: mezi funkčně srovnatelnými balíčky je až 84procentní rozdíl v kvalitě generovaného kódu. Proč to tak je a co s tím.

WP2Shell: Kritická hrozba pro samotné jádro WordPressu. Útočníci mohou získat kontrolu nad webem

Zranitelnost ve WordPressu není žádná novinka. Kdo provozuje weby postavené na této platformě, ví, že bezpečnostní záplaty chodí prakticky pořád. O to větší pozornost by měla vzbudit chyba, u které nic z toho neplatí. A přesně takový je případ zranitelnosti, která dostala přezdívku wp2shell. potřeb. Zranitelný kontaktní formulář, děravý e-shopový plugin, opomenutá kontrola oprávnění v nějaké obskurní rozšiřující knihovně – to je denní chleba každého, kdo sleduje bezpečnostní feedy. Zpráva „nová chyba ve WordPress pluginu“ má tak nízkou informační hodnotu, že ji většina lidí přejde bez mrknutí oka.

Mýtus jedné aplikace: proč PWA nenahradí vývoj pro každou platformu

PWA mohou webu přidat ikonu na ploše, fungování bez připojení, notifikace a některé systémové funkce. Nejsou ale cestou k jednomu klientu pro všechny platformy. Vyplatí se tam, kde se lidé k webu vracejí a ocení okamžitý vstup z odkazu. Jakmile aplikace musí spolehlivě běžet na pozadí nebo fungovat stejně na každém zařízení, bývá vhodnější nativní řešení.