SlideShare a Scribd company logo
1 of 49
Simplifying
Microservices & Apps
The art of effortless development
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
Where it all started
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
“Only a genius can control chaos”
- Jules
H.
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
What defines a genius?
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
NOW WHAT ?!
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
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
CHARACTERISTICS OF OVERLY
COMPLEX CODE & CHAOS
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
SINGLE RESPONSIBILITY
PRINCIPLE
A class should have only one reason to change
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
LONG FUNCTIONS & BIG
CLASSES
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
“The ideal length of a function is 1”
- (Sander) Rob
Geurden
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
Long functions & big classes
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
HIGH CYCLOMATIC COMPLEXITY
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
Cyclomatic complexity
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
Cyclomatic complexity
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
Cyclomatic complexity
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
HIGH COUPLING –
LOW COHESION
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
Low cohesion & high coupling
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
Coupling
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
Coupling
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
SHOTGUN SURGERY
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
Shotgun surgery
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
WELL WE’LL JUST REFACTOR
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
Legacy code dilemma
REFACTOR
CODE
TESTS
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
CONSEQUENCES
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
SIMPLE CODE
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
Simplicity
Let’s make software development easy again
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
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
YAGNI
DON’T WRITE CODE YOU THINK YOU MIGHT NEED AT A CERTAIN POINT
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
MICROSERVICES
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
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
High cohesion, Low coupling & Open-Closed
principle
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
MY FIRST MICROSERVICE
2015
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
My first microservice
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
MISTAKES
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
The iteration of simplicity
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
INTRODUCING EASY
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
OPEN-SOURCE EVOLUTIONARY
ARCHITECTURE
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
“The easiest framework to build robust and
stable microservices in TypeScript on
node.js”
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
EASY ARCHITECTURE
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
STRUCTURE of a EASY Microservice
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
DOMAIN: ENTITIES | VALUE OBJECTS | ENUMS
DOMAIN: REPOSITORIES | TYPO’S
PROCESS: USE CASES
SERVICE: RESOURCES | VIEWS
DATA: SERVICE, MONGO, SQL GATEWAYS | VIEWS
EXT: EXTERNAL DETAILS
STRUCTURE of a EASY Microservice
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
DEMO
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
RECAP
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
A CALL TO ARMS
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
Q&A
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024
References
https://www.robgeurden.com
https://speakerdeck.com/robgeurden/simplifying-microservices-
an-introduction-to-the-easy-library
https://www.linkedin.com/in/robgeurden
@robgeurden
https://github.com/thisisagile/easy
https://github.com/robgeurden
Rob Geurden | Simplifying Microservices & Apps | JS Meetup - Eindhoven | April 2024

More Related Content

Similar to Simplifying Microservices & Apps - The art of effortless development - Meetup Eindhoven April 2024.pptx

MobileDevCamp2012 - Titanium Appcelerator
MobileDevCamp2012 - Titanium AppceleratorMobileDevCamp2012 - Titanium Appcelerator
MobileDevCamp2012 - Titanium Appceleratormobiledevcamp
 
Strategies for efficient delivery with APIs, containers, Microservices and De...
Strategies for efficient delivery with APIs, containers, Microservices and De...Strategies for efficient delivery with APIs, containers, Microservices and De...
Strategies for efficient delivery with APIs, containers, Microservices and De...Sven Bernhardt
 
DataDevOps - A Manifesto on Shared Data Responsibility in Times of Microservices
DataDevOps - A Manifesto on Shared Data Responsibility in Times of MicroservicesDataDevOps - A Manifesto on Shared Data Responsibility in Times of Microservices
DataDevOps - A Manifesto on Shared Data Responsibility in Times of MicroservicesDr. Arif Wider
 
Global Energy Management Specialist, Schneider Electric, Uses Enterprise Soci...
Global Energy Management Specialist, Schneider Electric, Uses Enterprise Soci...Global Energy Management Specialist, Schneider Electric, Uses Enterprise Soci...
Global Energy Management Specialist, Schneider Electric, Uses Enterprise Soci...tibbr
 
Strategies for efficient delivery with APIs containers micro services and DevOps
Strategies for efficient delivery with APIs containers micro services and DevOpsStrategies for efficient delivery with APIs containers micro services and DevOps
Strategies for efficient delivery with APIs containers micro services and DevOpsSven Bernhardt
 
DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...
DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...
DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...David Dawson
 
User Experience Programme showcase lightening talks
User Experience Programme showcase lightening talksUser Experience Programme showcase lightening talks
User Experience Programme showcase lightening talksNeil Allison
 
IoT Architecture - are traditional architectures good enough or do we need n...
 IoT Architecture - are traditional architectures good enough or do we need n... IoT Architecture - are traditional architectures good enough or do we need n...
IoT Architecture - are traditional architectures good enough or do we need n...Guido Schmutz
 
DevOps Indonesia Community 2020 - Codex
DevOps Indonesia Community 2020 - CodexDevOps Indonesia Community 2020 - Codex
DevOps Indonesia Community 2020 - CodexDevOps Indonesia
 
Building Scalable Web Applications using Microservices Architecture and NodeJ...
Building Scalable Web Applications using Microservices Architecture and NodeJ...Building Scalable Web Applications using Microservices Architecture and NodeJ...
Building Scalable Web Applications using Microservices Architecture and NodeJ...Mitoc Group
 
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...NodejsFoundation
 
The App Evolution
The App EvolutionThe App Evolution
The App EvolutionDev_Events
 
Meeting the Needs of the Global Community
Meeting the Needs of the Global CommunityMeeting the Needs of the Global Community
Meeting the Needs of the Global CommunityEricsson
 
Create Event-Driven iOS Apps Using IBM Mobile Foundation, OpenWhisk Runtime a...
Create Event-Driven iOS Apps Using IBM Mobile Foundation, OpenWhisk Runtime a...Create Event-Driven iOS Apps Using IBM Mobile Foundation, OpenWhisk Runtime a...
Create Event-Driven iOS Apps Using IBM Mobile Foundation, OpenWhisk Runtime a...Vidyasagar Machupalli
 
INTERFACE, by apidays - How to grow your API Consumers.pptx
INTERFACE, by apidays - How to grow your API Consumers.pptxINTERFACE, by apidays - How to grow your API Consumers.pptx
INTERFACE, by apidays - How to grow your API Consumers.pptxapidays
 

Similar to Simplifying Microservices & Apps - The art of effortless development - Meetup Eindhoven April 2024.pptx (20)

MobileDevCamp2012 - Titanium Appcelerator
MobileDevCamp2012 - Titanium AppceleratorMobileDevCamp2012 - Titanium Appcelerator
MobileDevCamp2012 - Titanium Appcelerator
 
Strategies for efficient delivery with APIs, containers, Microservices and De...
Strategies for efficient delivery with APIs, containers, Microservices and De...Strategies for efficient delivery with APIs, containers, Microservices and De...
Strategies for efficient delivery with APIs, containers, Microservices and De...
 
Node.js Web Development
Node.js Web DevelopmentNode.js Web Development
Node.js Web Development
 
DataDevOps - A Manifesto on Shared Data Responsibility in Times of Microservices
DataDevOps - A Manifesto on Shared Data Responsibility in Times of MicroservicesDataDevOps - A Manifesto on Shared Data Responsibility in Times of Microservices
DataDevOps - A Manifesto on Shared Data Responsibility in Times of Microservices
 
Global Energy Management Specialist, Schneider Electric, Uses Enterprise Soci...
Global Energy Management Specialist, Schneider Electric, Uses Enterprise Soci...Global Energy Management Specialist, Schneider Electric, Uses Enterprise Soci...
Global Energy Management Specialist, Schneider Electric, Uses Enterprise Soci...
 
Strategies for efficient delivery with APIs containers micro services and DevOps
Strategies for efficient delivery with APIs containers micro services and DevOpsStrategies for efficient delivery with APIs containers micro services and DevOps
Strategies for efficient delivery with APIs containers micro services and DevOps
 
DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...
DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...
DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...
 
Latest cv
Latest cvLatest cv
Latest cv
 
User Experience Programme showcase lightening talks
User Experience Programme showcase lightening talksUser Experience Programme showcase lightening talks
User Experience Programme showcase lightening talks
 
IoT Architecture - are traditional architectures good enough or do we need n...
 IoT Architecture - are traditional architectures good enough or do we need n... IoT Architecture - are traditional architectures good enough or do we need n...
