Microservices are hot, and the monolith is dead, but navigating the transition can feel like taming chaos.
As a colleague of mine once said, "only a genius can control chaos." Since only 0.25% of the population can officially call themselves geniuses, it's better to keep our code simple.
In this session, I've got your back, not only showing you the ropes on how to effortlessly craft a well-structured microservice using our open-source library, Easy, but also extending these principles to the front-end. That's right, the patterns we'll explore are not confined to the backend; I will guide you through applying the same structured approach to building resilient, well-organized front-ends as well.
This integrated approach aims to demystify both ends of development, backed by my own personal journey towards creating "Easy software".
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Simplifying Microservices & Apps - The art of effortless development - Meetup Eindhoven April 2024.pptx
1. Simplifying
Microservices & Apps
The art of effortless development
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
2. Where it all started
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
3. “Only a genius can control chaos”
- Jules
H.
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
4. What defines a genius?
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
5. NOW WHAT ?!
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
6. Independent developer / (solution
architect)
Rob Geurden
robgeurden
robgeurden@gmail.com
iBOOD
@robgeurden
https://github.com/robgeurd
en
https://www.robgeurden.com
/
RG-IT B.V. & T2-Software B.V
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
8. Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
9. SINGLE RESPONSIBILITY
PRINCIPLE
A class should have only one reason to change
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
10. LONG FUNCTIONS & BIG
CLASSES
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
11. Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
12. “The ideal length of a function is 1”
- (Sander) Rob
Geurden
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
13. Long functions & big classes
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
27. SIMPLE CODE
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
28. Simplicity
Let’s make software development easy again
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
29. Simple code
Easy to
read
Easy to
adjust
Shorter is
Better
Low
coupling
high
cohesion
No
premature
abstraction
s
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
30. YAGNI
DON’T WRITE CODE YOU THINK YOU MIGHT NEED AT A CERTAIN POINT
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
32. suite of small services,
running in its own process
communicating with lightweight mechanisms
built around business capabilities
independently deployable
by fully automated deployment machinery
- Fowler
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
33. High cohesion, Low coupling & Open-Closed
principle
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
41. “The easiest framework to build robust and
stable microservices in TypeScript on
node.js”
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
BACK IN TIME 10 YEARS – 2014
ROSER
BORDER
SOFTWARE CHECMICAL & PETRO
CORNER OFFICE
CODE REVIEW
COMPLEX EN CHAOTISCH
PRE-REQ IQ > 140
BELL CURVE > 0.25% > 140
0.2 PERSON IN THIS ROOM
WE ARENT GENIUSES
WE CAN’T CONTROL CHAOS NOR COMPLEXITY
NOW WHAT?!?!
ROB
DEV & ARCH
WORK WITH SANDER @IBOOD in AMSTERDAM
PROGAMMING FOR NEARLY 20 YEARS
I HOPE TO INSPIRE YOU TO BUILD EASIER SOFTWARE AND MAYBE TRYOUT OR OPEN SOURCE FRAMEWORK EASY IN THE PROCESS
IK HOOP JULLIE MET DEZE TALK TE INSPIREREN EN OP TE ROEPEN OM EENVOUDIGERE CODE TE GAAN SCHRIJVEN. LIEFTST
IN ORDER TO KNOW WHAT TO AVOID => RECOGNIZE IT
WHAT ARE THE TRADEMARKS?!?
VERTEL VANUIT JEZELF
SIMPLE !=SIMPLE
SO WHY IS A LONG FUNCTION BAD?
SOLID – ONE REASON TO CHANGE
INDICATOR VOOR COMPLEXITEIT
CLEAN CODE – UNCLE BOB – PRETTY OUTDATED…
BUT STILL….
WE’VE ALL DONE IT - POINT
STOLE IT…
START MET RETURN
WHO KNOWS WHAT THIS IS?
GRAPH => TEST PATHS
IF STATEMENT +1
check CASE +N
DO UNTIL +1 (REPEAT OR CONTINUE)
IF 2
Tom mcCabe DEP HOMELAND SECURITY
REMEMBER BELOW 10
MONOLIET
MICROSOFT
WHAT DOES HIGH COUPLING LEAD TO
PARADOX
SO HOW TO SOLVE THIS??
YAGNI
SO HOW DO WE STRUCTURE THIS IF WE CANT DO A MONOLITH??
Open / close principle
Worked for a company.
*Talk a bit about Roser
*25 developers working on the same monolith.
*Started of with 2 developers grew over a period of 10 years
*10 million line of untested win forms code
*We had to make a mobile app…
Good luck with that.
We figured out that we needed help and asked Sander.
Basically, a chained microservice pattern done wrong
No logging
Everything was calling everything – Bad domain composition
Single database, was single point of failure – lock from the other application using it caused issues
Scaling microservice flooded the connection pool
We didn’t mature the pipeline well enough
Etc… We made all kinds of mistakes
We learned at least that’s what we thought
Lagen weg
Multiple application zuilbaar
Meerdere talen en type storage
Onion shaped architecture
Domain driven design
Hart van de microservices
Entiteiten, value objects, enums
Aan de buitenkant zit de scheiding tussen je domein en de buiten wereld in easy Meestal een repository of een typo
Vast kunnen stellen meerendeel van ons de chaos niet beheerst => Wat nu?
Recap ->Conclusie veel mensen complexity, organisaties te groot, te complex
Way out -> microservice
Easy -> Goed bewezen, kijk er naar en ga het gebruiken!