26
PRINCIPLES OF SOFTWARE ARCHITECTURE IN RELATION TO TYPO3 TYPO3 CAMP VENLO 22.4.2016

Architecture principles in relation to TYPO3

Embed Size (px)

Citation preview

Page 1: Architecture principles in relation to TYPO3

PRINCIPLES OF SOFTWARE ARCHITECTUREIN RELATION TO TYPO3

TYPO3

CAMP

VENLO

22.4.2016

Page 2: Architecture principles in relation to TYPO3

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

Page 3: Architecture principles in relation to TYPO3

SCHEDULE

Definition

Tasks of an architect

Process of development

Design principles

Architecture styles

Architecture patterns

Page 4: Architecture principles in relation to TYPO3

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

Page 5: Architecture principles in relation to TYPO3

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

Page 6: Architecture principles in relation to TYPO3

PROCESS OF ARCHITECTURE DEVELOPMENT

SEITE 6

Page 7: Architecture principles in relation to TYPO3

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

Page 8: Architecture principles in relation to TYPO3

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

Page 9: Architecture principles in relation to TYPO3

ARCHITECTURE DEVELOPMENT

SEITE 9

Page 10: Architecture principles in relation to TYPO3

DESIGN PRINCIPLES

SEITE 10

Page 11: Architecture principles in relation to TYPO3

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

Page 12: Architecture principles in relation to TYPO3

TECHNIQUES FORA 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

Page 13: Architecture principles in relation to TYPO3

SEITE 13

RESOLVE CYCLICDEPENDENCIES

Page 14: Architecture principles in relation to TYPO3

ARCHITECTURE STYLES

SEITE 14

Page 15: Architecture principles in relation to TYPO3

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

Page 16: Architecture principles in relation to TYPO3

DOMAIN DRIVEN DESIGN

SEITE 16

Page 17: Architecture principles in relation to TYPO3

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

Page 18: Architecture principles in relation to TYPO3

ARCHITECTURE PATTERNSINTERACTIVE SYSTEMS

SEITE 18

Page 19: Architecture principles in relation to TYPO3

MVC MODEL VIEW CONTROLLER

Model holds the data

View presents the data

Controller processes user events,

executes business logic and

updates views

SEITE 19

Page 20: Architecture principles in relation to TYPO3

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

Page 21: Architecture principles in relation to TYPO3

MVVM – MODEL VIEWVIEWMODEL

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

Page 22: Architecture principles in relation to TYPO3

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

Page 23: Architecture principles in relation to TYPO3

PRESENTATION ABSTRACTION CONTROL

SEITE 23

Page 24: Architecture principles in relation to TYPO3

FROM CHAOSTO 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

Page 25: Architecture principles in relation to TYPO3

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

Page 26: Architecture principles in relation to TYPO3

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