Redescubre la programación - #MPWAR - #OpenDayLaSalle

30
Redescubre la programación Code Smells, Refactorings, y cosa fina @JavierCane MPWAR - LaSalle OpenDay 2016

Transcript of Redescubre la programación - #MPWAR - #OpenDayLaSalle

Page 1: Redescubre la programación - #MPWAR - #OpenDayLaSalle

Redescubre la programaciónCode Smells, Refactorings, y cosa fina

@JavierCaneMPWAR - LaSalle OpenDay 2016

Page 2: Redescubre la programación - #MPWAR - #OpenDayLaSalle

¡Bienvenidos!Soy Javier Ferrer González

Page 3: Redescubre la programación - #MPWAR - #OpenDayLaSalle

Contenidos

! Introducción Code Smells y Refactoring ! QWAN Cards Contest ! Más allá de los Code Smells ! MPWAR

Page 4: Redescubre la programación - #MPWAR - #OpenDayLaSalle

1. Introducción Code Smells y Refactoring

Calidad de Software

Page 5: Redescubre la programación - #MPWAR - #OpenDayLaSalle

Introducción Code Smells y Refactoring Calidad de Software

Preguntas: ! ¿Existe el código bueno y el código malo? ! ¿Se puede medir objetivamente la calidad del Software?

Page 6: Redescubre la programación - #MPWAR - #OpenDayLaSalle

Introducción Code Smells y Refactoring Calidad de Software

Algunas respuestas: !Semántico (Ubiquitous Language) !Responsabilidades acotadas (SRP) !Tolerante a cambios (OCP) !No acoplado (DIP) !Baja complejidad accidental !Testeado

Page 7: Redescubre la programación - #MPWAR - #OpenDayLaSalle

Code Smells

Page 8: Redescubre la programación - #MPWAR - #OpenDayLaSalle

“ A code smell is a surface indication that usually corresponds to a deeper problem in the system.

— Martin Fowler

Page 9: Redescubre la programación - #MPWAR - #OpenDayLaSalle
Page 10: Redescubre la programación - #MPWAR - #OpenDayLaSalle

2. QWAN Cards Contest

Gamificación!

Page 11: Redescubre la programación - #MPWAR - #OpenDayLaSalle

QWAN Cards Contest

!Organización por grupos !Yo tengo Code Smells !Vosotros Refactorings !Diré 1 Code Smell !El grupo que diga 1 Refactoring a aplicar, gana un punto !El grupo con más puntos, gana la partida !Al decir un refactoring, hay que justificar el por qué ! ¡Hay premio!

Page 12: Redescubre la programación - #MPWAR - #OpenDayLaSalle

! ¡10 minutos! !https://refactoring.guru/ !https://sourcemaking.com/refactoring !http://refactoring.com/ !http://codely.tv/tag/refactoring/ !QWAN Cards

QWAN Cards Contest Fuentes de información

Page 13: Redescubre la programación - #MPWAR - #OpenDayLaSalle

! Long method (bloater)

◕ Refactorings:

◗ Extract method

◗ Decompose Conditional

◗ Replace Temp with Query

◗ Replace method with method object

◕ Debate: ¿Y si penalizamos rendimiento?

QWAN Cards Contest Code Smells

Page 14: Redescubre la programación - #MPWAR - #OpenDayLaSalle

! Primitive Obsession (bloater)

◕ Refactorings:

◗ Replace Data Value with Object

◗ Replace Type Code with Class

◕ Debate: ¿Y si creamos demasiadas clases?

QWAN Cards Contest Code Smells

Page 15: Redescubre la programación - #MPWAR - #OpenDayLaSalle

! Data Clumps (bloater)

◕ Refactorings:

◗ Preserve Whole Object

◗ Extract Class

◗ Introduce Parameter Object

QWAN Cards Contest Code Smells

Page 16: Redescubre la programación - #MPWAR - #OpenDayLaSalle

! Switch statements (OO abuser)

◕ Refactorings:

◗ Replace Type Code with Subclasses

◗ Replace Type Code with State/Strategy

◗ Replace Conditional with Polymorphism

◗ Introduce Null Object

QWAN Cards Contest Code Smells

Page 17: Redescubre la programación - #MPWAR - #OpenDayLaSalle

! Magic number (Change Preventer)

◕ Refactorings:

◗ Replace Magic Number with Symbolic Constant

QWAN Cards Contest Code Smells

Page 18: Redescubre la programación - #MPWAR - #OpenDayLaSalle

! Comments (Dispensable)

◕ Refactorings:

◗ Extract method

◗ Extract Variable

◗ Introduce Assertion

QWAN Cards Contest Code Smells

Page 19: Redescubre la programación - #MPWAR - #OpenDayLaSalle

3. Más allá de los Code Smells

Cosa fina!

Page 20: Redescubre la programación - #MPWAR - #OpenDayLaSalle

Más allá de los Code Smells Cosa fina

!SOLID !Composition over Inheritance !Tell don’t ask !Arquitectura Hexagonal !DDD !TDD

Page 21: Redescubre la programación - #MPWAR - #OpenDayLaSalle

Más allá de los Code Smells TDD

Page 22: Redescubre la programación - #MPWAR - #OpenDayLaSalle

4. MPWAR

Visión global

Page 23: Redescubre la programación - #MPWAR - #OpenDayLaSalle

MPWAR Visión Global

Entorno

HTML

PHP

JS

FW

DB

DE

Page 24: Redescubre la programación - #MPWAR - #OpenDayLaSalle

MPWAR Visión Global

Entorno

HTML

PHP

JS

FW

DB

DE

Page 25: Redescubre la programación - #MPWAR - #OpenDayLaSalle

MPWAR Visión Global

Entorno

HTML

PHP

JS

FW

DB

DE

Perf

Page 26: Redescubre la programación - #MPWAR - #OpenDayLaSalle

MPWAR Visión Global

Entorno

HTML

PHP

JS

FW

DB

DE

Perf

Emp

SEO

Seguridad

Page 27: Redescubre la programación - #MPWAR - #OpenDayLaSalle

Contenidos/Negocio

MPWAR Visión Global

Frontend Backend

Page 28: Redescubre la programación - #MPWAR - #OpenDayLaSalle

11 asignaturasVisión global dentro de especialidad web

1 TFMLleva a la práctica todo lo aprendido

+300 horas lectivasProfesores con experiencia profesional

Page 29: Redescubre la programación - #MPWAR - #OpenDayLaSalle

¿Preguntas?

¡Gracias!Contacto @JavierCane [email protected] Codely.TV

Page 30: Redescubre la programación - #MPWAR - #OpenDayLaSalle

Credits

!Presentation template by SlidesCarnival