2. Ke e s Ha ve rk a m p
Tech strateeg – fintech & proptech
Innovation manager @ Tjip
Founder Newest Industry
Co-founder Faster Forward (2003-2013)
Author/public speaker.; TU Delft, Frankwatching.com,
AM, IIR artificial intelligence, MT, VVP, NRC.
19. W h o a re yo u ?
• Ralph Hendriks
• Twitter: @ralph_hendriks
• GitHub: https://github.com/ralphhendriks
• Software developer > 10 years
• .NET, C#, DDD, OO Design
• Electrical Power Engineering
• IOT enthusiast
• No smart folks, just the folks in the room
20. Ag e n d a
• SPAs, why and how?
• SPA criticism, revisited:
• SPAs break browsers
• SPAs break the web
• SPAs don’t scale
• Coupling and cohesion
• SPAs are slow
• Alternatives
21. Tw o Blo g s
The Bullshit Web (https://tinyurl.com/BullshitWeb)
Nick Heer, 30 July 2018
Why I hate your Single Page App (https://tinyurl.com/WhyIHateYourSPA)
Stefan Tilkov, 13 January 2016
22. SPAs , w h a t a n d w h y?
• Dynamically rewriting the current page
• No page reloads
• Single load or dynamic load
• Opposed to page-redraw method
• Patented!
23. SPAs b re a k b ro w s e rs
• History (back, forward, browser history)
• HTML5 History API
• Persistent and durable links
• Client-side routing
• Heavily leaning on JavaScript
• Progressive enhancement vs. graceful degradation
28. SPAs d o n ’t s ca le
• How many two-pizza teams can develop one SPA?
• FE/BE team separation first
• Vertical slices
• FE composition
29. Co u p lin g a n d Co h e s io n
• Coupling is the property that one module is forced to change
because another does
• Cohesion is the property that a module is subject to the same
forces of change
• Domain logic vs. application logic
30. SPAs a re s lo w
Rendering on the Web (https://tinyurl.com/RenderingOnTheWeb)
Jason Miller, Addy Osmani, February 2016
31. Alt e rn a t ive s
Resource-Oriented Client Architecture (https://roca-style.org/)
Self-Contained Systems (https://scs-architecture.org/)
Micro frontends
32.
33. Fro m le g a cy t e ch n o lo g y t o a
n e w s t a t e o f a rt
Migration of a large webapplication from
AngularJS to Angular
34. My story
For me, programming is just learning a new
language
• Sinologist
• First grade teacher
• Software developer