SlideShare a Scribd company logo
Fluent Development with FLOW3
T3CON10, Dallas (Texas)
The FLOW3 experience
  Flow [flō] The mental state of operation in which the person is fully immersed in
  what he or she is doing by a feeling of energized focus, full involvement, and
  success in the process of the activity. Proposed by positive psychologist Mihály
  Csíkszentmihályi , the concept has been widely referenced across a variety of
  fields.

  FLOW3 [flō'three] The application framework which takes care of all hassle and lets
  you play the fun part.

  [ˈmihaːj tʃiː
               kˈsɛntmihaːj
                                 i]

                                                                    Inspiring people to
Fluent Development with FLOW3                                       share
FLOW3 = Application Framework
     Not just a collection of components or code snippet library

     Comes with ready-to-go default configuration

     Package based

     Tailored to Domain-Driven Design




                                                                   Inspiring people to
Fluent Development with FLOW3                                      share
Get the FLOW experience
     Intuitive APIs

     Readable source code (like a book)

     Consistent naming for classes, methods and properties


     Focus on the essential, the framework takes care of the infrastructure




                                                                   Inspiring people to
Fluent Development with FLOW3                                      share
TYPO3 and FLOW3
     FLOW3 acts as a reliable basis for any kind of web application

     TYPO3 Phoenix is a package based on FLOW3

     TYPO3 extensions are packages as well, all based on FLOW3


     Packages can be used

       as extensions for TYPO3

       as libraries for standalone applications

                                                                      Inspiring people to
Fluent Development with FLOW3                                         share
Model - View - Controller




                                Inspiring people to
Fluent Development with FLOW3   share
The MVC Pattern


Model
       an object which contains data and business logic of a
       certain domain

       doesn't contain any information about the presentation of
       that data, but rather defines the behaviour

       in the FLOW3 project we prefer a special kind of model,
       the Domain Model




                                                                   Inspiring people to
Fluent Development with FLOW3                                      share
The MVC Pattern


View
       represents the display of the model on the web or another
       output channel

       views only display data, they don't build or modify it




                                                                   Inspiring people to
Fluent Development with FLOW3                                      share
The MVC Pattern


Controller
       reacts on user input, selects and manipulates the model as
       accordingly

       selects a view and passes it the prepared model for
       rendering




                                                                    Inspiring people to
Fluent Development with FLOW3                                       share
MVC


Action Controller
      An action controller

        accepts a request

        evaluates arguments

        calls the action defined in the request

        and adds output to the response




                                                 Inspiring people to
Fluent Development with FLOW3                    share
Routing




                                Inspiring people to
Fluent Development with FLOW3   share
Things to play with


Blog
       Try out the Blog Example:
       svn co https://svn.typo3.org/FLOW3/Application/trunk/BlogExample/




                                                         Inspiring people to
Fluent Development with FLOW3                            share
Things to play with


Conference
       https:/svn.typo3.org/FLOW3/Applications/Conference/trunk/




                                                                   Inspiring people to
Fluent Development with FLOW3                                      share
Links
     FLOW3 Website
     http://flow3.typo3.org

     TYPO3 Forge
     http://forge.typo3.org

     Coding Guidelines
     http://flow3.typo3.org/documentation/coding-guidelines/




                                                              Inspiring people to
Fluent Development with FLOW3                                 share
Further Reading
http://flow3.typo3.org/about/principles/further-reading/

Follow me
Twitter: @t3rob
http://robertlemke.de/blog



                                             Inspiring people to
Fluent Development with FLOW3                share
Questions




                                Inspiring people to
Fluent Development with FLOW3   share
Fluent Development with FLOW3

More Related Content

Similar to Fluent Development with FLOW3

5-Silverlight3_FIRESTARTER_sketchflow-Janete Perez
5-Silverlight3_FIRESTARTER_sketchflow-Janete Perez5-Silverlight3_FIRESTARTER_sketchflow-Janete Perez
5-Silverlight3_FIRESTARTER_sketchflow-Janete Perez
Mithun T. Dhar
 
Avoiding The Knowledge Transfer Bottleneck
Avoiding The Knowledge Transfer BottleneckAvoiding The Knowledge Transfer Bottleneck
Avoiding The Knowledge Transfer Bottleneck
stevebockman
 
Hitchhiker’s Guide to TYPO3 5.0
Hitchhiker’s Guide to TYPO3 5.0Hitchhiker’s Guide to TYPO3 5.0
Hitchhiker’s Guide to TYPO3 5.0
Robert Lemke
 
Webinar: Building Conversational Search with Fusion
Webinar: Building Conversational Search with FusionWebinar: Building Conversational Search with Fusion
Webinar: Building Conversational Search with Fusion
Lucidworks
 
Webinar: Building Customer-Targeted Search with Fusion
Webinar: Building Customer-Targeted Search with FusionWebinar: Building Customer-Targeted Search with Fusion
Webinar: Building Customer-Targeted Search with Fusion
Lucidworks
 
Un unbis-agrovoc 2010-09-03
Un unbis-agrovoc 2010-09-03Un unbis-agrovoc 2010-09-03
Un unbis-agrovoc 2010-09-03
Johannes Keizer
 
Typo3 Neos - Introduction - WebMardi - Lausanne
Typo3 Neos - Introduction - WebMardi - LausanneTypo3 Neos - Introduction - WebMardi - Lausanne
Typo3 Neos - Introduction - WebMardi - Lausanne
dfeyer
 
Implementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHPImplementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHP
Karsten Dambekalns
 
It takes a village: workflows to enable code/no-code collaboration - No Code ...
It takes a village: workflows to enable code/no-code collaboration - No Code ...It takes a village: workflows to enable code/no-code collaboration - No Code ...
It takes a village: workflows to enable code/no-code collaboration - No Code ...
Webflow
 
Open Annotation Model
Open Annotation ModelOpen Annotation Model
Open Annotation Model
Paolo Ciccarese
 
QCon SF-feedback
QCon SF-feedbackQCon SF-feedback
QCon SF-feedback
Yusaku Watanabe
 
SOBOLEO – Editor and Repository for Living Ontologies
SOBOLEO – Editor and Repository for Living OntologiesSOBOLEO – Editor and Repository for Living Ontologies
SOBOLEO – Editor and Repository for Living Ontologies
Simone Braun
 
T3CON11 Building a service oriented application with FLOW3
T3CON11 Building a service oriented application with FLOW3T3CON11 Building a service oriented application with FLOW3
T3CON11 Building a service oriented application with FLOW3
Christopher Hlubek
 
TYPO3 5.0 The Business Case
TYPO3 5.0 The Business CaseTYPO3 5.0 The Business Case
TYPO3 5.0 The Business Case
Robert Lemke
 
Computer-Assisted Language Learning 3-4
Computer-Assisted Language Learning 3-4Computer-Assisted Language Learning 3-4
Computer-Assisted Language Learning 3-4gueste6fc9
 
Computer-Assisted Language Learning
Computer-Assisted Language LearningComputer-Assisted Language Learning
Computer-Assisted Language LearningMiguel Angel Cañas
 
Listen Veronica! Can You Give Me a Hand With This Bug?
Listen Veronica! Can You Give Me a Hand With This Bug?Listen Veronica! Can You Give Me a Hand With This Bug?
Listen Veronica! Can You Give Me a Hand With This Bug?
Juan Pablo Sáenz
 
2023-eics-veronica.pdf
2023-eics-veronica.pdf2023-eics-veronica.pdf
2023-eics-veronica.pdf
TommasoCal
 
ELGG: the Social e-Portfolio
ELGG: the Social e-PortfolioELGG: the Social e-Portfolio
ELGG: the Social e-Portfolio
GrahamAttwell
 
Examples Of Online Promotion - HEA Professional Presences For Academics Works...
Examples Of Online Promotion - HEA Professional Presences For Academics Works...Examples Of Online Promotion - HEA Professional Presences For Academics Works...
Examples Of Online Promotion - HEA Professional Presences For Academics Works...
Thomas Lancaster
 

Similar to Fluent Development with FLOW3 (20)

5-Silverlight3_FIRESTARTER_sketchflow-Janete Perez
5-Silverlight3_FIRESTARTER_sketchflow-Janete Perez5-Silverlight3_FIRESTARTER_sketchflow-Janete Perez
5-Silverlight3_FIRESTARTER_sketchflow-Janete Perez
 
Avoiding The Knowledge Transfer Bottleneck
Avoiding The Knowledge Transfer BottleneckAvoiding The Knowledge Transfer Bottleneck
Avoiding The Knowledge Transfer Bottleneck
 
Hitchhiker’s Guide to TYPO3 5.0
Hitchhiker’s Guide to TYPO3 5.0Hitchhiker’s Guide to TYPO3 5.0
Hitchhiker’s Guide to TYPO3 5.0
 
Webinar: Building Conversational Search with Fusion
Webinar: Building Conversational Search with FusionWebinar: Building Conversational Search with Fusion
Webinar: Building Conversational Search with Fusion
 
Webinar: Building Customer-Targeted Search with Fusion
Webinar: Building Customer-Targeted Search with FusionWebinar: Building Customer-Targeted Search with Fusion
Webinar: Building Customer-Targeted Search with Fusion
 
Un unbis-agrovoc 2010-09-03
Un unbis-agrovoc 2010-09-03Un unbis-agrovoc 2010-09-03
Un unbis-agrovoc 2010-09-03
 
Typo3 Neos - Introduction - WebMardi - Lausanne
Typo3 Neos - Introduction - WebMardi - LausanneTypo3 Neos - Introduction - WebMardi - Lausanne
Typo3 Neos - Introduction - WebMardi - Lausanne
 
Implementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHPImplementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHP
 
It takes a village: workflows to enable code/no-code collaboration - No Code ...
It takes a village: workflows to enable code/no-code collaboration - No Code ...It takes a village: workflows to enable code/no-code collaboration - No Code ...
It takes a village: workflows to enable code/no-code collaboration - No Code ...
 
Open Annotation Model
Open Annotation ModelOpen Annotation Model
Open Annotation Model
 
QCon SF-feedback
QCon SF-feedbackQCon SF-feedback
QCon SF-feedback
 
SOBOLEO – Editor and Repository for Living Ontologies
SOBOLEO – Editor and Repository for Living OntologiesSOBOLEO – Editor and Repository for Living Ontologies
SOBOLEO – Editor and Repository for Living Ontologies
 
T3CON11 Building a service oriented application with FLOW3
T3CON11 Building a service oriented application with FLOW3T3CON11 Building a service oriented application with FLOW3
T3CON11 Building a service oriented application with FLOW3
 
TYPO3 5.0 The Business Case
TYPO3 5.0 The Business CaseTYPO3 5.0 The Business Case
TYPO3 5.0 The Business Case
 
Computer-Assisted Language Learning 3-4
Computer-Assisted Language Learning 3-4Computer-Assisted Language Learning 3-4
Computer-Assisted Language Learning 3-4
 
Computer-Assisted Language Learning
Computer-Assisted Language LearningComputer-Assisted Language Learning
Computer-Assisted Language Learning
 
Listen Veronica! Can You Give Me a Hand With This Bug?
Listen Veronica! Can You Give Me a Hand With This Bug?Listen Veronica! Can You Give Me a Hand With This Bug?
Listen Veronica! Can You Give Me a Hand With This Bug?
 
2023-eics-veronica.pdf
2023-eics-veronica.pdf2023-eics-veronica.pdf
2023-eics-veronica.pdf
 
ELGG: the Social e-Portfolio
ELGG: the Social e-PortfolioELGG: the Social e-Portfolio
ELGG: the Social e-Portfolio
 
Examples Of Online Promotion - HEA Professional Presences For Academics Works...
Examples Of Online Promotion - HEA Professional Presences For Academics Works...Examples Of Online Promotion - HEA Professional Presences For Academics Works...
Examples Of Online Promotion - HEA Professional Presences For Academics Works...
 

More from Robert Lemke

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

More from Robert Lemke (20)

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

Fluent Development with FLOW3

  • 1. Fluent Development with FLOW3 T3CON10, Dallas (Texas)
  • 2. The FLOW3 experience Flow [flō] The mental state of operation in which the person is fully immersed in what he or she is doing by a feeling of energized focus, full involvement, and success in the process of the activity. Proposed by positive psychologist Mihály Csíkszentmihályi , the concept has been widely referenced across a variety of fields. FLOW3 [flō'three] The application framework which takes care of all hassle and lets you play the fun part. [ˈmihaːj tʃiː kˈsɛntmihaːj i] Inspiring people to Fluent Development with FLOW3 share
  • 3. FLOW3 = Application Framework Not just a collection of components or code snippet library Comes with ready-to-go default configuration Package based Tailored to Domain-Driven Design Inspiring people to Fluent Development with FLOW3 share
  • 4. Get the FLOW experience Intuitive APIs Readable source code (like a book) Consistent naming for classes, methods and properties Focus on the essential, the framework takes care of the infrastructure Inspiring people to Fluent Development with FLOW3 share
  • 5. TYPO3 and FLOW3 FLOW3 acts as a reliable basis for any kind of web application TYPO3 Phoenix is a package based on FLOW3 TYPO3 extensions are packages as well, all based on FLOW3 Packages can be used as extensions for TYPO3 as libraries for standalone applications Inspiring people to Fluent Development with FLOW3 share
  • 6. Model - View - Controller Inspiring people to Fluent Development with FLOW3 share
  • 7. The MVC Pattern Model an object which contains data and business logic of a certain domain doesn't contain any information about the presentation of that data, but rather defines the behaviour in the FLOW3 project we prefer a special kind of model, the Domain Model Inspiring people to Fluent Development with FLOW3 share
  • 8. The MVC Pattern View represents the display of the model on the web or another output channel views only display data, they don't build or modify it Inspiring people to Fluent Development with FLOW3 share
  • 9. The MVC Pattern Controller reacts on user input, selects and manipulates the model as accordingly selects a view and passes it the prepared model for rendering Inspiring people to Fluent Development with FLOW3 share
  • 10. MVC Action Controller An action controller accepts a request evaluates arguments calls the action defined in the request and adds output to the response Inspiring people to Fluent Development with FLOW3 share
  • 11. Routing Inspiring people to Fluent Development with FLOW3 share
  • 12. Things to play with Blog Try out the Blog Example: svn co https://svn.typo3.org/FLOW3/Application/trunk/BlogExample/ Inspiring people to Fluent Development with FLOW3 share
  • 13. Things to play with Conference https:/svn.typo3.org/FLOW3/Applications/Conference/trunk/ Inspiring people to Fluent Development with FLOW3 share
  • 14. Links FLOW3 Website http://flow3.typo3.org TYPO3 Forge http://forge.typo3.org Coding Guidelines http://flow3.typo3.org/documentation/coding-guidelines/ Inspiring people to Fluent Development with FLOW3 share
  • 15. Further Reading http://flow3.typo3.org/about/principles/further-reading/ Follow me Twitter: @t3rob http://robertlemke.de/blog Inspiring people to Fluent Development with FLOW3 share
  • 16. Questions Inspiring people to Fluent Development with FLOW3 share