SlideShare a Scribd company logo
THE ART OF #FRAMEWORKLESS
IN THE BACKEND
Matteo Vaccari
@xpmatteo
Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018
Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018
Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018
Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018
Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018
Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018
Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018
Frameworks?
Risk
Functionality
Performance
Obsolescence
Incompatibilities
Developer
Experience
App startup time
Test running timeThe bad
The good
Learning
Standardisation
Bad habits
DB-Centric
Quick project startup
Extra work
Upgrades
Searching on
Stackoverflow
for answers
Addiction
Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018
Creating a new game
First guess: the letter “e”
Second guess: the letter “t”
Etc, etc…
Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018
Spring/JPA
(Spring
MVC)
Controller
Embedded
Tomcat
Spring
MVC
Servlet
(Spring)
Application
Service
(JPA)
Repository
Emtity
Manager DB
Our router
Embedded
Jetty
Our Servlet
Our
Application
Service
Our
Repository
JDBC DB
Domain
Objects
Domain
Objects
Domain
Objects
Domain
Objects
Domain
Objects
Domain
Objects
Domain
Objects
Domain
Objects
Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018
Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018
Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018
Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018
Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018
Spring/JPA
No Spring/No JPA
(Spring
MVC)
Controller
Embedded
Tomcat
Spring
MVC
Servlet
(Spring)
Application
Service
(JPA)
Repository
Emtity
Manager DB
Our router
Embedded
Jetty
Our Servlet
Our
Application
Service
Our
Repository
JDBC DB
Domain
Objects
Domain
Objects
Domain
Objects
Domain
Objects
Domain
Objects
Domain
Objects
Domain
Objects
Domain
Objects
HttpServletRequest
HttpServletResponse
HttpServletRequest
HttpServletResponse
WebRequest
WebResponse
HttpServletRequest
HttpServletResponse
WebRequest
WebResponse
GameResponse
x
HttpStatus
GuessRequest
Main
The “Main Partition”
The Router
The Router, part II
The Application Service
The Domain Objects
The Application Service
The Game Repository
The Web Request
The Guess Request
Spring/JPA Spring/— —/—
Server startup
time
~6s ~3s 0.4s
Time to run all
tests
10s 5.5s 3.5s
Time to run
slowest test
7s 4-5s 1s
# of tests 25 24 48
SLOC prod 360 424 643
SLOC test 358 357 745
jar size 30MB 17MB 6.3MB
Frameworks?
Risk
Functionality
Performance
Obsolescence
Incompatibilities
Developer
Experience
App startup time
Test running timeThe bad
The good
Learning
Standardisation
Bad habits
DB-Centric
Quick project startup
Extra work
Upgrades
Searching on
Stackoverflow
for answers
Addiction
References
https://github.com/xpmatteo/frameworkless-hangman
https://github.com/frameworkless-movement/manifesto
38
twitter.com/xpmatteo
thoughtworks.com
THANK YOU
WE ARE HIRING!
YES, IN ITALY!
How do we save a “guess”?
The Web Response

More Related Content

PPTX
Cakephp vs. laravel
PDF
A pitfall when writing an asynchronous web application with Spring and Tomcat
PPT
Reducing Build Time
PPT
VodQA_ParallelizingCukes_AmanKing
PDF
React Testing
PPTX
React gsg presentation with ryan jung & elias malik
PDF
Vijay & Supriya - Test your service not your ui
PPTX
How to double .net code value
Cakephp vs. laravel
A pitfall when writing an asynchronous web application with Spring and Tomcat
Reducing Build Time
VodQA_ParallelizingCukes_AmanKing
React Testing
React gsg presentation with ryan jung & elias malik
Vijay & Supriya - Test your service not your ui
How to double .net code value

What's hot (20)

