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
61
Angular testing made easy with Jest and Cypress
fabiangosebrink
0
94
Introducing state management into an application with NgRx
fabiangosebrink
0
140
Scalable architectures in Angular with Nx
fabiangosebrink
0
120
My Biggest Angular Mistakes and How To Avoid Them
fabiangosebrink
0
230
[iJS Munich] Better Angular Architectures with Libraries and Nx
fabiangosebrink
0
140
Mastering State Management in Angular with the NgRx Signal Store
fabiangosebrink
0
350
Angular Architectures with NgRx Stores & Effects
fabiangosebrink
0
110
Angular Testing made easy with Jest and Cypress
fabiangosebrink
0
110
Other Decks in Technology
See All in Technology
ブロックテーマ時代における、テーマの CSS について考える Toro_Unit / 2025.09.13 @ Shinshu WordPress Meetup
torounit
0
130
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
280
Unlocking the Power of AI Agents with LINE Bot MCP Server
linedevth
0
120
データ分析エージェント Socrates の育て方
na0
7
2.5k
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
270
複数サービスを支えるマルチテナント型Batch MLプラットフォーム
lycorptech_jp
PRO
1
960
Platform開発が先行する Platform Engineeringの違和感
kintotechdev
4
590
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
6
750
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
200
Firestore → Spanner 移行 を成功させた段階的移行プロセス
athug
1
500
20250912_RPALT_データを集める→とっ散らかる問題_Obsidian紹介
ratsbane666
0
100
使いやすいプラットフォームの作り方 ー LINEヤフーのKubernetes基盤に学ぶ理論と実践
lycorptech_jp
PRO
1
160
Featured
See All Featured
Speed Design
sergeychernyshev
32
1.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Site-Speed That Sticks
csswizardry
10
820
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Designing for humans not robots
tammielis
253
25k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
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