IoT Architecture - are traditional architectures good enough or do we need n...
 
DevOps Indonesia Community 2020 - Codex
DevOps Indonesia Community 2020 - CodexDevOps Indonesia Community 2020 - Codex
DevOps Indonesia Community 2020 - Codex
 
Microservices
MicroservicesMicroservices
Microservices
 
Building Scalable Web Applications using Microservices Architecture and NodeJ...
Building Scalable Web Applications using Microservices Architecture and NodeJ...Building Scalable Web Applications using Microservices Architecture and NodeJ...
Building Scalable Web Applications using Microservices Architecture and NodeJ...
 
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
 
The App Evolution
The App EvolutionThe App Evolution
The App Evolution
 
Meeting the Needs of the Global Community
Meeting the Needs of the Global CommunityMeeting the Needs of the Global Community
Meeting the Needs of the Global Community
 
Create Event-Driven iOS Apps Using IBM Mobile Foundation, OpenWhisk Runtime a...
Create Event-Driven iOS Apps Using IBM Mobile Foundation, OpenWhisk Runtime a...Create Event-Driven iOS Apps Using IBM Mobile Foundation, OpenWhisk Runtime a...
Create Event-Driven iOS Apps Using IBM Mobile Foundation, OpenWhisk Runtime a...
 
App Development Evolution: What has changed?
App Development Evolution: What has changed? App Development Evolution: What has changed?
App Development Evolution: What has changed?
 
INTERFACE, by apidays - How to grow your API Consumers.pptx
INTERFACE, by apidays - How to grow your API Consumers.pptxINTERFACE, by apidays - How to grow your API Consumers.pptx
INTERFACE, by apidays - How to grow your API Consumers.pptx
 
Azure Functions
Azure FunctionsAzure Functions
Azure Functions
 

Recently uploaded

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 

Recently uploaded (20)

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 

Simplifying Microservices & Apps - The art of effortless development - Meetup Eindhoven April 2024.pptx

Editor's Notes

  1. BACK IN TIME 10 YEARS – 2014 ROSER BORDER SOFTWARE CHECMICAL & PETRO CORNER OFFICE CODE REVIEW COMPLEX EN CHAOTISCH
  2. PRE-REQ IQ > 140 BELL CURVE > 0.25% > 140 0.2 PERSON IN THIS ROOM 
  3. WE ARENT GENIUSES WE CAN’T CONTROL CHAOS NOR COMPLEXITY NOW WHAT?!?!
  4. 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
  5. IN ORDER TO KNOW WHAT TO AVOID => RECOGNIZE IT WHAT ARE THE TRADEMARKS?!?
  6. VERTEL VANUIT JEZELF SIMPLE !=SIMPLE
  7. SO WHY IS A LONG FUNCTION BAD? SOLID – ONE REASON TO CHANGE
  8. INDICATOR VOOR COMPLEXITEIT
  9. CLEAN CODE – UNCLE BOB – PRETTY OUTDATED… BUT STILL…. WE’VE ALL DONE IT - POINT
  10. STOLE IT… START MET RETURN
  11. WHO KNOWS WHAT THIS IS?
  12. GRAPH => TEST PATHS IF STATEMENT +1 check CASE +N DO UNTIL +1 (REPEAT OR CONTINUE) IF 2
  13. Tom mcCabe DEP HOMELAND SECURITY REMEMBER BELOW 10
  14. MONOLIET
  15. MICROSOFT
  16. WHAT DOES HIGH COUPLING LEAD TO
  17. PARADOX
  18. SO HOW TO SOLVE THIS??
  19. YAGNI
  20. SO HOW DO WE STRUCTURE THIS IF WE CANT DO A MONOLITH??
  21. Open / close principle
  22. 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.
  23. 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
  24. Lagen weg Multiple application zuilbaar Meerdere talen en type storage
  25. Onion shaped architecture
  26. 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
  27. Vast kunnen stellen meerendeel van ons de chaos niet beheerst => Wat nu?
  28. Recap ->Conclusie veel mensen complexity, organisaties te groot, te complex
  29. Way out -> microservice Easy -> Goed bewezen, kijk er naar en ga het gebruiken!