SlideShare a Scribd company logo
Web	Apps	2015/2016
TOC
• 1)	Principy
• 2)	SPA
• 3)	Malá	webová	aplikace
• 4)	Nástroje
• 5)	React-devstack
3	pilíře
• Software	is eating the world,
the web	is eating software
&	JavaScript rules the world.
”Eric Elliott”
• Refaktorovatelnost
• Stabilita
• Testovatelnost
Funkcionální programování
• compose(
fnA,
fnB,
fnC
)
• =	refaktorovatelnost
• Pure	function
• Immutable	data
• Bez	mutace	globálního	stavu
• =	stabilita,	testovatelnost
Funkcionálně reaktivní programování
• Čas	+	události	+	FP
• window.scroll
.filter(offset	=>	offset	>	clientHeight)
.map(()	=>	$(‘menu’).style(‘visibility’,	‘none‘))
• Deklarativní	programování
Modularizace
Single	Page	App
• Stav mimo UI
• Stav na jednom místě
• Přehlednost
• Historie
• Refaktorovatelnost
• HTML	do	kódu
S
UI	=	f(S)
Komponentizace UI,	styly,	Bootstrap
• Moduly
• Uvnitř projektu
• Private	moduly (JS/CSS)
HTML JSSCSS
HTML JSSCSS
GridVars Mixin
React.js +	Redux
• Známe
• Používáme
• Už víme proč
jQuery?
• AJAX	– stará specka Promise/A
• BOM	+	DOM	(IE8-)
• Animace (CSS3?)
• Imperativně x	deklarativně
• $(’.email-field')
.asEventStream('blur')
.map(checkIfEmpty)
.assign($(’.signup-button'),	'attr',	'disabled')	;
function	checkIfEmpty(e)	{	return	!e.target.value;	}
Nástroje
• Eslint:
1)	styl	kódu
2)	kontrola	chyb
3)	kontrola	častých	problémů
• Kontrola	při	releasu
• Preset	airbnb
• SCSS-lint
• Webpack	– zpracování	JS	(komponentizace	s	CSS,	modularizace)
• Gulp
• Pomocník	Webpacku
• Spouštění	úkolů,	testů
• Mochai	+	Chai	+	Sinon	+	js-dom
• Enzyme
React	Devstack
Origin Upstream
Local

More Related Content

Similar to JS2016

Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptCtvrtkoncz
 
Užitečné Android knihovny pro vývoj a testování
Užitečné Android knihovny pro vývoj a testováníUžitečné Android knihovny pro vývoj a testování
Užitečné Android knihovny pro vývoj a testováníTomáš Kypta
 
Spring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou TvariSpring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou TvariRoman Pichlík
 
Použití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciPoužití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciMartin Krištof
 
Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Tomáš Kukol
 
Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]
Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]
Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]Kuba Břečka
 

Similar to JS2016 (20)

Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
 
TNPW2-2014-05
TNPW2-2014-05TNPW2-2014-05
TNPW2-2014-05
 
TNPW2-2012-03
TNPW2-2012-03TNPW2-2012-03
TNPW2-2012-03
 
Užitečné Android knihovny pro vývoj a testování
Užitečné Android knihovny pro vývoj a testováníUžitečné Android knihovny pro vývoj a testování
Užitečné Android knihovny pro vývoj a testování
 
TNPW2-2016-03
TNPW2-2016-03TNPW2-2016-03
TNPW2-2016-03
 
Spring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou TvariSpring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou Tvari
 
TNPW2-2013-03
TNPW2-2013-03TNPW2-2013-03
TNPW2-2013-03
 
Použití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciPoužití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaci
 
TNPW2-2014-03
TNPW2-2014-03TNPW2-2014-03
TNPW2-2014-03
 
Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]
 
TNPW2-2013-07
TNPW2-2013-07TNPW2-2013-07
TNPW2-2013-07
 
Axure RP training
Axure RP trainingAxure RP training
Axure RP training
 
TNPW2-2016-02
TNPW2-2016-02TNPW2-2016-02
TNPW2-2016-02
 
TNPW2-2016-05
TNPW2-2016-05TNPW2-2016-05
TNPW2-2016-05
 
TNPW2-2014-02
TNPW2-2014-02TNPW2-2014-02
TNPW2-2014-02
 
CSAS_v06
CSAS_v06CSAS_v06
CSAS_v06
 
TNPW2-2012-05
TNPW2-2012-05TNPW2-2012-05
TNPW2-2012-05
 
TNPW2-2012-02
TNPW2-2012-02TNPW2-2012-02
TNPW2-2012-02
 
Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]
Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]
Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]
 
TNPW2-2012-07
TNPW2-2012-07TNPW2-2012-07
TNPW2-2012-07
 

JS2016