Slide 1

Slide 1 text

One Bug per Month ( e x p l a i n e d t o d e v e l o p e r s )

Slide 2

Slide 2 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 2/38 HIGH LEVEL ARCHITECTURE BUSINESS LOGIC DATABASE FILESYSTEM UI MVC NET. API MAIN FACTORY

Slide 3

Slide 3 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 3/38 ABOUT PATKÓS CSABA

Slide 4

Slide 4 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 4/38 SO, WHAT WILL THIS TALK BE ABOUT? Architecture, Infrastructure, Processes and Practices

Slide 5

Slide 5 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 5/38 HIGH LEVEL ARCHITECTURE BUSINESS LOGIC DATABASE FILESYSTEM UI MVC NET. API MAIN FACTORY

Slide 6

Slide 6 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 6/38 MODEL M MVC AS WE KNOW IT TODAY V C PRESENTATION ROUTING DATA TRANSFER DATABASE FILESYSTEM BUSINESS LOGIC FACTORY NET. API

Slide 7

Slide 7 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 7/38 MODEL SOLID CHANGE V C PRESENTATION ROUTING DATA TRANSFER DATABASE FILESYSTEM BUSINESS LOGIC FACTORY NET. API S O L I D

Slide 8

Slide 8 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 8/38 MODEL APPLYING SRP DATABASE FILESYSTEM BUSINESS LOGIC FACTORY NET. API Single Responsibility Principle A single reason to change DATABASE FILESYSTEM FACTORY NET. API

Slide 9

Slide 9 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 9/38 MODEL APPLYING OCP BUSINESS LOGIC Open Closed Principle Open to extension & Closed to modification DATABASE FILESYSTEM FACTORY NET. API BUSINESS LOGIC

Slide 10

Slide 10 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 10/38 MODEL APPLYING DIP Dependency Inversion Always depend on abstract things DATABASE FACTORY NET. API BUSINESS LOGIC FILESYSTEM

Slide 11

Slide 11 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 11/38 HIGH LEVEL ARCHITECTURE BUSINESS LOGIC DATABASE FILESYSTEM UI MVC NET. API MAIN FACTORY

Slide 12

Slide 12 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 12/38 HOW DOES UNCLE BOB DO IT? Robert C. Martin Uncle Bob

Slide 13

Slide 13 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 13/38 SO HE SAYS... DELIVERY INTERACTOR ENTITY ENTITY ENTITY BOUNDARY [ i ] BOUNDARY [ i ]

Slide 14

Slide 14 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 14/38 SO HE SAYS... DELIVERY BOUNDARY [ i ] BOUNDARY [ i ] INTERACTOR ENTITY ENTITY ENTITY REQUEST MODEL RESPONSE MODEL

Slide 15

Slide 15 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 15/38 FROM PAPER TO PRACTICE ?

Slide 16

Slide 16 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 16/38 THE WAY WE DID IT FACADE Cake PHP Controller View Model Validate Delegate MODULE BUSINESS LOGIC REQUEST MODEL RESPONSE MODEL JSON API

Slide 17

Slide 17 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 17/38 MAPPING ON OTHER ARCHITECTURES C 4 Architecture Hexagonal Architecture

Slide 18

Slide 18 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 18/38 Q & A ABOUT ARCHITECTURE Questions About Architecture?

Slide 19

Slide 19 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 19/38 GETTING CUNTINUOUS Continuous XYZ

Slide 20

Slide 20 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 20/38 CONTINUOUS INTEGRATION

Slide 21

Slide 21 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 21/38 CONTINUOUS INTEGRATION

Slide 22

Slide 22 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 22/38 CONTINUOUS INTEGRATION

Slide 23

Slide 23 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 23/38 UNIT TESTS RUN CONTINUOUSLY 1321 test 6091 assertions = 1.81 minutes

Slide 24

Slide 24 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 24/38 MVC FRAMEWORK TESTED CONTINUOUSLY Controllers Helpers Some Views

Slide 25

Slide 25 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 25/38 WHAT OTHER TESTS? UNIT TESTS COMPONENT TESTS INTEGRATION TESTS API TESTS E2E M.T.

Slide 26

Slide 26 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 26/38 UI TESTS Tens of UI tests Run over a fake B. Logic ~10 minutes

Slide 27

Slide 27 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 27/38 CONTRACT TESTS A few hundred 20 min.

Slide 28

Slide 28 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 28/38 END TO END TESTS Even less ~ 30 min. Only essential features tested Robot & Selenium

Slide 29

Slide 29 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 29/38 CONNECTING THE DOTS UNISTORE ILLUMOS ... ... TEAM CITY BUILD ENCODE UNIT TEST PUBLISH E2E TEST M. LONG RUNNING TEST NOTIFY USERS

Slide 30

Slide 30 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 30/38 Q & A ABOUT INFRASTRUCTURE Questions About Continuous XYZ

Slide 31

Slide 31 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 31/38 PLANNING, COLLABORATION, LEARNING Processes and Practices

Slide 32

Slide 32 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 32/38 SCRUM – LEAN – KANBAN SCRUM LEAN KANBAN

Slide 33

Slide 33 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 33/38 ELIMINATE UNIMPORTANT ORGANIZATIONAL DETAILS

Slide 34

Slide 34 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 34/38 BE AGILE WITH THE TOOLS ALSO

Slide 35

Slide 35 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 35/38 CONTINUOUS LEARNING Too Difficult Too Easy Just Right Complexity Time

Slide 36

Slide 36 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 36/38 QUALITY OVER DEADLINE

Slide 37

Slide 37 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 37/38 SHOOT! Questions About Any Previous Topic

Slide 38

Slide 38 text

2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com 38/38 THANK YOU THANK YOU