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
0
300
The modern web toolchain
Slides for my talk at the BASTA! Spring 2018 about the modern web toolchain
Fabian Gosebrink
February 21, 2018
Tweet
Share
More Decks by Fabian Gosebrink
See All by Fabian Gosebrink
Modern Angular Apps in 2026
fabiangosebrink
0
21
Why State is the Most Important Part of Your Angular Application
fabiangosebrink
0
82
Angular testing made easy with Jest and Cypress
fabiangosebrink
0
130
Introducing state management into an application with NgRx
fabiangosebrink
0
200
Scalable architectures in Angular with Nx
fabiangosebrink
0
160
My Biggest Angular Mistakes and How To Avoid Them
fabiangosebrink
0
270
[iJS Munich] Better Angular Architectures with Libraries and Nx
fabiangosebrink
0
160
Mastering State Management in Angular with the NgRx Signal Store
fabiangosebrink
0
410
Angular Architectures with NgRx Stores & Effects
fabiangosebrink
0
120
Other Decks in Technology
See All in Technology
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.9k
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
240
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
380
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
Greatest Disaster Hits in Web Performance
guaca
0
260
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
260
Agent Skils
dip_tech
PRO
0
110
20260204_Midosuji_Tech
takuyay0ne
1
160
OpenShiftでllm-dを動かそう!
jpishikawa
0
120
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
260
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
460
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
300
Featured
See All Featured
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
140
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
350
How GitHub (no longer) Works
holman
316
140k
Prompt Engineering for Job Search
mfonobong
0
160
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
430
Docker and Python
trallard
47
3.7k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
83
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
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