Upgrade to Pro — share decks privately, control downloads, hide ads and more …

One Bug per Month

One Bug per Month

The story about how we changed and work at Syneto.

Patkos Csaba

June 11, 2014
Tweet

More Decks by Patkos Csaba

Other Decks in Programming

Transcript

  1. 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 )
  2. 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
  3. 2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com

    4/38 SO, WHAT WILL THIS TALK BE ABOUT? Architecture, Infrastructure, Processes and Practices
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com

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

    13/38 SO HE SAYS... DELIVERY INTERACTOR ENTITY ENTITY ENTITY BOUNDARY [ i ] BOUNDARY [ i ]
  13. 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
  14. 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
  15. 2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com

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

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

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

    24/38 MVC FRAMEWORK TESTED CONTINUOUSLY Controllers Helpers Some Views
  19. 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.
  20. 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
  21. 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
  22. 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
  23. 2014 – Patkós Csaba / [email protected] / @PatkosCsaba / patkoscsaba.blogspot.com

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

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

    35/38 CONTINUOUS LEARNING Too Difficult Too Easy Just Right Complexity Time