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
Fabian Gosebrink
February 21, 2018
Technology
0
290
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
Why State is the Most Important Part of Your Angular Application
fabiangosebrink
0
32
Angular testing made easy with Jest and Cypress
fabiangosebrink
0
74
Introducing state management into an application with NgRx
fabiangosebrink
0
110
Scalable architectures in Angular with Nx
fabiangosebrink
0
97
My Biggest Angular Mistakes and How To Avoid Them
fabiangosebrink
0
200
[iJS Munich] Better Angular Architectures with Libraries and Nx
fabiangosebrink
0
130
Mastering State Management in Angular with the NgRx Signal Store
fabiangosebrink
0
310
Angular Architectures with NgRx Stores & Effects
fabiangosebrink
0
95
Angular Testing made easy with Jest and Cypress
fabiangosebrink
0
94
Other Decks in Technology
See All in Technology
変化する開発、進化する体系時代に適応するソフトウェアエンジニアの知識と考え方(JaSST'25 Kansai)
mizunori
1
220
Liquid Glass革新とSwiftUI/UIKit進化
fumiyasac0921
0
210
PostgreSQL 18 cancel request key長の変更とRailsへの関連
yahonda
0
120
AIのAIによるAIのための出力評価と改善
chocoyama
2
550
製造業からパッケージ製品まで、あらゆる領域をカバー!生成AIを利用したテストシナリオ生成 / 20250627 Suguru Ishii
shift_evolve
PRO
1
140
標準技術と独自システムで作る「つらくない」SaaS アカウント管理 / Effortless SaaS Account Management with Standard Technologies & Custom Systems
yuyatakeyama
3
1.3k
地図も、未来も、オープンに。 〜OSGeo.JPとFOSS4Gのご紹介〜
wata909
0
110
Delegating the chores of authenticating users to Keycloak
ahus1
0
120
How Community Opened Global Doors
hiroramos4
PRO
1
120
GeminiとNotebookLMによる金融実務の業務革新
abenben
0
230
Prox Industries株式会社 会社紹介資料
proxindustries
0
290
TechLION vol.41~MySQLユーザ会のほうから来ました / techlion41_mysql
sakaik
0
180
Featured
See All Featured
The Invisible Side of Design
smashingmag
299
51k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
Unsuck your backbone
ammeep
671
58k
Designing for humans not robots
tammielis
253
25k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
490
The Cult of Friendly URLs
andyhume
79
6.5k
4 Signs Your Business is Dying
shpigford
184
22k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
Producing Creativity
orderedlist
PRO
346
40k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
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