Pár postřehů ke školení JavaScriptu s Danem Steigerwaldem

Včera a předevčírem jsme byli s kolegou na školení Návrh a vývoj webových aplikací pro pokročilé. Zůstalo mi v hlavě pár postřehů, tak je hodím na blog, aby nevyšuměly.

Školení vyšlo na nejblbější dobu, která se mohla naskytnout. Jezdit dva dny do Dejvic v době, kdy kulminuje povodeň, je na chcípnutí. Druhý den jsme přijeli o hodinu a půl pozdě, protože se přes tu zasranou Prahu nedalo projet v klidu, a také protože jsem udělal pár špatných rozhodnutí, a také protože se našlo i pár kriplů z firmy Dopravní značení Praha, kteří se rozhodli kreslit nové čáry na silnici v době špičky a navíc v době povodně, kdy je dopravní špička ještě špičatější, než obvykle. Díky za příjemně strávenou třičtvrtěhodinku na stometrovém úseku, vy zmrdi.

Nicméně, i ve středu jsme to zvládli a musím uznat, že to stálo za to. I kolega, která má tři děti a z některých školení odchází dříve, vydržel oba dva dny do konce.

Steida nasadil tempo, ze kterého se člověku po dvou dnech vaří hlava, ale asi ještě nikdy jsem nezažil tak zkomprimované, ale zároveň skvěle podané informace. Řekl bych, že strategie zahození zbytečných keců by slušela i jiným školitelům. Na druhou stranu si myslím, že protáhnout to na tři dny a některá místa projít podrobněji, by stálo za úvahu.

Školení mi pomohlo se změnou uvažování. Doposud jsem javascript považoval spíš za jazyk, vhodný pro UX blbůstky a ani by mě nenapadlo uvažovat o něm, jako o prostředku k vývoji plnohodnotné byznys logiky. Javascriptové frameworky jsem vnímal jako jQuery like, jQuery klony a lepší jQuery, to vše vhodné k hraní si s nice interfacem. Proklínal jsem pošuky, kteří jsou schopni vytvořit grafické theme s použitím jQuery, a to až do takových zběsilostí, jako je vyjmutí textových polí ze stránky a jejich nahrazení nějakou pseudo-input komponentou. A to jen kvůli tomu, aby ta pole měla oblé rožky (true story). Lámal bych za to ruce-nohy, už jen za ty hodiny zjišťování, proč se mi neodpalují eventy.
Teď už vím, že JavaScript ušel dlouhou cestu a pomalu se začíná stávat plnohodnotnou alternativou k velkým serverovým aplikacím.

Zjistil jsem, že SPA se dají psát i lépe, než jak to má cinemacity.cz, kde se nemění URI a celý web se chová, jako by byl uzavřen v iframu. Zjistil jsem, že lze i v JavaScriptu účinně přepisovat URI a poskytovat tak pro každou část obsahu jednotný identifikátor, přes který se dá odkazovat. Že existují minimálně dvě metoty – hashchange a pushstate.

Byť jsem o tom přečetl haldu věcí a slyšel to na různých seminářích, poprvé jsem přiznal, že TDD má v některých případech smysl.

Uvědomil jsem si, jak silná a efektivní je open source komunita okolo GitHubu, jak účinnými prostředky vládne a jak moc těm velkým hráčům, jako je IBM, či Microsoft, v tomhle směru ujíždí vlak. Padla dokonce zajímavá úvaha, že dnešní vývoj v tomto segmentu je podobný dravému kapitalismu, kde zůstávají jen ti nejlepší.

Poznali jsme spoustu užitečných nástrojů, jako je apiary.io, nebo grunt, knihoven, jako Google Closure, nebo Polymer…

Zjistil jsem, že momentálně neexistuje lepší editor, než je Sublime Text a skoro vůbec nevadí, že to není plnohodnotné IDE.

Poznal jsem CoffeeScript a TypeScript a zjistil, že se nemusím bát je používat. Sublime pro ně má podporu, a to včetně automatické kompilace. S kombinací Gruntu a Sublime už člověk může vyvíjet komfortně, jako s plnohodnotným IDE. Oba jazyky už mají navíc slušnou syntaxi, ze které bych si nerval vlasy a TypeScript má dokonce i něco jako statické typování, což posouvá vývoj na normální level. CoffeScript dotane IMO statické typování také.

Z pohledu vývoje v Java, C# a podobných striktně typových jazycích, mi sice přijde způsob objektového vývoje v JS poměrně legrační, ale chápu, že je to na začátku a čeká se jen na lepší nadstavby a nástroje. Ovšem způsob smluvního programování typu…

  • tohle je privátní proměnná, protože je to napsáno v anotaci – ale vidíte na ni odevšad
  • tohle je konstanta, protože je napsaná velkými písmeny – jen není final
  • tohle je objekt, byť to tak nevypadá ani kdybych se zhulil a ožral, protože jsme to tak řekli – ale taky to může být jenom funkce

… mi přijde hustej. Používat místo modifikátorů přístupu anotace je fakt cool a připomnělo mi to vtip s albánským virem, co koluje e-mailem:

Dobrý den.
Jsem chudý albánský virus. Prosím smažte si 50 náhodných souborů a pošlete mě dál alespoň dvaceti přátelům.
Děkuji.

Na druhou stranu, kdo programuje v Lotusscriptu, ten se snad ani smát nemůže… :-)

Celkově to školení hodnotím jako nadprůměrné, prostředí JammClubu bylo správně dungeon, Steida dokáže každou věc dobře vysvětlit… takže díky.

2 Komentáře.

  1. Díky za recenzi. Jenom poznámka, CoffeeScript jazyk sice typy nepodporuje, ale díky Closure Compileru jo :) Ty anotace co si viděl v github.com/Steida/este, normálně fungují. Neslouží jen k popisu ale i ke kompilaci.

  2. Pravda. Jak jsem řekl, vždycky to jenom chce ty správné nástroje. :smile: