CategoryJavaScript

Learning JavaScript Design Patterns

Na této adrese najdete elektronickou verzi knihy Learning JavaScrip Design Patterns.

Unix shell v JavaScriptu

687474703a2f2f692e67697068792e636f6d2f785430424b4e7755504668466a32676c72792e676966

Cash je multiplatformní implementace Unix shellu napsaná komplentně v ES6. Nevyžaduje žádnou kompilaci a není závislá na dalších externích aplikacích či jakémkoliv SW…

JavaScript pattern: Module

Design pattern Module pomáhá implementovat klasický model softwarových modulů, který zapouzdřením proměnných a funkcí redukuje globální scope. Jedná se o jeden z nejpoužívanějších návrhových vzorů.

V příkladu interně definované proměnné zůstávají pro ostatní kód skryté, protože jejich existence je omezena jen do volání definice samotného modulu (to je ten pár závorek před stredníkem). Jedná se o typický příklad javascriptového closure. Pro přístup k intertním datům modulu je potřeba volat funkci, nebo funkce vracejíci jako návratovou hodnotu definice modulu.

Exploring ES6

On-line verze knížky Exploring ES6

JavaScript Cheat

Online JavaScript Cheat
PDF verze

JavaScript: návrhové vzory

Každý programovací jazyk má nějaké doporučené vzory, návrhové vzory (design paterns) jak řešit daný problém. Má je i JavaScript. Tohle jsou některé z nich.

Modul

Zabaluje, zapouzdřuje, data a funkce do ‚modulu‘ a tak jej skrývá od ostatního kódu.

Constructor

Používá se v objektovém programování pro vytvoření objektu z definice třídy. Definicí třídy je v JavaScriptu funkce, která se volá a vytváři instanci.

Prototype

Umožňuje definovat třídy a pak z nch vytvářet objekty. Prototype pak řeší něco jako metody třídy, které pak lze volat na vytvořených objektech.

Observer

Observer je návrhový vzor, který vám umožňuje vytvořit vazbu mezi objektem, který emituje nějakou událost, změnu a objektem, který na toto reaguje, nebo je o tomto nějak informován.

Sledovany objekt si vytvori pole pro objekty, ktere chteji byt informovani a registrace odberatelu je pak do tohoto pole pridava. Kazdy registrovany objekt ma metodu notify, ktera zodpovida za zpracovani obdrzene zpravy. Sledovany objekt pak skrze tuto metodu rozesila danou zpravu.

Návrhové vzory…

Tohle byly jen některé návrhové vzory, které se v JavaScriptu hojně používají.
Zdroj

Chat aplikace v NodeJS

JavaScript je opravdu skělý programovací jazyk. Kdo by řek, že na 11 řádcích napíšete plně funkční síťovou chatovací aplikaci…

Koukněte sem

NodeJS cross platform REPL

Pokud pracujete s JavaScriptem, nebo jeho nějakým transpilerem jako je CofeeScrip, TypeScrip, nebo LiveScript, pak se vám bude určitě hodit Mancy.
dark-theme

Bootstrap dialog

Pokud píšete nějakou webovou aplikaci, určitě narazíte na potřebu něco sdělit uživateli vaší stránky formou vyskakovacího okna. K tomu vám bude asi stačit alert. Pokud ale chcete něco komplexnějšího a komplikovanějšího, protože byste chtěli například načíst nějaká data, pak potřebujete modální dialogový box.

Dříve jsem modální okna sám navrhoval v HTML a skrze Angular je obsluhoval.

Teď jsem našel skvělou knihovnu boostrap3-dialog, která tohle všechno dělá za mě a dělá toho mnohem víc.

Stačí skrze Bower naimportovat knihovnu do projektu

Pak jen vložit do HTML stránky

A pak jen na požadovaném místě zavolat s požadovanými parametry a popřípadě callback funkcí.
Jednoduché demo s několika tlačítky:

Paráda, jak je to jednoduché oproti tomu, když do stránky vkládáte spoustu kódu navíc..
Demo příklady

Gulp VS Grunt, JavaScript deploy

Letos jsem úplně opustil od vývoje v PHP a plně přešel na Python, ale hlavně na JavaScript, respektive na NodeJS, co by serverevou implementaci JavaScriptu a AngularJS pro frontend u UI. Tolik aspoň k samotnému programování.

S tímto je ale spojená zcela zásadní změna celého paradigmatu programování. Dříve jsem skrze SVN udržoval nějaký centrální repozitář zdrojových kódů dané aplikace a spouštěl je na Apachovi někde na serveru.

Teď mám NodeJS na notebooku, kde mi beží vše. Přes Git distibuju zdrojáky na servery v cloudu. A aby vše bylo ještě jednodušší a automatizované, začal jsem používat Bower, pro JavaScriptové knihovny frontnedu a Npm balíčkovací systém pro backend aplikace. Paráda.

A aby to drželo pohromadě, musel jsem si vybrat nějaký nástroj pro samotné buildování aplikace. Tím se rozumí lintování, kompilace, testování, deploy na dev a následně na do produkčního prostředí.

A k tomuto se hodí Grunt, nebo Gulp. Respektive více nástrojů, ale tyhle dva jsou mainstreamy pro vývoj v JavaScriptu.

A tak jsem začal googlovat a načítat spoustu stránek porovnávající oba systémy. A mám zásadní zjištění. Jen velice málo programátorů dokázalo exatně řict, který nástroj je lepší. Každý článek téměř shodně popisuje oba systémy a všechny donekonečna popisují ty samé vlastnosti obou systému s verdiktem, že každý je jinačí a hodí se na něco jiného a rozhodnutí je na samotném programátorovi. A to by mě čert vzal.

Musel jsem pročíst kde co a pak i začít sám něco psát, abych věděl, jak mi to půkjde. A příšel jsem na zásadní zjištění.

Nepoužívejte Grunt

Pokud pro deploy používáte nějaký takovýto nástroj, pak jste programátor v JavaScriptu. No a pokud jste programátor v JavaScriptu, pak vám bude určitě bližší psát kód pro Gulp, než složité konfiguráky pro Grunt.

Mou volbou je Gulp

gulp

PS: všiml jsem si, že v poslední době se mi daří psát téměř každý den příspěvek na blog. Je to tak. Cítim se velice efektivní a stále je o čem psát…

© 2017 pepa.holla.cz

Theme by Anders NorénUp ↑