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
410
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
82
Contract-Driven_Development.pdf
francescostrazzullo
0
590
Domain-Driven Frontend
francescostrazzullo
0
1.8k
Strategic Testing Decisions
francescostrazzullo
0
350
A DIY Guide To Building Your Own Rendering Engine - CityJS2021
francescostrazzullo
2
90
Technical Decision-making Anti-patterns - Avanscoperta Meetup 2021
francescostrazzullo
0
420
How to Choose Your Next Technology Stack
francescostrazzullo
0
1.5k
The Definition of Framework
francescostrazzullo
1
1.4k
How to Choose Your Next Technology Stack
francescostrazzullo
1
260
Other Decks in Programming
See All in Programming
Go Modules: From Basics to Beyond / Go Modulesの基本とその先へ
kuro_kurorrr
0
110
Cloudflare Realtime と Workers でつくるサーバーレス WebRTC
nekoya3
0
390
Cursor Meetup Tokyo ゲノミクスとCursor: 進化と制約のあいだ
koido
2
980
ReadMoreTextView
fornewid
1
360
Go1.25からのGOMAXPROCS
kuro_kurorrr
0
160
Perlで痩せる
yuukis
1
680
Spring gRPC で始める gRPC 入門 / Introduction to gRPC with Spring gRPC
mackey0225
2
490
技術懸念に立ち向かい 法改正を穏便に乗り切った話
pop_cashew
0
1.3k
コード書くの好きな人向けAIコーディング活用tips #orestudy
77web
3
300
Bytecode Manipulation 으로 생산성 높이기
bigstark
1
290
PT AI без купюр
v0lka
0
230
統一感のある Go コードを生成 AI の力で手にいれる
otakakot
0
3k
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
123
52k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.6k
How to train your dragon (web standard)
notwaldorf
92
6.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Rails Girls Zürich Keynote
gr2m
94
14k
GitHub's CSS Performance
jonrohan
1031
460k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
650
How to Think Like a Performance Engineer
csswizardry
24
1.7k
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]