Este documento describe varios conceptos relacionados con la calidad del código, incluyendo code smells, principios SOLID y refactorización. Explica que los code smells son síntomas que indican problemas de calidad en el código y diseño. Describe varios code smells como rigidez, fragilidad e inamovilidad. También explica los cinco principios SOLID y cómo ayudan a mejorar la calidad del código. Finalmente, señala que la refactorización es importante para mejorar el código al cambiar su estructura interna sin alterar su comportamiento
16. Actitud http://www.flickr.com/photos/designd15/4220055968/in/photostream/
“Escribir código que entienda la computadora es una
técnica; escribir código que entienda un ser humano
es un Arte” – Robert ‘Uncle Bob’ Martin
17. Entonces, ¿Por
qué es
importante
escribir mejor
código?
http://www.websoftwareqa.com/wp-content/uploads/2010/07/Computer-Code.jpg
19. Cómo detectar
Dónde puedo si lo estoy
encontrar la haciendo mal?
información que
necesito?
Qué puedo
aplicar y qué
Qué patrones no?
resuelven este
problema?
22. Qué son los Code Smells?
Son todos los síntomas que
podemos encontrar en el código
fuente de un sistema que
indican que muy probablemente
existan problemas más
profundos de calidad de código,
de diseño o de ambos.
52. Single Responsibility Principle
“Cada objeto debe tener
una responsabilidad
única, y esta
responsabilidad debe
estar completamente
encapsulada dentro de
la clase”
“Las clases deben tener una única
responsabilidad, una única razón de
cambio”
53. Open / Close Principle
“Una clase debe
estar abierta para
extensión pero
cerrada para
modificación”
55. Interface Segregation Principle
“Mantenga interfaces
finas a un nivel de
granularidad que el cliente
necesita.
Los clientes no deben ser
forzados a depender de
interfaces que no utilizan.”
56. Dependency Inversion Principle
“Clases de alto nivel
no deben depender
de clases de bajo
nivel. Ambas deben
depender de sus
abstracciones”
“Dependa de abstracciones, no de
objetos concretos”
59. Referencias
• Clean Code: A Handbook of Agile Software Craftsmanship,
Robert C. Martin (Aug 11, 2008) http://www.amazon.com/Clean-Code-
Handbook-Software-Craftsmanship/dp/0132350882
• Agile Software Development, Principles, Patterns, and
Practices, Robert C. Martin (Oct 25, 2002) http://www.amazon.com/Software-
Development-Principles-Patterns-Practices/dp/0135974445
• Code Smells, Louhekon (2010) http://www.louhekon.fi/2010/02/code-
smells/
• A Taxonomy for "Bad Code Smells ", Mika Mäntylä (2010)
http://www.soberit.hut.fi/mmantyla/BadCodeSmellsTaxonomy.htm
60. Referencias
• A Taxonomy for "Bad Code Smells ", Mika Mäntylä (2010)
http://www.soberit.hut.fi/mmantyla/BadCodeSmellsTaxonomy.htm
• SOLID Software Design, AbbasRaza (2012)
http://www.slideshare.net/theceo/solid-software-design
• SOLID OO Principles, Andreas Enbohm (2011)
http://www.slideshare.net/enbohm/solid-design-principles-9016117
• The SOLID Principles in C#, Leon van Bokhorst (2012)
http://www.remondo.net/solid-principles-csharp-single-responsibility/
• A qué huele tu código?, Rubén Bernárdez (2011)
http://www.slideshare.net/rubenbp/a-qu-huele-tu-cdigo-afinando-nuestro-
olfato-7400175
61. Más Code
Smells y Tips
para corregirlos
Tomado de:
http://www.slideshare.net/rubenbp/a-qu-huele-tu-cdigo-afinando-nuestro-olfato-7400175