Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Kata Contacts

2.736 visualizaciones

Publicado el

Kata Contacts Slides

Publicado en: Ingeniería
  • Sé el primero en comentar

Kata Contacts

  1. 1. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Karumi Dojo: Kata Contacts Pedro Vicente Gómez Sánchez Senior Mobile Developer at Karumi pedro@karumi.com @pedro_g_s github.com/pedrovgs
  2. 2. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
  3. 3. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Sergio Gutierrez Senior Mobile Developer Alberto Gragera Technical Director Jorge Barroso Google Developer Expert Davide Mendolia Senior Full Stack Engineer
  4. 4. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
  5. 5. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Karumi Dojo ● We are here to practice and learn. ● This exercise is meant to be collaborative, not competitive. ● Try to open your mind to new concepts.
  6. 6. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Karumi Dojo ● We are here to practice architecture. ● Keep always in mind the S.O.L.I.D principles. ● We are going to practice pair programming.
  7. 7. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Clean Architecture
  8. 8. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
  9. 9. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Clean Architecture Principles ● Separation of concerns using layers. ● Independent of Framework or third party libraries. ● Testable. ● Independent of UI or Database. ● The Dependency Rule.
  10. 10. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Clean Architecture Principles ● Entities representing enterprise business rules. ● Use cases of the software. ● Adapters to be decoupled from boundaries. ● Platform/Framework as a delivery mechanism. ● Data mapping.
  11. 11. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Clean Architecture Conclusion “Conforming to these simple rules is not hard, and will save you a lot of headaches going forward. By separating the software into layers, and conforming to The Dependency Rule, you will create a system that is intrinsically testable, with all the benefits that implies. When any of the external parts of the system become obsolete, like the database, or the web framework, you can replace those obsolete elements with a minimum of fuss.” - Robert C. Martin
  12. 12. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Clean Architecture Karumi Style
  13. 13. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Clean Architecture Karumi Style ● Model View Presenter and Presentation Models. ● Use cases ● Repositories to abstract the data origin. ● Adapters to abstract third party libraries. ● Data mapping.
  14. 14. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Time to practice!!!
  15. 15. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Rules: ● Do not start coding until you understand the requirements. ● Do not start coding without thinking in the most important part of the domain. ● Today your notebook is more important than your laptop. ● Think carefully the patterns and responsibilities associated to every class.
  16. 16. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Tips ● Baby steps. ● Think before to code. ● Write always testable code.
  17. 17. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Kata Contacts ● Command line application to handle your agenda. ● All the data is local but in the future will consume an external API. ● The user can add a contact. ● The user can list all the contacts already added.
  18. 18. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Are you ready?
  19. 19. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Business Requirements
  20. 20. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Entities
  21. 21. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Data Storage
  22. 22. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Use Cases
  23. 23. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs User Interface
  24. 24. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Changing Requirements
  25. 25. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Testing
  26. 26. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Resources ● The Clean Architecture - Robert C. Martin ● Kata Contacts - Karumi ● Rosie - Karumi

×