PPTX
JavaOne 2015: Top Performance Patterns Deep Dive
PPTX
Testing with laravel
PDF
How to debug slow lambda response times
PDF
Server side story
PPTX
A Minimalist’s Attempt at Building a Distributed Application
PPTX
Do you queue (updated)
PPTX
Slideshare - Magento Imagine - Do You Queue
PDF
Using Machine Learning on K8s Logs to Find Root Cause Faster
PDF
How to go about testing in React?
PPTX
PHP Frameworks, or how I learnt to stop worrying and love the code
PPTX
Discovering the Service Fabric's actor model
PPTX
Take Full Advantage of the Oracle PL/SQL Compiler
PDF
Stateful patterns in Azure Functions
PDF
Building Autonomous Services
PDF
Workflow as code with Azure Durable Functions
PPTX
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
PDF
Your First Scala Web Application using Play 2.1
PPTX
Building Apis in Scala with Playframework2
PDF
Durable Functions vs Logic App : la guerra dei workflow!!
PPTX
2 selenium-aakar gupte
JavaOne 2015: Top Performance Patterns Deep Dive
Testing with laravel
How to debug slow lambda response times
Server side story
A Minimalist’s Attempt at Building a Distributed Application
Do you queue (updated)
Slideshare - Magento Imagine - Do You Queue
Using Machine Learning on K8s Logs to Find Root Cause Faster
How to go about testing in React?
PHP Frameworks, or how I learnt to stop worrying and love the code
Discovering the Service Fabric's actor model
Take Full Advantage of the Oracle PL/SQL Compiler
Stateful patterns in Azure Functions
Building Autonomous Services
Workflow as code with Azure Durable Functions
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
Your First Scala Web Application using Play 2.1
Building Apis in Scala with Playframework2
Durable Functions vs Logic App : la guerra dei workflow!!
2 selenium-aakar gupte
Ad

Similar to Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018 (20)

PPTX
java web framework standard.20180412
PPTX
Introduction to j2 ee frameworks
PPTX
Spring MVC framework
PPTX
Spring Framework Rohit
PDF
apart Framework: Porting from VisualWorks
PPT
Spring - a framework written by developers
PPT
Spring ppt
PDF
Lublin Startup Festival - Mobile Architecture Design Patterns
PPT
Spring Framework
PPTX
Web frameworks
PDF
The Future Of Web Frameworks
PPTX
The Case Against Frameworks - JFall 2023
PPTX
SoftwareUniversity seminar fast REST Api with Spring
PPTX
Introduction to Spring Framework
PDF
Selecting the Best Javascript Web Framework
PDF
Spring presentecion isil
PDF
Spring presentecion isil
PDF
Rasmus, Think Again! Agile Framework == Happy Php Developer
PDF
Introduction to Web Frameworks
PPT
Developing Java Web Applications
java web framework standard.20180412
Introduction to j2 ee frameworks
Spring MVC framework
Spring Framework Rohit
apart Framework: Porting from VisualWorks
Spring - a framework written by developers
Spring ppt
Lublin Startup Festival - Mobile Architecture Design Patterns
Spring Framework
Web frameworks
The Future Of Web Frameworks
The Case Against Frameworks - JFall 2023
SoftwareUniversity seminar fast REST Api with Spring
Introduction to Spring Framework
Selecting the Best Javascript Web Framework
Spring presentecion isil
Spring presentecion isil
Rasmus, Think Again! Agile Framework == Happy Php Developer
Introduction to Web Frameworks
Developing Java Web Applications
Ad

More from Codemotion (20)

PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
PDF
Pompili - From hero to_zero: The FatalNoise neverending story
PPTX
Pastore - Commodore 65 - La storia
PPTX
Pennisi - Essere Richard Altwasser
PPTX
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
PPTX
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
PPTX
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
PPTX
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
PDF
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
PDF
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
PDF
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
PDF
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
PDF
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
PDF
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
PPTX
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
PPTX
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
PDF
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
PDF
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
PDF
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
PDF
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Pompili - From hero to_zero: The FatalNoise neverending story
Pastore - Commodore 65 - La storia
Pennisi - Essere Richard Altwasser
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
A Presentation on Artificial Intelligence
PPTX
Spectroscopy.pptx food analysis technology
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Spectral efficient network and resource selection model in 5G networks
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Machine Learning_overview_presentation.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
cuic standard and advanced reporting.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
A Presentation on Artificial Intelligence
Spectroscopy.pptx food analysis technology
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Programs and apps: productivity, graphics, security and other tools
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Diabetes mellitus diagnosis method based random forest with bat algorithm
Per capita expenditure prediction using model stacking based on satellite ima...
Spectral efficient network and resource selection model in 5G networks
“AI and Expert System Decision Support & Business Intelligence Systems”
MIND Revenue Release Quarter 2 2025 Press Release
20250228 LYD VKU AI Blended-Learning.pptx
Machine Learning_overview_presentation.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
cuic standard and advanced reporting.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf

Matteo Vaccari - Going Frameworkless in the Backend - Codemotion Milan 2018