Redescubre la programación - #MPWAR - #OpenDayLaSalle

Post on 14-Apr-2017

358 views 3 download

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

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

@JavierCaneMPWAR - LaSalle OpenDay 2016

¡Bienvenidos!Soy Javier Ferrer González

Contenidos

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

1. Introducción Code Smells y Refactoring

Calidad de Software

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?

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

Code Smells

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

— Martin Fowler

2. QWAN Cards Contest

Gamificación!

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!

! ¡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

! 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

! 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

! Data Clumps (bloater)

◕ Refactorings:

◗ Preserve Whole Object

◗ Extract Class

◗ Introduce Parameter Object

QWAN Cards Contest Code Smells

! 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

! Magic number (Change Preventer)

◕ Refactorings:

◗ Replace Magic Number with Symbolic Constant

QWAN Cards Contest Code Smells

! Comments (Dispensable)

◕ Refactorings:

◗ Extract method

◗ Extract Variable

◗ Introduce Assertion

QWAN Cards Contest Code Smells

3. Más allá de los Code Smells

Cosa fina!

Más allá de los Code Smells Cosa fina

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

Más allá de los Code Smells TDD

4. MPWAR

Visión global

MPWAR Visión Global

Entorno

HTML

PHP

JS

FW

DB

DE

MPWAR Visión Global

Entorno

HTML

PHP

JS

FW

DB

DE

MPWAR Visión Global

Entorno

HTML

PHP

JS

FW

DB

DE

Perf

MPWAR Visión Global

Entorno

HTML

PHP

JS

FW

DB

DE

Perf

Emp

SEO

Seguridad

Contenidos/Negocio

MPWAR Visión Global

Frontend Backend

11 asignaturasVisión global dentro de especialidad web

1 TFMLleva a la práctica todo lo aprendido

+300 horas lectivasProfesores con experiencia profesional

¿Preguntas?

¡Gracias!Contacto @JavierCane javier.mailserio@gmail.com Codely.TV

Credits

!Presentation template by SlidesCarnival