SlideShare a Scribd company logo
What frameworks can do
(and what not)
Robert Lemke - TechDivision GmbH
TEXT HERE
Robert Lemke
!
38 years old
lives in Lübeck, Germany
software architect at TechDivision
TYPO3 Association co-founder
TYPO3 Flow & TYPO3 Neos project founder

1 wife, 2 daughters, 1 espresso machine
Expectations. Promises. Features.
Long Term Relationships.
What do you expect from
your IDE?
What do you expect from

a framework?
„Implement our company website.

It must be based on TYPO3 CMS.”
A framework

is no architecture.
A framework alone

won’t make a great
application.
Promises
„enterprise ready”
„a great community”
„extensible”
„secure”
„PHP is fun again”
„ready for tomorrow”
„based on another cool
framework”
„batteries included”
„… is right for you if you want
to spend more time away from
your computer”
Features
Speed
Frameworks add more
layers of abstraction.
Abstraction layers slow down
your application.
Without a framework,

most likely, you will add these
layers yourself.
Abstraction layers speed up
your application.
your application

starts here
What frameworks can do for you – and what not (IPC14 SE)
What frameworks can do for you – and what not (IPC14 SE)
What frameworks can do for you – and what not (IPC14 SE)
What frameworks can do for you – and what not (IPC14 SE)
speed doesn’t come for free.
Persistence
An ORM layer slows down your
application and is less flexible.
An ORM layer can make your
application less complex and
respond faster.
keeps your domain model
clean.
great caching opportunities.
Don’t implement an ORM –
it’s way too complex to get it right.
Do implement an ORM –
you need to know the inner works.
Do you need an ORM?
A DBAL makes your application
more portable.
Do you need a DBAL?
Used correctly, ORMs can be a
blessing.
Security
A framework can make your
application more secure.
Implementing cryptography
algorithms on your own is

wantonly negligent!
Implementing authentication
and authorisation adapters is
a whole project on its own.
Do you have the

