Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The modern web toolchain
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Fabian Gosebrink
February 21, 2018
Technology
310
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The modern web toolchain
Slides for my talk at the BASTA! Spring 2018 about the modern web toolchain
Fabian Gosebrink
February 21, 2018
More Decks by Fabian Gosebrink
See All by Fabian Gosebrink
Advanced Signal Store: Structuring State for Real Angular Applications
fabiangosebrink
0
96
NgRx Signal Store - A Deeper Dive
fabiangosebrink
0
66
Modern Angular Apps in 2026
fabiangosebrink
0
120
Why State is the Most Important Part of Your Angular Application
fabiangosebrink
0
150
Angular testing made easy with Jest and Cypress
fabiangosebrink
0
180
Introducing state management into an application with NgRx
fabiangosebrink
0
270
Scalable architectures in Angular with Nx
fabiangosebrink
0
240
My Biggest Angular Mistakes and How To Avoid Them
fabiangosebrink
0
350
[iJS Munich] Better Angular Architectures with Libraries and Nx
fabiangosebrink
0
230
Other Decks in Technology
See All in Technology
ラジオの科学
frievea
0
320
MIRU 2026 チュートリアル
keisuke198619
0
920
ブラウザ研修 2026
recruitengineers
PRO
6
1k
Flutterをカメラで動かしたかった話
sony
1
140
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
1
410
Model Studio CLI × Token Plan
maigo999
0
180
Goでデータパイプラインを作ろう
sansantech
PRO
1
460
クラウドセキュリティ入門 ~安全なクラウド利用のための基礎知識~
lhazy
13
13k
その“隠したつもり”が命取り ── 自前と平文をやめて「正解」に委ねる
kuroneko13
0
120
モバイルアプリ開発概論2026
recruitengineers
PRO
6
610
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
150
変化の早いClaude Codeを 書籍に落とし込む
oikon48
7
1.4k
Featured
See All Featured
Designing Powerful Visuals for Engaging Learning
tmiket
1
490
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
A designer walks into a library…
pauljervisheath
211
24k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Technical Leadership for Architectural Decision Making
baasie
3
480
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Exploring anti-patterns in Rails
aemeredith
3
460
Documentation Writing (for coders)
carmenintech
77
5.4k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
200
Transcript
@FabianGosebrink
@FabianGosebrink
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
> npm install <myPackage>
> npm install <myPackage> -g
None
None
> npm install rimraf -g
> rimraf node_modules
None
None
None
> yarn add ...
None
None
None
None
None
None
None
None
ES5 ES6 TS
> npm install typescript
> tsc myTypescriptFile.ts
None
{ "compileOnSave": false, "compilerOptions": { "outDir": "./dist/out-tsc", "baseUrl": "src", "sourceMap":
true, "declaration": false, "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, "target": "es5", "typeRoots": [ "node_modules/@types" ], "lib": [ "es2016", "dom" ] } }
None
None
Rx.Observable .interval(1000) .take(4);
Rx.Observable .fromEvent(document, 'mousemove') .pipe( map(event => event.clientX), throttleTime(300));
Rx.Observable .fromEvent(input, 'keydown') .pipe(map(e => e.key), filter(key => key !==
' '));
None
Component Services
Component
Store Component
Store Component store.select(…)
Store Component Reducer store.select(…) store.dispatch(…)
Store Component Reducer store.select(…) store.dispatch(…)
Store Component Reducer store.select(…) store.dispatch(…) Effects Services
None
Root Child Child GrandChild GrandChild
None
None
None
SystemJS
None
None
// import the entire utils object with CommonJS var utils
= require('utils’); var query = 'test'; utils.ajax('https://api.example.com?search=' + query) .then(handleResponse);
// import the ajax function with an ES6 import statement
import { ajax } from 'utils'; var query = 'test‘; // call the ajax function ajax('https://api.example.com?search=' + query ) .then(handleResponse);
None
None
None
None
> npm install webpack-dev-server --save-dev
None
Root Child Child GrandChild GrandChild
None
None
None
None
None
None
None
Protractor Jasmine Karma
Behaviour Driven Development Fast
Test runner Spawns browser & runs tests Also on CommandLine
None
None
End-to-end test framework Runs in a real browser Test like
a user
None
None
None
None
None
None
None
None
https://offering.solutions http://angular-academy.ch https://swissangular.com @FabianGosebrink