Download - The big ball of mud!
Nacho Fanjul
#4sessions25 - Febrero
The big ball of mud!
Lenguaje
introducción
Es un sistema de comunicación estructurado para el que existe un Contexto de uso y ciertos principios combinatorios formales.
Tal día como hoy…
introducción
introducción
… 6 meses después...
Nacho FanjulKey Developer
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!
Cup of coffee time!
08:30 AM
Cup of coffee time!
08:30 AM
Cup of coffee time!
08:30 AM
09:00 AM
Architecture
Capa presentación WEB API APP
09:00 AM
Architecture
Capa presentación WEB API APP
Application Service Logic Entitie
s
09:00 AM
Architecture
Capa presentación WEB API APP
Application
Infrastructure BD Agents Files
Service Logic Entitie
s
09:00 AM
Architecture
Capa presentación WEB API APP
Application
Infrastructure BD Agents Files
Service Logic Entitie
s
Crosscutting
Const Enum
09:30 AM
Show me the architecture
09:30 AM
Show me the architecture
09:30 AM
Show me the architecture
09:30 AM
Show me the architecture
09:30 AM
Show me the architecture
10:00 AM
Patterns
• Soluciones a problemas ya típicos y recurrentes• Vocabulario común• Estandarizar• Facilitar el aprendizaje y desarrollo• Evitar reiteración
10:00 AM
Patterns
MVC
Decorator
Factory
Facade
Unit Of Work Repository
10:30 AM
Polymorphism
Una misma operación, distintos tipos de objetos
10:30 AM
Polymorphism
Una misma operación, distintos tipos de objetos
10:30 AM
Polymorphism
Una misma operación, distintos tipos de objetos
10:30 AM
Polymorphism
Una misma operación, distintos tipos de objetos
10:30 AM
Polymorphism
Una misma operación, distintos tipos de objetos
11:00 AM
Almuerzo time!
11:00 AM
Almuerzo time!
11:30 AM
Abstraction
Separar el comportamiento especifico de un objeto, método o clase.
• Clases base (Herencia)• Métodos • Evitar acoplamientos• …
11:30 AM
Abstraction
Separar el comportamiento especifico de un objeto, método o clase.
• Clases base (Herencia)• Métodos • Evitar acoplamientos• …
12:00 PM
In my code (I)
• Scrolling• Naming• Use objects• Comments
12:00 PM
In my code (I)
• Scrolling• Naming• Use objects• Comments
12:00 PM
In my code (I)
• Scrolling• Naming• Use objects• Comments
12:00 PM
In my code (I)
• Scrolling• Naming• Use objects• Comments
12:00 PM
In my code (I)
• Scrolling• Naming• Use objects• Comments
12:00 PM
In my code (I)
• Scrolling• Naming• Use objects• Comments
12:30 PM
In my code (II)
• If Else…• Constants• Configurable• Logs
12:30 PM
In my code (II)
• If Else…• Constants• Configurable• Logs
12:30 PM
In my code (II)
• If Else…• Constants• Configurable• Logs
12:30 PM
In my code (II)
• If Else…• Constants• Configurable• Logs
12:30 PM
In my code (II)
• If Else…• Constants• Configurable• Logs
01:00 PM
Extensions
Extendamos nuestros objetos y dotémoslos de funcionalidad.
• ToString();• ToList();• Toxxxxx();• …
01:00 PM
Extensions
Extendamos nuestros objetos y dotémoslos de funcionalidad.
• ToString();• ToList();• Toxxxxx();• …
01:00 PM
Extensions
Extendamos nuestros objetos y dotémoslos de funcionalidad.
• ToString();• ToList();• Toxxxxx();• …
01:00 PM
Extensions
Extendamos nuestros objetos y dotémoslos de funcionalidad.
• ToString();• ToList();• Toxxxxx();• …
01:30 PM
Generics
Clases base con parámetros genéricospara su reutilización.
Lunch Time!
02:00-03:00 PM
03:30 PM
Testing
Un minuto “perdido” haciendo un test, son horas GANADAS en resolución de bugs!
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
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.
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.
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.
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.
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.
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.
API
04:30 PM
Llámame, y yo te respondo!
Implement API
05:00 PM
• Simple• Verbos• Retornos adecuados
Respetando voy, respetando vengo…
Implement API
05:00 PM
• Simple• Verbos• Retornos adecuados
Respetando voy, respetando vengo…
Implement API
05:00 PM
• Simple• Verbos• Retornos
adecuados
Respetando voy, respetando vengo…
Diogenes syndrome
05:30 PM
Diogenes syndrome
05:30 PM
The end!!
06:00 PM
"Programa como si supieses que quien va a mantener tu código, es un psicópata con
tendencias violentas que sabe donde vives"
conclusiones
"Programa como si supieses que quien va a mantener tu código, es un psicópata con
tendencias violentas que sabe donde vives"
conclusiones
Q&ANacho Fanjul @nfanjul