redescubre la programación - #mpwar - #opendaylasalle
TRANSCRIPT
![Page 1: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/1.jpg)
Redescubre la programaciónCode Smells, Refactorings, y cosa fina
@JavierCaneMPWAR - LaSalle OpenDay 2016
![Page 2: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/2.jpg)
¡Bienvenidos!Soy Javier Ferrer González
![Page 3: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/4.jpg)
1. Introducción Code Smells y Refactoring
Calidad de Software
![Page 5: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/7.jpg)
Code Smells
![Page 8: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/8.jpg)
“ 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](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/9.jpg)
![Page 10: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/10.jpg)
2. QWAN Cards Contest
Gamificación!
![Page 11: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/12.jpg)
! ¡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](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/13.jpg)
! 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](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/14.jpg)
! 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](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/15.jpg)
! 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](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/16.jpg)
! 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](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/17.jpg)
! Magic number (Change Preventer)
◕ Refactorings:
◗ Replace Magic Number with Symbolic Constant
QWAN Cards Contest Code Smells
![Page 18: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/18.jpg)
! Comments (Dispensable)
◕ Refactorings:
◗ Extract method
◗ Extract Variable
◗ Introduce Assertion
QWAN Cards Contest Code Smells
![Page 19: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/19.jpg)
3. Más allá de los Code Smells
Cosa fina!
![Page 20: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/21.jpg)
Más allá de los Code Smells TDD
![Page 22: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/22.jpg)
4. MPWAR
Visión global
![Page 23: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/23.jpg)
MPWAR Visión Global
Entorno
HTML
PHP
JS
FW
DB
DE
![Page 24: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/24.jpg)
MPWAR Visión Global
Entorno
HTML
PHP
JS
FW
DB
DE
![Page 25: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/25.jpg)
MPWAR Visión Global
Entorno
HTML
PHP
JS
FW
DB
DE
Perf
![Page 26: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/26.jpg)
MPWAR Visión Global
Entorno
HTML
PHP
JS
FW
DB
DE
Perf
Emp
SEO
Seguridad
![Page 27: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/27.jpg)
Contenidos/Negocio
MPWAR Visión Global
Frontend Backend
![Page 28: Redescubre la programación - #MPWAR - #OpenDayLaSalle](https://reader034.vdocuments.pub/reader034/viewer/2022052203/5882be0b1a28abb2478b5535/html5/thumbnails/28.jpg)
11 asignaturasVisión global dentro de especialidad web
1 TFMLleva a la práctica todo lo aprendido
+300 horas lectivasProfesores con experiencia profesional