SlideShare a Scribd company logo
PRINCIPLES OF
SOFTWARE
ARCHITECTURE
IN RELATION TO TYPO3
TYPO3
CAMP
VENLO
22.4.2016
GERNOT SCHULMEISTER
Lives in Mönchengladbach
Developes websites with TYPO3 since Version 3.7
(2005)
Works for TeamWFP
Has a migration background and comes from
Southeast-Europe (Austria)
Likes operative CMS evaluations, Big Data,
Software Architecture, TYPO3 Events
facebook.com/gernot.schulmeister
twitter.com/mistakanista1
SEITE 2
SCHEDULE
 Definition
 Tasks of an architect
 Process of development
 Design principles
 Architecture styles
 Architecture patterns
The fundamental organization of a
software system embodied in its
components, their relationships to
each other and to the
environment and the principles
guiding its design and evolution
DEFINITION
TASKS: ARCHITECTS
 Construct, design and implement
 Evaluate, decide and consult
 Grant the fulfillment of requirements
 Document
 Communicate and are diplomats and acrobats
 Simplify
 Make assumptions and preconditions explicit
 Need courage
SEITE 5
PROCESS OF
ARCHITECTURE
DEVELOPMENT
SEITE 6
STEPS
 Gather information
 Clarify requirements: core tasks, category of system,
quality targets, relevant stakeholders, business and
technical context
 Investigate influences and side conditions
 Develop solution strategies
 Design and communicate
 Accompany implementation
SEITE 7
ABSTRACTION LEVELS
 Environment: project, product management &
requirements engineering, execution & operation, tools
& development
 Architecture style and technical infrastructure
 Domain & technical architecture layer
 Program design & implementation layer
 Execute the steps iterative, incremental by switching
through the abstraction levels
SEITE 8
ARCHITECTURE
DEVELOPMENT
SEITE 9
DESIGN PRINCIPLES
SEITE 10
HEURISTICS
 Mix top-down, bottom-up & outside in strategies
 hierarchical composition & decomposition
 As simple as possible principle
 Separation of concerns (encapsulation)
 Information hiding & small interfaces
 Regular refactoring & redesign
 Separation of business & technical aspects
 Expect changes & switch the perspective
SEITE 11
TECHNIQUES FOR
A GOOD DESIGN
 Loose coupling (number of relations of a block)
 High cohesion (put together what belongs together)
 Open closed principle (closed to changes, open for
extensions)
 Don´t repeat yourself
 Inversion of control (dependency injection)
 Expect errors and failures (failure first)
 Liskov substitution principle (a subclass always
substitute the base class)
SEITE 12
SEITE 13
RESOLVE CYCLIC
DEPENDENCIES
ARCHITECTURE STYLES
SEITE 14
DOMAIN DRIVEN DESIGN
 Business domain as basis
 Entities: core objects, thing in the system, keep the
identity, switch the state
 Value objects: describe entities, never change
 Services: operations of the domain without a state
 Aggregates: encapsulates, crosslinked domain objects,
has one entity as root object
 Factories: encapsulate construction of complex objects
 Repositories: access to the persistence layer
SEITE 15
DOMAIN DRIVEN DESIGN
SEITE 16
OTHERS
 MDA  Model driven architecture
 QDSA  Quality driven software architecture: aim,
plan build, check
 SOA  Service oriented architecture: Service directory,
provider & consumer is a business topic
 Microservices  Modularisation also concerning
hardware and live operation, orchestration decentral
without middleware
SEITE 17
ARCHITECTURE PATTERNS
INTERACTIVE SYSTEMS
SEITE 18
MVC MODEL VIEW
CONTROLLER
 Model holds the data
 View presents the data
 Controller processes user events,
executes business logic and
updates views
SEITE 19
MVP MODEL VIEW
PRESENTER
 Based on MVC strict separation of
model & view
 Model holds the data and the
business logic
 View: no logic only receives the user input
 Presenter: connects view with model and
controls the logical process
SEITE 20
MVVM – MODEL VIEW
VIEWMODEL
 By angular, based on MVC
 The view-model connects the model with the
view and adds presentation logic
 Loads additional data, updates the GUI
