Slide 1

Slide 1 text

@smoench89 Keep your architecture clean 1

Slide 2

Slide 2 text

@smoench89 Agenda • What is software architecture about? • Example application • Track application layers and enforce rules 2

Slide 3

Slide 3 text

@smoench89 Simon Mönch @smoench89 Symfony User Group Cologne Organizer 3

Slide 4

Slide 4 text

@smoench89 What is software architecture about? 4

Slide 5

Slide 5 text

@smoench89 What is software architecture about? • Communication ‣ Requirements ‣ Decisions ‣ Agreements 5

Slide 6

Slide 6 text

@smoench89 –Ralph Johnson „Architecture is about the important stuff. Whatever that is.“ 6

Slide 7

Slide 7 text

@smoench89 Example 7 • API driven • Admin and Customer API • Easily extendable with other APIs / 3rd Party Integrations • Keep in mind a API context could spilt out to its own service

Slide 8

Slide 8 text

@smoench89 Hexagonal architecture Ports and adapter architecture 8

Slide 9

Slide 9 text

@smoench89 9 Core Admin Customer Driven Driving

Slide 10

Slide 10 text

@smoench89 Application 10

Slide 11

Slide 11 text

@smoench89 Deptrac https://github.com/sensiolabs-de/deptrac 11

Slide 12

Slide 12 text

@smoench89 Installation ✓ PHAR | https://github.com/sensiolabs-de/deptrac/releases ✓ phive install -g sensiolabs-de/deptrac ✓ composer require --dev sensiolabs-de/deptrac-shim X composer require --dev sensiolabs-de/deptrac 12

Slide 13

Slide 13 text

@smoench89 depfile.yml 13

Slide 14

Slide 14 text

@smoench89 14

Slide 15

Slide 15 text

@smoench89 15

Slide 16

Slide 16 text

@smoench89 Formatters 16

Slide 17

Slide 17 text

@smoench89 Console 17

Slide 18

Slide 18 text

@smoench89 Graphviz 18

Slide 19

Slide 19 text

@smoench89 JUnit 19

Slide 20

Slide 20 text

@smoench89 Layers & Collectors 20

Slide 21

Slide 21 text

@smoench89 className 21

Slide 22

Slide 22 text

@smoench89 classNameRegex 22

Slide 23

Slide 23 text

@smoench89 directory 23

Slide 24

Slide 24 text

@smoench89 bool 24

Slide 25

Slide 25 text

@smoench89 Demo 25

Slide 26

Slide 26 text

@smoench89 Conclusions 26

Slide 27

Slide 27 text

@smoench89 Thank you @smoench89 https://joind.in/talk/017e5 27