21
BRING YOUR OWN ARCHITECTURE SOFTWARE ARCHITECTURE BECOMES -> IS A DEVELOPER SKILL GDG DÜSSELDORF 08.12.2016

Bring your own architecture

Embed Size (px)

Citation preview

Page 1: Bring your own architecture

BRING YOUR OWN ARCHITECTURESOFTWARE ARCHITECTURE BECOMES -> IS A DEVELOPER SKILL

GDGDÜSSELDO

RF

08.12.2016

Page 2: Bring your own architecture

GERNOT SCHULMEISTERLives in MönchengladbachDevelopes websites with TYPO3 and AngularWorks for TeamWFP Has a migration background and comes from Southeast-Europe (Austria)Likes operative CMS evaluations, Data science, Software Architecture, Meetups, Bar camps

facebook.com/gernot.schulmeistertwitter.com/mistakanista1

SEITE 2

Page 3: Bring your own architecture

SCHEDULE

Motivation Definition Macro / Micro architecture Tasks of an architect Process of development Design principles Architecture style -> Domain driven

design

Page 4: Bring your own architecture

MOTIVATION

Your architecture is only good as long as you did not tell one about it

Architecture should be developed in a team I like to read about architecture I like to go to architecture meetups But architecture is only theory until you apply it

SEITE 4

Page 5: Bring your own architecture

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 6: Bring your own architecture

MACROARCHITECTURE

Standardization, frame for everyone Developer can easy switch between teams Concentration on the application specifics Avoidance of errors in critical areas by proved

concepts Lower costs by fewer products, licences and trainings

for specialists Reuse of solutions ideas across domains

SEITE 6

Page 7: Bring your own architecture

MICROARCHITECTURE

Space for individual solutions Optimal solutions for specific problems New trends can be adapted quickly Wrong decisions have not so much impact Lower dependencies to individual suppliers

SEITE 7

Page 8: Bring your own architecture

CANDIDATES FOR OVERLAPPING TOPICS

SEITE 8

Page 9: Bring your own architecture

EXAMPLE USER INTERFACE

SEITE 9

Page 10: Bring your own architecture

PROCESS OF ARCHITECTURE DEVELOPMENT

SEITE 10

Page 11: Bring your own architecture

ARCHITECTURE TASKS

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 11

Page 12: Bring your own architecture

ARCHITECTURE DEVELOPMENT

SEITE 12

Page 13: Bring your own architecture

DESIGN PRINCIPLES

SEITE 13

Page 14: Bring your own architecture

HEURISTICS

Mix top-down, bottom-up & outside in strategies hierarchical composition & decomposition

Loose coupling (number of relations of a block), high cohesion (put together what belongs together)

Don´t repeat yourself vs no shared code Lego thinking Expect changes & switch the perspective Expect errors and failures (failure first) Regular refactoring & redesign Anti-tenacity Simple: CUTE instead of KISS

SEITE 14

Page 15: Bring your own architecture

CUTE

Comprehensive: regarding the business domain, avoid technical constructs, focus on intention and not on implementation

Unidimensional: low complexity, linear reading, avoid nesting and loops Terse: short and compact, few code is quicker to read and understand Elegant: in mathematical sense, nice to read

SEITE 15

Page 16: Bring your own architecture

SOLID FOR ARCHITECTURE

SRP - Single responsibility principle ( separation of concerns, encapsulation, information hiding)

OCP - Open close principle (open for extensions, closed for modifications)

LSP - Liskov substitution principle (a base class should be always substituteable by its subclasses)

ISP - Interface segregation principle (the user should be offered an interface which only fulfills his tasks, small interfaces)

DIP - Dependency inversion principle (dependency only from concrete to abstract classes, so that the concrete ones can easily be replaced and decoupled)

SEITE 16

Page 17: Bring your own architecture

ARCHITECTURE STYLES

SEITE 17

Page 18: Bring your own architecture

DOMAIN DRIVEN DESIGN

SEITE 18

Page 19: Bring your own architecture

BOUNDED CONTEXT

Central idea of strategic design to find a fitting granularity for a domain

The application business logic consists of several bounded context

Example Google dev fest: Registration of applicants Print of the the badges for the visitors Capacity planning for food and sessions

SEITE 19

Page 20: Bring your own architecture

CONTEXT MAP

Describes the dependencies between the bounded contexts Propagates the models from one context to the next Shared kernel (share parts of the model) Customer/supplier (customer has veto for supplier changes of the model) Conformist (customer follows changes of the supplier model) Anticorruption layer (local model translates foreign model) Open / host service (SOA interfaces are offered to the public) Published language (ubiquitous domain language for the team members for

communication)

SEITE 20

Page 21: Bring your own architecture

CONCLUSION

Every developer is also an architect in his responsibility area The awareness of the importance of architecture increased Architecture skills are not necessarily connected with a social uprise

anymore Lego thinking

SEITE 21