n this presentation we looked at the architecture and explain it’s structure from a practical point of view: - what are the features and benefits of this design for developers, administrators and users - how to explain this architecture to prospective and existing clients - how it compares to previous TYPO3 versions and competing products. The presentation ends with a number of application scenarios.
4. The Way To Here
What's wrong?
TYPO3 4.x‘s architecture is reaching it‘s limit
Content management got more important and professional and
with it the challenges have changed
Customers demand more for less (and rightly so)
Software around TYPO3 has moved on
TYPO3 needs to define the standard (like it did in the past) to
maintain the lead
Inspiring people to
share
5. The Way To Here
Born in the Ketchup Mountains
Gimme Five!
The road to TYPO3 5.0 „Phoenix“
Plan
Momentum
Idea
6. The Way To Here
Mission „Ease of Use“
From the becoming of the TYPO3 Association to building of a
brand, everything we have thought, said and done was meant
to bring us here:
to the birth of a new era
to prove that Open Source projects can re-invent themselves
Welcome to Phoenix, the rebirth principle incarnate
Inspiring people to
share
8. Guiding Principles
Why Principles Matter
with principles we are referring to the conventions and
techniques used by TYPO3 5.0
we don‘t build buildings –
design decisions can be changed most of the time
refactoring is already an important part
of the daily 5.0 development
code changes, principles prevail
Inspiring people to
share
9. Guiding Principles
TYPO3's Principles
meet real world needs
configuration over development
modularity through Extensions (TER)
... inspiring people to share.
Inspiring people to
share
10. Guiding Principles
TYPO3's Principles
anticipate real world needs
centralize concerns
convention over configuration
efficient development
modularity everywhere
human readable code
... inspiring people to share.
Inspiring people to
share
11. Guiding Principles
5 Development Methods
Domain
Driven Design
Don't
Work where it matters (DDD) Repeat Yourself
Test Driven
Work where it belongs to (DRY)
Development
No chaos, ever (TDD) Continuous
Dependency Injection
Integration
Aspect Orient Programming
No bad surprises (CI) Graphical User Interface
Innovation built-in (DI, AOP, GUI)
Inspiring people to
share
12. Why focus on Domains?
More time in development is spent on
infrastructure instead of
user interfaces and business logic.
To hell with this!
Inspiring people to
share
13. Domain Driven Design
A domain is the activity or business of the user
Domain Driven Design is about
focussing on the domain and domain logic
accurately mapping the domain concepts to software
forming a ubiquitous language among the project members
Inspiring people to
share
14. Ubiquitous language
The common vocabulary is an important prerequisite
for successful collaboration
Use the same words for discussion, modeling, development
and documentation
Inspiring people to
share
16. More phone book actions
show phone book entries
check if user may delete phone book entry
export phone book entries
log phone book actions
Inspiring people to
share
17. ✘
More phone book actions
show phone book entries not in
domain
check if user may delete phone book entry
the
export phone book entries of a
phone
log phone book actions book
Inspiring people to
share
18. Layered Architecture
View
Presentation
Controller
Application Logic (Service Layer)
Domain
Domain Model (Domain Layer)
Data Mapper (part of Content Repository)
Data source
Data Source Abstraction
Inspiring people to
share
19. Layered Architecture
View
Presentation
Controller
Application Logic (Service Layer)
Domain
Domain Model (Domain Layer)
Data Mapper (part of Content Repository)
Data source
Data Source Abstraction
Inspiring people to
share
20. Domain-Driven Design
„Cancel the reservation for Mr. Sarkosh“
$person = $partyRepository->findByLastName(‘Sarkosh‘);
$reservation = $reservationRepository->findByPerson($person);
$reservation->cancel();
Inspiring people to
share
21. Why Centralize Concerns ?
TYPO3 4.x leaves critical concerns and tedious
redundant functions to be re-done with every
extension.
Burn baby, burn.
Inspiring people to
share
22. Aspect Oriented Programming
AOP is a programming paradigm
complements OOP by separating concerns to improve
modularization
OOP modularizes concerns: methods, classes, packages
AOP addresses cross-cutting concerns
Inspiring people to
share
27. Example Projects
Every piece of logic added to a software system makes the
next relaunch inch a little closer and threatens the
relationship between the service provider and the
customer.
Make it feel the heat!
Inspiring people to
share
28. Example Projects
Regular Website
Project phases today: Functional Range
1. specification and design
2. production project progress
in time
3. adaption
4. support
=> the project‘s progress increasingly limits the adaptive range of
the customer and the consultancy.
Inspiring people to
share
29. Example Projects
Regular Website with 5.0
project phases then: Functional Range
1. specification and design
2. prototype implementation project progress
in time
3. adaption and iterative development
4. support and iterative development
=> „extreme programming“ becomes a business model for the interaction
between customer and service provider fostering long-term relationships.
Inspiring people to
share
30. Example Projects
TYPO3 as a framework
project phases now: Amount of Code
1. initial spec and design
2. development, beginning
project progress
with the data model (!) in time
3. adaption
4. start all-over...
=> finite loop: changing business objectives collide with the initial data
model and business logic
Inspiring people to
share
31. Example Projects
TYPO3 as a framework
project phases with 5.0: Amount of Code
1. initial spec and design
2. initial development of fundamental
business logic domains project progress
in time
3. adaption-as-you-work „surgically“
addressing business logic largely
unhindered by infrastructure.
=> infinite loop: changing business objectives address existing and create
new domains of business logic representated in the system.
„high speed, low drag“- principle keeps the troops mobile.
Inspiring people to
share
33. Key Success Factors
Key Success Factors
TYPO3 5.0 consists of two parts:
a framework ready to empower business logic
a CMS setting the next standard
TYPO3 5.0 will complete the „ease of use“-mission, thus
„enabling people to communicate“.
Made from the same steel, but sharper, lighter and quicker.
Inspiring people to
share
34. Key Success Factors
3 Value-creating Principles
VIVID: Vitality in Domains
(instead of dead db‘s)
SAFE: Centralized Intelligence
Architecture
CLEAN: Look Ma, no chaos
Inspiring people to
share
35. Key Success Factors
Use Phoenix...
to empower a content-driven consultancy
to focus on designing and improving business logic
to create more flexible and therefore long-lasting
software solutions to business problems
to empower executive strategy without restraining tactics
to thrive on long-term customer relationships
Inspiring people to
share
36. Key Success Factors
better return on investment by making development more
efficient
securing investments by extending the life-expectancy of
systems
making content more versatile and portable through TYPO3 CR
enabling safer software through centralized security
fostering consistency and thereby vendor-independence
... by principle
Inspiring people to
share
38. Proposal for market introduction
Mission Objectives
Phase 0: „Preparation“ of Stakeholders
muster ideas, ressources and people to plan and prepare the campaign.
Phase 1: „ Winning Hearts and Minds“ of Developers
winning those at the heart of TYPO3‘s success: developers everywhere.
Phase 2: „Making the Wave...“ for Consultancies
make them work together and create a thriving feedback-production loop.
Phase 3: „and Surfing it“ alltogether!
take an active role in the adaption of existing extensions' functions into 5.0-
compatible extensions.
.
Inspiring people to
share
39. Proposal for market introduction
Phases of Flight
Phase 0: „Boarding“:
join the Phoenix Marketing Team (to be founded today)
Phase 1: „System Check“
early adaption of the 5.0 framework for research projects to learn and adapt
the principles.
Phase 2: „Take-Off“
push for the design and production of the CMS package based on lessons
learned by the 4.x versions.
Phase 3: „ Landing“
take an active role in the adaption of existing extensions' functions into 5.0-
compatible extensions.
Inspiring people to
share
40. When will it be released?
What about the roadmap?
Here is what our press rep has to say!
Inspiring people to
share
41. Gimme Five!
The road to TYPO3 5.0 „Phoenix“
burning to rock content management (again)