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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
80
NgRx Signal Store - A Deeper Dive
fabiangosebrink
0
56
Modern Angular Apps in 2026
fabiangosebrink
0
99
Why State is the Most Important Part of Your Angular Application
fabiangosebrink
0
130
Angular testing made easy with Jest and Cypress
fabiangosebrink
0
170
Introducing state management into an application with NgRx
fabiangosebrink
0
240
Scalable architectures in Angular with Nx
fabiangosebrink
0
220
My Biggest Angular Mistakes and How To Avoid Them
fabiangosebrink
0
330
[iJS Munich] Better Angular Architectures with Libraries and Nx
fabiangosebrink
0
220
Other Decks in Technology
See All in Technology
自分が詳しくない領域でAIを使う #プロヒス2026
konifar
20
7.9k
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
150
GitHub Copilot運用のリアル ~AI Credit時代にどう向き合うか~
takafumisu2uk1
0
490
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
1
440
作る力から、見極める力へ — AI時代に広がるエンジニアの価値と役割
rince
0
360
フルAIで個人開発して学んだあれこれ / yuruai vol.1
isaoshimizu
0
150
「ビジネスがわかるエンジニア」とは何か?
ryooob
0
350
そこにあるから地図ができる~位置を示す"モノ"を愉しむ~ - Interface 2026年6月号GPS特集オフ会 / interface_202606_GPS_offline
sakaik
1
110
Microsoft のサポートとフィードバック総まとめ
murachiakira
PRO
0
120
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
1.1k
現場のトークンマネジメント
dak2
1
200
PostgreSQL 19 新機能概要 OSC Hokkaido 2026
nori_shinoda
0
260
Featured
See All Featured
A designer walks into a library…
pauljervisheath
211
24k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
240
Navigating Weather and Climate Data
rabernat
0
240
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
Into the Great Unknown - MozCon
thekraken
41
2.6k
Code Review Best Practice
trishagee
74
20k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
4 Signs Your Business is Dying
shpigford
187
22k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
How to build a perfect <img>
jonoalderson
1
5.7k
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