SEITE 21
PRESENTATION
ABSTRACTION CONTROL
 For complex user interfaces
 Used in IDEs like PHP-storm with many windows
 Response behavior of one controller not sufficient
 Decomposition of hierarchically, cooperating agents
 Agents consists of controller, abstraction and view
 Controller interface to other agents
 Abstraction adapts global model to local model
 Enables parallel executions of parts of the global
model
SEITE 22
PRESENTATION
ABSTRACTION CONTROL
SEITE 23
FROM CHAOS
TO STRUCTURE
 Layer architecture
 Pipes & filters: filters process data, pipes transport
intermediate results decoupling in many ways
 Used in compiler, parser, image processing
 Blackboard: specialized knowledge source send
possible solutions of a problem to the blackboard to
find an overall solution
 Used in image and language recognition, system
surveillance
SEITE 24
SEITE 25
DISTRIBUTED SYSTEMS
 Broker: imparts between client & server
 Server sends service interface to broker
 Broker finds service for the client and connects the request and
response
 CQRS  Command Query Responsibility Segregation
 Separates commands (data changes) from Queries (reading access
to data)
 Good for parallel executions without dependencies
 Commands: ACID transactions
 Queries idempotent
CONCLUSION
 Every developer is also a little architects
 Basic architecture knowledge is useful for every
developer
 Architecture knowledge helps to understand TYPO3
better
SEITE 26

More Related Content

Similar to Architecture principles in relation to TYPO3

