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 / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

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

    3/38 ABOUT PATKÓS CSABA
  4. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

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

    5/38 HIGH LEVEL ARCHITECTURE BUSINESS LOGIC DATABASE FILESYSTEM UI MVC NET. API MAIN FACTORY
  6. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @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
  7. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @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
  8. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @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
  9. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @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
  10. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

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

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

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

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

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

    15/38 FROM PAPER TO PRACTICE ?
  16. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @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
  17. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

    17/38 MAPPING ON OTHER ARCHITECTURES C 4 Architecture Hexagonal Architecture
  18. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

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

    19/38 GETTING CUNTINUOUS Continuous XYZ
  20. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

    20/38 CONTINUOUS INTEGRATION
  21. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

    21/38 CONTINUOUS INTEGRATION
  22. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

    22/38 CONTINUOUS INTEGRATION
  23. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

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

    24/38 MVC FRAMEWORK TESTED CONTINUOUSLY Controllers Helpers Some Views
  25. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

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

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

    27/38 CONTRACT TESTS A few hundred 20 min.
  28. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

    28/38 END TO END TESTS Even less ~ 30 min. Only essential features tested Robot & Selenium
  29. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @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
  30. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

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

    31/38 PLANNING, COLLABORATION, LEARNING Processes and Practices
  32. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

    32/38 SCRUM – LEAN – KANBAN SCRUM LEAN KANBAN
  33. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

    33/38 ELIMINATE UNIMPORTANT ORGANIZATIONAL DETAILS
  34. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

    34/38 BE AGILE WITH THE TOOLS ALSO
  35. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

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

    36/38 QUALITY OVER DEADLINE
  37. 2014 – Patkós Csaba / patkoscsaba@gmail.com / @PatkosCsaba / patkoscsaba.blogspot.com

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

    38/38 THANK YOU THANK YOU