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
A DIY Guide To Building Your Own Rendering Engi...
Search
Francesco Strazzullo
May 09, 2019
Programming
0
430
A DIY Guide To Building Your Own Rendering Engine - JsDay Verona 2019
Francesco Strazzullo
May 09, 2019
Tweet
Share
More Decks by Francesco Strazzullo
See All by Francesco Strazzullo
Strategic Testing Decisions - Build Stuff 2021
francescostrazzullo
0
85
Contract-Driven_Development.pdf
francescostrazzullo
0
600
Domain-Driven Frontend
francescostrazzullo
0
2k
Strategic Testing Decisions
francescostrazzullo
0
350
A DIY Guide To Building Your Own Rendering Engine - CityJS2021
francescostrazzullo
2
94
Technical Decision-making Anti-patterns - Avanscoperta Meetup 2021
francescostrazzullo
0
420
How to Choose Your Next Technology Stack
francescostrazzullo
0
1.6k
The Definition of Framework
francescostrazzullo
1
1.6k
How to Choose Your Next Technology Stack
francescostrazzullo
1
260
Other Decks in Programming
See All in Programming
Temporal Knowledge Graphで作る! 時間変化するナレッジを扱うAI Agentの世界
po3rin
4
970
Server Side Kotlin Meetup vol.16: 内部動作を理解して ハイパフォーマンスなサーバサイド Kotlin アプリケーションを書こう
ternbusty
3
260
Introduce Hono CLI
yusukebe
6
3.2k
はじめてのDSPy - 言語モデルを『プロンプト』ではなく『プログラミング』するための仕組み
masahiro_nishimi
4
17k
When Dependencies Fail: Building Antifragile Applications in a Fragile World
selcukusta
0
110
React Nativeならぬ"Vue Native"が実現するかも?_新世代マルチプラットフォーム開発フレームワークのLynxとLynxのVue.js対応を追ってみよう_Vue Lynx
yut0naga1_fa
2
1.9k
CSC305 Lecture 12
javiergs
PRO
0
240
あなたとKaigi on Rails / Kaigi on Rails + You
shimoju
0
220
3年ぶりにコードを書いた元CTOが Claude Codeと30分でMVPを作った話
maikokojima
0
700
マイベストのシンプルなデータ基盤の話 - Googleスイートとのつき合い方 / mybest-simple-data-architecture-google-nized
snhryt
0
100
O Que É e Como Funciona o PHP-FPM?
marcelgsantos
0
220
開発組織の戦略的な役割と 設計スキル向上の効果
masuda220
PRO
10
1.8k
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
8
320
Into the Great Unknown - MozCon
thekraken
40
2.1k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Practical Orchestrator
shlominoach
190
11k
Music & Morning Musume
bryan
46
6.9k
GraphQLとの向き合い方2022年版
quramy
49
14k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Done Done
chrislema
185
16k
Transcript
A DIY Guide To Building Your Own Rendering Engine
Francesco Strazzullo (AKA Strazz) @TheStrazz86 (Follow me on Twitter!) Ego
Slide
WE DEVELOP DIGITAL PROJECT TOGETHER WITH YOU.
Start With Why
Why should you learn to build a Rendering Engine?
Let me tell you a story...
None
Some years ago, we had to create a new front-end
application on top of an old Java Framework...
None
We couldn’t add new dependencies...
None
The only available libraries were jQuery and underscore
None
We delivered the project, but our team was unhappy
Photo by George Bonev on Unsplash
Microwave spaghetti bolognese by BBC Food
We panicked
“Never Manipulate the DOM” Every JavaScript Developer
Manipulating DOM is hard
None
Manipulating DOM is important for a frontend developer
We should be able to “own” rendering code
None
Principles
Choose a simple Architecture
None
YAGNI (You aren't gonna need it)
“Premature optimization is the root of all evil” Donald Knuth
Performance is UX
None
stats.js http://mrdoob.github.io/stats.js/
None
Eat The Frog
https://github.com/francesco-strazzullo/jdsay-talk-2019
What's next?
Event Handlers
Web Components
What I learned
Manipulating DOM is (not so) hard
A custom Rendering Engine can live in harmony with frameworks
It’s not a black or white solution
How to decide if it’s a good solution?
To be continued... https://medium.com/@TheStrazz86/framework-compass-chart-d3851c25b45d
One last thing...
https://www.apress.com/it/book/9781484249666
http://frameworklessmovement.org/
Thanks! Francesco Strazzullo
[email protected]