[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture
Ivano Malavolta
 
Chapter1
Chapter1Chapter1
Chapter1
Hoang Vu Dinh
 
Design engineering
Design engineeringDesign engineering
Design engineering
Vikram Dahiya
 
Design engineering
Design engineeringDesign engineering
Design engineering
Vikram Dahiya
 
rEFUP.pdf
rEFUP.pdfrEFUP.pdf
Sodius cassidian mdday2010
Sodius cassidian mdday2010Sodius cassidian mdday2010
Sodius cassidian mdday2010
MD DAY
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
Harsh Jegadeesan
 
Approaches To System Development
Approaches To System DevelopmentApproaches To System Development
Approaches To System Development
Henhen Lukmana
 
Unit 3- Software Design.pptx
Unit 3- Software Design.pptxUnit 3- Software Design.pptx
Unit 3- Software Design.pptx
LSURYAPRAKASHREDDY
 
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Cloud Native Day Tel Aviv
 
06 fse design
06 fse design06 fse design
06 fse design
Mohesh Chandran
 
Pragmatic Approach to Microservices and Cell-based Architecture
Pragmatic Approach to Microservices and Cell-based Architecture Pragmatic Approach to Microservices and Cell-based Architecture
Pragmatic Approach to Microservices and Cell-based Architecture
Andrew Blades
 
WebML for OMG
WebML for OMGWebML for OMG
WebML for OMG
Marco Brambilla
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
Bisrat Girma
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
Ivano Malavolta
 
Data Enabled Enterprise Modeler (De2 M) Overview V2.12
Data Enabled Enterprise Modeler (De2 M) Overview V2.12Data Enabled Enterprise Modeler (De2 M) Overview V2.12
Data Enabled Enterprise Modeler (De2 M) Overview V2.12
Paul W. Johnson
 
e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...
e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...
e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...
Sabino Labarile
 
Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
Shagufta shaheen
 
Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014
Sandro Mancuso
 
Smart Client Software Factory 2010
Smart Client Software Factory  2010Smart Client Software Factory  2010
Smart Client Software Factory 2010
Tomy Ismail
 

Similar to Architecture principles in relation to TYPO3 (20)

[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture
 
Chapter1
Chapter1Chapter1
Chapter1
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
rEFUP.pdf
rEFUP.pdfrEFUP.pdf
rEFUP.pdf
 
Sodius cassidian mdday2010
Sodius cassidian mdday2010Sodius cassidian mdday2010
Sodius cassidian mdday2010
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Approaches To System Development
Approaches To System DevelopmentApproaches To System Development
Approaches To System Development
 
Unit 3- Software Design.pptx
Unit 3- Software Design.pptxUnit 3- Software Design.pptx
Unit 3- Software Design.pptx
 
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
 
06 fse design
06 fse design06 fse design
06 fse design
 
Pragmatic Approach to Microservices and Cell-based Architecture
Pragmatic Approach to Microservices and Cell-based Architecture Pragmatic Approach to Microservices and Cell-based Architecture
Pragmatic Approach to Microservices and Cell-based Architecture
 
WebML for OMG
WebML for OMGWebML for OMG
WebML for OMG
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
Data Enabled Enterprise Modeler (De2 M) Overview V2.12
Data Enabled Enterprise Modeler (De2 M) Overview V2.12Data Enabled Enterprise Modeler (De2 M) Overview V2.12
Data Enabled Enterprise Modeler (De2 M) Overview V2.12
 
e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...
e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...
e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...
 
Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
 
Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014
 
Smart Client Software Factory 2010
Smart Client Software Factory  2010Smart Client Software Factory  2010
Smart Client Software Factory 2010
 

More from Gernot Schulmeister

Event Storming & Event Sourcing with Lagom
Event Storming & Event Sourcing with LagomEvent Storming & Event Sourcing with Lagom
Event Storming & Event Sourcing with Lagom
Gernot Schulmeister
 
Rapidminer
RapidminerRapidminer
Knigge for software architects
Knigge for software architectsKnigge for software architects
Knigge for software architects
Gernot Schulmeister
 
Marketing automation tools
Marketing automation toolsMarketing automation tools
Marketing automation tools
Gernot Schulmeister
 
TYPO3 Backend Apps Prototype
TYPO3 Backend Apps PrototypeTYPO3 Backend Apps Prototype
TYPO3 Backend Apps Prototype
Gernot Schulmeister
 
CMS Evaluation with test implementations
CMS Evaluation with test implementationsCMS Evaluation with test implementations
CMS Evaluation with test implementations
Gernot Schulmeister
 
Cms evaluation
Cms evaluationCms evaluation
Cms evaluation
Gernot Schulmeister
 

More from Gernot Schulmeister (7)

Event Storming & Event Sourcing with Lagom
Event Storming & Event Sourcing with LagomEvent Storming & Event Sourcing with Lagom
Event Storming & Event Sourcing with Lagom
 
Rapidminer
RapidminerRapidminer
Rapidminer
 
Knigge for software architects
Knigge for software architectsKnigge for software architects
Knigge for software architects
 
Marketing automation tools
Marketing automation toolsMarketing automation tools
Marketing automation tools
 
TYPO3 Backend Apps Prototype
TYPO3 Backend Apps PrototypeTYPO3 Backend Apps Prototype
TYPO3 Backend Apps Prototype
 
CMS Evaluation with test implementations
CMS Evaluation with test implementationsCMS Evaluation with test implementations
CMS Evaluation with test implementations
 
Cms evaluation
Cms evaluationCms evaluation
Cms evaluation
 

Recently uploaded

7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
Danica Gill
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
fovkoyb
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
wolfsoftcompanyco
 
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
bseovas
 
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
cuobya
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
Trish Parr
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
uehowe
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
uehowe
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
cuobya
 
Design Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptxDesign Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptx
saathvikreddy2003
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
Toptal Tech
 
Explore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories SecretlyExplore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories Secretly
Trending Blogers
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
zyfovom
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
Laura Szabó
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
Paul Walk
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
vmemo1
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
bseovas
 
Understanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdfUnderstanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdf
SEO Article Boost
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
davidjhones387
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
ysasp1
 

Recently uploaded (20)

7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
 
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
 
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
 
Design Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptxDesign Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptx
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
 
Explore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories SecretlyExplore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories Secretly
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
 
Understanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdfUnderstanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdf
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
 

Architecture principles in relation to TYPO3

  • 1. PRINCIPLES OF SOFTWARE ARCHITECTURE IN RELATION TO TYPO3 TYPO3 CAMP VENLO 22.4.2016
  • 2. GERNOT SCHULMEISTER Lives in Mönchengladbach Developes websites with TYPO3 since Version 3.7 (2005) Works for TeamWFP Has a migration background and comes from Southeast-Europe (Austria) Likes operative CMS evaluations, Big Data, Software Architecture, TYPO3 Events facebook.com/gernot.schulmeister twitter.com/mistakanista1 SEITE 2
  • 3. SCHEDULE  Definition  Tasks of an architect  Process of development  Design principles  Architecture styles  Architecture patterns
  • 4. The fundamental organization of a software system embodied in its components, their relationships to each other and to the environment and the principles guiding its design and evolution DEFINITION
  • 5. TASKS: ARCHITECTS  Construct, design and implement  Evaluate, decide and consult  Grant the fulfillment of requirements  Document  Communicate and are diplomats and acrobats  Simplify  Make assumptions and preconditions explicit  Need courage SEITE 5
  • 7. STEPS  Gather information  Clarify requirements: core tasks, category of system, quality targets, relevant stakeholders, business and technical context  Investigate influences and side conditions  Develop solution strategies  Design and communicate  Accompany implementation SEITE 7
  • 8. ABSTRACTION LEVELS  Environment: project, product management & requirements engineering, execution & operation, tools & development  Architecture style and technical infrastructure  Domain & technical architecture layer  Program design & implementation layer  Execute the steps iterative, incremental by switching through the abstraction levels SEITE 8
  • 11. HEURISTICS  Mix top-down, bottom-up & outside in strategies  hierarchical composition & decomposition  As simple as possible principle  Separation of concerns (encapsulation)  Information hiding & small interfaces  Regular refactoring & redesign  Separation of business & technical aspects  Expect changes & switch the perspective SEITE 11
  • 12. TECHNIQUES FOR A GOOD DESIGN  Loose coupling (number of relations of a block)  High cohesion (put together what belongs together)  Open closed principle (closed to changes, open for extensions)  Don´t repeat yourself  Inversion of control (dependency injection)  Expect errors and failures (failure first)  Liskov substitution principle (a subclass always substitute the base class) SEITE 12
  • 15. DOMAIN DRIVEN DESIGN  Business domain as basis  Entities: core objects, thing in the system, keep the identity, switch the state  Value objects: describe entities, never change  Services: operations of the domain without a state  Aggregates: encapsulates, crosslinked domain objects, has one entity as root object  Factories: encapsulate construction of complex objects  Repositories: access to the persistence layer SEITE 15
  • 17. OTHERS  MDA  Model driven architecture  QDSA  Quality driven software architecture: aim, plan build, check  SOA  Service oriented architecture: Service directory, provider & consumer is a business topic  Microservices  Modularisation also concerning hardware and live operation, orchestration decentral without middleware SEITE 17
  • 19. MVC MODEL VIEW CONTROLLER  Model holds the data  View presents the data  Controller processes user events, executes business logic and updates views SEITE 19
  • 20. MVP MODEL VIEW PRESENTER  Based on MVC strict separation of model & view  Model holds the data and the business logic  View: no logic only receives the user input  Presenter: connects view with model and controls the logical process SEITE 20
  • 21. MVVM – MODEL VIEW VIEWMODEL  By angular, based on MVC  The view-model connects the model with the view and adds presentation logic  Loads additional data, updates the GUI SEITE 21
  • 22. PRESENTATION ABSTRACTION CONTROL  For complex user interfaces  Used in IDEs like PHP-storm with many windows  Response behavior of one controller not sufficient  Decomposition of hierarchically, cooperating agents  Agents consists of controller, abstraction and view  Controller interface to other agents  Abstraction adapts global model to local model  Enables parallel executions of parts of the global model SEITE 22
  • 24. FROM CHAOS TO STRUCTURE  Layer architecture  Pipes & filters: filters process data, pipes transport intermediate results decoupling in many ways  Used in compiler, parser, image processing  Blackboard: specialized knowledge source send possible solutions of a problem to the blackboard to find an overall solution  Used in image and language recognition, system surveillance SEITE 24
  • 25. SEITE 25 DISTRIBUTED SYSTEMS  Broker: imparts between client & server  Server sends service interface to broker  Broker finds service for the client and connects the request and response  CQRS  Command Query Responsibility Segregation  Separates commands (data changes) from Queries (reading access to data)  Good for parallel executions without dependencies  Commands: ACID transactions  Queries idempotent
  • 26. CONCLUSION  Every developer is also a little architects  Basic architecture knowledge is useful for every developer  Architecture knowledge helps to understand TYPO3 better SEITE 26