manpower and expertise?
Still, you are responsible for
security.
You need to learn about
security, no matter what.
Guidance
TYPO3FlowCodingGuidelinesononepage
<?php
namespaceAcmeTestPackage;
/* *
*ThisscriptbelongstotheTYPO3Flowpackage"Acme.TestPackage". *
* *
*Itisfreesoftware;youcanredistributeitand/ormodifyitunder *
*thetermsoftheGNUGeneralPublicLicense,eitherversion3ofthe *
*License,or(atyouroption)anylaterversion. *
* *
*TheTYPO3project-inspiringpeopletoshare! *
* */
useAcmeTestPackageServiceFooGenerator;
useTYPO3FlowAnnotationsasFlow;
/**
*Heregoesthedescriptionoftheclass.Itshouldexplainwhatthemain
*purposeofthisclassis...
*
*@FlowScope(”singleton”)
*/
classUniverseAnalyzerextendsBaseClassimplementsSomeInterface{
/**
*Someinjecteddependency
*
*@FlowInject
*@varFooGenerator
*/
protected$someDependency=NULL;
/**
*ShowsifyouareaddictedtoTYPO3Flow
*
*@varboolean
*/
staticprotected$addictedToFlow=TRUE;
/**
*ShowsifyouareafanofTYPO3Flow
*
*@varboolean
*/
protected$fanOfFlow;
/**
*Agreatmethodwhichshowshowtoindentcontrolstructures.
Descriptionoftheclass.Makeitas
longasneeded,feelfreetoexplain
howtouseit.
Namespacestartswithvendorname
followedbypackagekey(name)and
subpartsasneeded
UpperCamelCaseclassname.Class
namesshouldbenouns.
Inotherpackages,import
AcmeTestPackageUniverseAnalyzer
andrefertoitasUniverseAnalyer.
Use@vartag.Optionaldescription
goesinthefirstcommentline
followedbyablankcommentline.
Descriptionofthemethod.Makeit
aslongasneeded.
Methodnamesshouldbeverbs.
Oneusestatementperline.
Oneusestatementpernamespace.
Orderstatementsalphabetically.
Don'timportnamespacesunlessyou
usethem.
NoemptylinebetweenDocComment
andclass,membervarormethod.
Preferrelativenamespaces,unless
FullyQualifiedNamespaceismore
readable
List@Flow*beforeothertags:
@var,@param,@return,@throws,
@api,@since,@deprecated
Capturethejoyofcodingasyou
createexcellentwebsolutions.
Enjoycoding.EnjoyFlow.
http://rlmk.me/flowcgl
What frameworks can do for you – and what not (IPC14 SE)
0 75 150 225 300
Security Speed MVC HTTP Templating i18n
You will have to learn a lot …
start working on
business logic
… the question is: in which order?
0 100 200 300 40
Framework Security Speed MVC HTTP Templating i18n C64 E.
start working on

business logic
But hey, what about Agile?
Bottomline?
Frameworks offer a shortcut
and many features right away.
Going framework-less gives you
more flexibility.
Non-trivial applications will
need a framework sooner or
later.
Only start creating your own
application-specific framework
if you have the experience and
resources.
TEXT HERE
@robertlemke
!
robertlemke.com
flow.typo3.org
techdivision.com

More Related Content

PPTX
Matt carroll - "Security patching system packages is fun" said no-one ever
PDF
Nick Drage & Fraser Scott - Epic battle devops vs security
PPTX
Docker implementation for iot at warung pintar
PDF
BitSensor Webwinkel Vakdagen
PPTX
DEVSECOPS: Coding DevSecOps journey
PPTX
Code review - networkshop44
PPTX
The Journey to DevSecOps
PDF
Security as Code: A DevSecOps Approach
Matt carroll - "Security patching system packages is fun" said no-one ever
Nick Drage & Fraser Scott - Epic battle devops vs security
Docker implementation for iot at warung pintar
BitSensor Webwinkel Vakdagen
DEVSECOPS: Coding DevSecOps journey
Code review - networkshop44
The Journey to DevSecOps
Security as Code: A DevSecOps Approach

What's hot (19)

PPTX
DevSecOps IT Modernization Training Bootcamp for Security Staff, IT Leadership
PDF
Intergen Smarts 9 (2005)
PDF
Building Security Controls around Attack Models
PDF
AppSec How-To: Achieving Security in DevOps
PPTX
Top 5 Priorities for Cloud Security
PPTX
Lessons learned from Detroit to Deming by Derek Weeks
PDF
Shifting Security Left - The Innovation of DevSecOps - AgileDC
PPTX
HouSecCon 2019: Offensive Security - Starting from Scratch
PPTX
AWS Security Ideas - re:Invent 2016
PDF
Henrique Dantas - API fuzzing using Swagger
PDF
AWS live hack: Docker + Snyk Container on AWS
PDF
Building a Modern Security Engineering Organization
PDF
Application Security at DevOps Speed - DevOpsDays Singapore 2016
PPTX
Shifting Security Left from the Lean+Agile 2019 Conference
PPTX
PyConPL 2017 - with python: security
PDF
Integrating DevOps and Security
PPTX
Shifting security all day dev ops
PDF
Shifting Security Left - The Innovation of DevSecOps - ValleyTechCon
PDF
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA Program
DevSecOps IT Modernization Training Bootcamp for Security Staff, IT Leadership
Intergen Smarts 9 (2005)
Building Security Controls around Attack Models
AppSec How-To: Achieving Security in DevOps
Top 5 Priorities for Cloud Security
Lessons learned from Detroit to Deming by Derek Weeks
Shifting Security Left - The Innovation of DevSecOps - AgileDC
HouSecCon 2019: Offensive Security - Starting from Scratch
AWS Security Ideas - re:Invent 2016
Henrique Dantas - API fuzzing using Swagger
AWS live hack: Docker + Snyk Container on AWS
Building a Modern Security Engineering Organization
Application Security at DevOps Speed - DevOpsDays Singapore 2016
Shifting Security Left from the Lean+Agile 2019 Conference
PyConPL 2017 - with python: security
Integrating DevOps and Security
Shifting security all day dev ops
Shifting Security Left - The Innovation of DevSecOps - ValleyTechCon
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA Program
Ad

Similar to What frameworks can do for you – and what not (IPC14 SE) (20)

PDF
Tiếng Anh công nghệ thông tin VHU Tuần 5
PDF
Product! - The road to production deployment
PDF
Securing Cloud Applications Meap V03 Chapters 1 To 6 Of 23 Adib Saikali
PDF
Droidcon it-2014-marco-grassi-viaforensics
PPTX
SAME Expo Presentation
PPTX
Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...
PDF
Patterns And Practices For Infrastructure As Code With Examples In Python And...
PDF
Moxa white paper---Using Sample Code to Develop Embedded Applications
KEY
TxJS 2011
PDF
Software Engineering for Data Scientists (MEAP V2) Andrew Treadway
DOCX
Webinar Security: Apps of Steel transcription
PDF
IRJET- Development of Uncrackable Software
PPTX
Generating SBOMS FROM FOSS_(Detecting OSS licences)
PDF
System design for Web Application
PDF
Realtime Embedded Multithreading Using Threadx And Mips Edward L Lamie Auth
PDF
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
PPTX
Machine learning in cybersecutiry
PDF
Securing a Cloud Migration
PDF
Securing a Cloud Migration
Tiếng Anh công nghệ thông tin VHU Tuần 5
Product! - The road to production deployment
Securing Cloud Applications Meap V03 Chapters 1 To 6 Of 23 Adib Saikali
Droidcon it-2014-marco-grassi-viaforensics
SAME Expo Presentation
Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...
Patterns And Practices For Infrastructure As Code With Examples In Python And...
Moxa white paper---Using Sample Code to Develop Embedded Applications
TxJS 2011
Software Engineering for Data Scientists (MEAP V2) Andrew Treadway
Webinar Security: Apps of Steel transcription
IRJET- Development of Uncrackable Software
Generating SBOMS FROM FOSS_(Detecting OSS licences)
System design for Web Application
Realtime Embedded Multithreading Using Threadx And Mips Edward L Lamie Auth
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
Machine learning in cybersecutiry
Securing a Cloud Migration
Securing a Cloud Migration
Ad

More from Robert Lemke (20)

PDF
Neos Content Repository – Git for content
PDF
A General Purpose Docker Image for PHP
PDF
Scaleable PHP Applications in Kubernetes
PDF
Flownative Beach - Neos Meetup Hamburg 2022
PDF
GitOps with Flux - IPC Munich 2022
PDF
OpenID Connect with Neos and Flow
PDF
Neos Conference 2019 Keynote
PDF
A practical introduction to Kubernetes (IPC 2018)
PDF
Neos Conference 2018 Welcome Keynote
PDF
A practical introduction to Event Sourcing and CQRS
PDF
Neos Conference 2017 Welcome Keynote
PDF
IPC16: A Practical Introduction to Kubernetes
PDF
IPC 2016: Content Strategy for Developers
PDF
Docker in Production - IPC 2016
PDF
Is this Open Source Thing Really Worth it? (IPC 2016 Berlin)
PDF
The Neos Brand (Inspiring Conference 2016)
PDF
Neos - past, present, future (Inspiring Conference 2016)
PDF
Meet Neos Nürnberg 2016: Ja ich will!
PDF
Meet Neos Nürnberg 2016: Hallo Neos!
PDF
Turning Neos inside out / React.js HH
Neos Content Repository – Git for content
A General Purpose Docker Image for PHP
Scaleable PHP Applications in Kubernetes
Flownative Beach - Neos Meetup Hamburg 2022
GitOps with Flux - IPC Munich 2022
OpenID Connect with Neos and Flow
Neos Conference 2019 Keynote
A practical introduction to Kubernetes (IPC 2018)
Neos Conference 2018 Welcome Keynote
A practical introduction to Event Sourcing and CQRS
Neos Conference 2017 Welcome Keynote
IPC16: A Practical Introduction to Kubernetes
IPC 2016: Content Strategy for Developers
Docker in Production - IPC 2016
Is this Open Source Thing Really Worth it? (IPC 2016 Berlin)
The Neos Brand (Inspiring Conference 2016)
Neos - past, present, future (Inspiring Conference 2016)
Meet Neos Nürnberg 2016: Ja ich will!
Meet Neos Nürnberg 2016: Hallo Neos!
Turning Neos inside out / React.js HH

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Electronic commerce courselecture one. Pdf
PPTX
Machine Learning_overview_presentation.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Encapsulation theory and applications.pdf
PPTX
Spectroscopy.pptx food analysis technology
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Big Data Technologies - Introduction.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
cuic standard and advanced reporting.pdf
MYSQL Presentation for SQL database connectivity
Reach Out and Touch Someone: Haptics and Empathic Computing
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Electronic commerce courselecture one. Pdf
Machine Learning_overview_presentation.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
NewMind AI Weekly Chronicles - August'25-Week II
Encapsulation_ Review paper, used for researhc scholars
Encapsulation theory and applications.pdf
Spectroscopy.pptx food analysis technology
“AI and Expert System Decision Support & Business Intelligence Systems”
Diabetes mellitus diagnosis method based random forest with bat algorithm
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Machine learning based COVID-19 study performance prediction
Big Data Technologies - Introduction.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
cuic standard and advanced reporting.pdf

What frameworks can do for you – and what not (IPC14 SE)