Operation Monolith Breaker
L-mobile I Digitalisierte Softwarelösungen
Imre Szecsődi
Friday, 25.03.2022
Table of content
L-mobile I Digitalisierte Softwarelösungen
- What?
- Why?
- How?
What?
L-mobile I Digitalisierte Softwarelösungen
- Video calling plugin is a monolith
- Knockout has a loose idea about component nesting
- Separation of concern
- Re-usability
- Complexity
What?
L-mobile I Digitalisierte Softwarelösungen
- What is actually good about Knockout?
- 2-way bindings
- Observables
- SSR
- What is bad about Knockout?
What?
L-mobile I Digitalisierte Softwarelösungen
- What is actually good about Knockout?
- 2-way bindings
- Observables
- SSR
- Whats bad about Knockout?
What?
L-mobile I Digitalisierte Softwarelösungen
- What is actually good about Knockout?
- 2-way bindings
- Observables
- SSR
- Whats bad about Knockout?
What?
L-mobile I Digitalisierte Softwarelösungen
- What is actually good about Knockout?
- 2-way bindings
- Observables
- SSR
- Whats bad about Knockout?
What?
L-mobile I Digitalisierte Softwarelösungen
- What actually good about Knockout?
- 2-way bindings
- Observables
- SSR
- Whats bad about Knockout?
What?
L-mobile I Digitalisierte Softwarelösungen
- What actually good about Knockout?
- 2-way bindings
- Observables
- SSR
- Whats bad about Knockout?
What?
L-mobile I Digitalisierte Softwarelösungen
- Want to access DOM elements directly, without binding?
What?
L-mobile I Digitalisierte Softwarelösungen
- Knockout is lacking flexibly
- Lets see use cases outside "almost always", where you actually need references:
- HTMLVideoElement
- HTMLAudioElement
- Editable DIV
- HTMLCanvasElement
- Knockout lacks binding error debugging
- Which is coming from, lack of js checking in the templates
Why?
L-mobile I Digitalisierte Softwarelösungen
- This is fine, it works as intended
- We loosing time and money by fight the framework
- We write sub-optimal code, because of it
- Why do I want to see change?
- To spare time
- Effort
- Brain cells
- Sanity
- And the solution is...
React
L-mobile I Digitalisierte Softwarelösungen
Preact
L-mobile I Digitalisierte Softwarelösungen
Why?
L-mobile I Digitalisierte Softwarelösungen
- Why React?
- It is the adoptable framework out there, and most used one
- Why Preact not React?
- Some parts are more convenient
- Has Compatibility option for React
- There is no synthetic event handler, native browser API is used
- Its 4kb, and a complete package, with react, you need also React DOM
- What if we got limited by Preact?
- Unlikely, mayor libraries work out of the box
How?
L-mobile I Digitalisierte Softwarelösungen
- How much effort is the setup?
const config = {
//...snip
"resolve": {
"alias": {
"react": "preact/compat",
"react-dom/test-utils": "preact/test-utils",
"react-dom": "preact/compat", // Must be below test-utils
"react/jsx-runtime": "preact/jsx-runtime"
},
}
}
{
"compilerOptions": {
"jsx": "react-jsx",
"jsxImportSource": "preact",
}
}
npm i preact
How?
L-mobile I Digitalisierte Softwarelösungen
- How much effort is to learn it?
How?
L-mobile I Digitalisierte Softwarelösungen
- How much effort is to learn it?~4-20 hours
How?
L-mobile I Digitalisierte Softwarelösungen
Demonstration
How?
L-mobile I Digitalisierte Softwarelösungen
- Resources
- https://preactjs.com/
- https://reactjs.org/
- https://youtu.be/Dorf8i6lCuk - React Crash Course for Beginners 2021
- https://youtu.be/Tn6-PIqc4UM - React in 100 Seconds
- https://youtu.be/TNhaISOUy6Q - 10 React Hooks Explained
- https://github.com/enaqx/awesome-react
Any questions?
L-mobile I Digitalisierte Softwarelösungen
Copy of deck
By Imre Secodi
Copy of deck
- 78