Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The big ball of mud | 4Sessions Feb17

786 views

Published on

8.30am, llegas a la oficina, te preparas el café, enciendes el ordenador, revisas el correo mientras se abre el proyecto en el que llevas trabajando las últimas semanas. Y en ese preciso momento en el que acaba de cargarse, es cuando tus próximas 8 horas pueden hacer que te sientas la persona más gratificada del mundo, o por el contrario te deprimas hasta el punto de querer que te trague una gran bola de lodo. Que tu estado sea uno u otro dependerá de lo que te DIGA tu código, sí, sí, porque tu código puede ser cantos de sirena o las palabras del propio demonio que ha subido de los infiernos.

En esta sesión se dan una serie de directrices que harán que tu código se convierta en cantos de sirena, y que cuando abras tu proyecto, ¡sientas que las próximas 8 horas serán las mejores de tu vida!

Published in: Technology
  • Be the first to comment

  • Be the first to like this

The big ball of mud | 4Sessions Feb17

  1. 1. Nacho Fanjul #4sessions 25 - Febrero The big ball of mud
  2. 2. Lenguaje introducción Es un sistema de comunicación estructurado para el que existe un Contexto de uso y ciertos principios combinatorios formales.
  3. 3. Tal día como hoy… introducción
  4. 4. introducción … 6 meses después...
  5. 5. Nacho Fanjul Key Developer @nfanjul nfanjul@pasiona.com@
  6. 6. Agenda08:30 am 09:00 – 12:00 am 12:00 – 02:00 PM 02:00 – 03:00 Pm 03:30 Pm 04:00 pm 04:30 – 06:00 pm 06:00 pm Conclusiones –Cup of coffee time! –Architecture –Code –lunch time! –Testing –Javascript –API –The end!
  7. 7. Cup of coffee time! 08:30 AM
  8. 8. Cup of coffee time! 08:30 AM
  9. 9. Cup of coffee time! 08:30 AM
  10. 10. 09:00 AM Architecture Capa presentación WEB API APP
  11. 11. 09:00 AM Architecture Capa presentación WEB API APP Application Service Logic Entities
  12. 12. 09:00 AM Architecture Capa presentación WEB API APP Application Infrastructure BD Agent s Files Service Logic Entities
  13. 13. 09:00 AM Architecture Capa presentación WEB API APP Application Infrastructure BD Agent s Files Service Logic Entities Crosscutting Const Enum
  14. 14. 09:30 AM Show me the architecture
  15. 15. 09:30 AM Show me the architecture
  16. 16. 09:30 AM Show me the architecture
  17. 17. 09:30 AM Show me the architecture
  18. 18. 09:30 AM Show me the architecture
  19. 19. 10:00 AM Patterns • Soluciones a problemas ya típicos y recurrentes • Vocabulario común • Estandarizar • Facilitar el aprendizaje y desarrollo • Evitar reiteración
  20. 20. 10:00 AM Patterns MVC Decorator Factory Facade Unit Of Work Repository
  21. 21. 10:30 AM Polymorphism Una misma operación, distintos tipos de objetos
  22. 22. 10:30 AM Polymorphism Una misma operación, distintos tipos de objetos
  23. 23. 10:30 AM Polymorphism Una misma operación, distintos tipos de objetos
  24. 24. 10:30 AM Polymorphism Una misma operación, distintos tipos de objetos
  25. 25. 10:30 AM Polymorphism Una misma operación, distintos tipos de objetos
  26. 26. 11:00 AM Almuerzo time!
  27. 27. 11:00 AM Almuerzo time!
  28. 28. 11:30 AM Abstraction Separar el comportamiento especifico de un objeto, método o clase. • Clases base (Herencia) • Métodos • Evitar acoplamientos • …
  29. 29. 11:30 AM Abstraction Separar el comportamiento especifico de un objeto, método o clase. • Clases base (Herencia) • Métodos • Evitar acoplamientos • …
  30. 30. 12:00 PM In my code (I) • Scrolling • Naming • Use objects • Comments
  31. 31. 12:00 PM In my code (I) • Scrolling • Naming • Use objects • Comments
  32. 32. 12:00 PM In my code (I) • Scrolling • Naming • Use objects • Comments
  33. 33. 12:00 PM In my code (I) • Scrolling • Naming • Use objects • Comments
  34. 34. 12:00 PM In my code (I) • Scrolling • Naming • Use objects • Comments
  35. 35. 12:00 PM In my code (I) • Scrolling • Naming • Use objects • Comments
  36. 36. 12:30 PM In my code (II) • If Else… • Constants • Configurable • Logs
  37. 37. 12:30 PM In my code (II) • If Else… • Constants • Configurable • Logs
  38. 38. 12:30 PM In my code (II) • If Else… • Constants • Configurable • Logs
  39. 39. 12:30 PM In my code (II) • If Else… • Constants • Configurable • Logs
  40. 40. 12:30 PM In my code (II) • If Else… • Constants • Configurable • Logs
  41. 41. 01:00 PM Extensions Extendamos nuestros objetos y dotémoslos de funcionalidad. • ToString(); • ToList(); • Toxxxxx(); • …
  42. 42. 01:00 PM Extensions Extendamos nuestros objetos y dotémoslos de funcionalidad. • ToString(); • ToList(); • Toxxxxx(); • …
  43. 43. 01:00 PM Extensions Extendamos nuestros objetos y dotémoslos de funcionalidad. • ToString(); • ToList(); • Toxxxxx(); • …
  44. 44. 01:00 PM Extensions Extendamos nuestros objetos y dotémoslos de funcionalidad. • ToString(); • ToList(); • Toxxxxx(); • …
  45. 45. 01:30 PM Generics Clases base con parámetros genéricos para su reutilización.
  46. 46. Lunch Time! 02:00-03:00 PM
  47. 47. 03:30 PM Testing Un minuto “perdido” haciendo un test, son horas GANADAS en resolución de bugs!
  48. 48. 03:30 PM Testing Un minuto “perdido” haciendo un test, son horas GANADAS en resolución de bugs! • Nombres descriptivos • 1 test => 1 funcionalidad • Simple • UnitTest != IntegracionTest • Uso de Mocks
  49. 49. Javascript 04:00 PM • Modular • Estructurado • Herencia • Métodos públicos • Métodos privados Llego donde pocos lenguajes llegan y dentro del “caos”, yo soy el REY.
  50. 50. Javascript 04:00 PM • Modular • Estructurado • Herencia • Métodos públicos • Métodos privados Llego donde pocos lenguajes llegan y dentro del “caos”, yo soy el REY.
  51. 51. Javascript 04:00 PM • Modular • Estructurado • Herencia • Métodos públicos • Métodos privados Llego donde pocos lenguajes llegan y dentro del “caos”, yo soy el REY.
  52. 52. Javascript 04:00 PM • Modular • Estructurado • Herencia • Métodos públicos • Métodos privados Llego donde pocos lenguajes llegan y dentro del “caos”, yo soy el REY.
  53. 53. Javascript 04:00 PM • Modular • Estructurado • Herencia • Métodos públicos • Métodos privados Llego donde pocos lenguajes llegan y dentro del “caos”, yo soy el REY.
  54. 54. Javascript 04:00 PM • Modular • Estructurado • Herencia • Métodos públicos • Métodos privados Llego donde pocos lenguajes llegan y dentro del “caos”, yo soy el REY.
  55. 55. API 04:30 PM Llámame, y yo te respondo!
  56. 56. Implement API 05:00 PM • Simple • Verbos • Retornos adecuados Respetando voy, respetando vengo…
  57. 57. Implement API 05:00 PM • Simple • Verbos • Retornos adecuados Respetando voy, respetando vengo…
  58. 58. Implement API 05:00 PM • Simple • Verbos • Retornos adecuados Respetando voy, respetando vengo…
  59. 59. Diogenes syndrome 05:30 PM
  60. 60. Diogenes syndrome 05:30 PM
  61. 61. The end!! 06:00 PM
  62. 62. "Programa como si supieses que quien va a mantener tu código, es un psicópata con tendencias violentas que sabe donde vives" conclusiones
  63. 63. "Programa como si supieses que quien va a mantener tu código, es un psicópata con tendencias violentas que sabe donde vives" conclusiones
  64. 64. Q&ANacho Fanjul @nfanjul nfanjul@pasiona.com@

×