SlideShare una empresa de Scribd logo
1 de 68
ENTORNOS
DE DESARROLLO
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
OPTIMIZACIÓN Y
DOCUMENTACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Consiste en realizar una transformación
al software preservando su
comportamiento, modificando su
estructura interna para mejorarlo
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
No cambiar la funcionalidad del código
ni el comportamiento del programa, el
programa deberá comportarse de la
misma forma antes y después de la
refactorización
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
TABULACIÓN
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Nos permite visualizar el código
organizado jerárquicamente sangrando
las líneas de código dentro de los
bloques de código.
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
PATRONES DE
REFACTORIZACIÓN
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
EXTRAER MÉTODO
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Cuando existe un fragmento de código
que puede agruparse, convirtiendo el
fragmento en un método cuyo nombre
explique el propósito del método
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
SEPARAR VARIABLES TEMPORALES
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
En caso de tener variables temporales
que son usadas más de una vez (si ser de
bucle o colección) creamos variables
diferentes para cada caso
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
ELIMINAR ASIGNACIÓN DE
PARÁMETROS
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Usamos variables temporales en lugar de
parámetros de objetos cuando han de
recibir una asignación
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
MOVER MÉTODO
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
En caso de que un método sea usado por
más de una clase, creamos un método
similar que funciona por delegación
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
CONSOLIDAR FRAGMENTOS
DUPLICADOS EN CONDICIONALES
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Si un fragmento de código está en todas
las ramas de un condicional debemos
sacar dicho fragmento de la expresión
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
DESCOMPONER UN CONDICIONAL
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Ante un condicional de complicada
declaración, debemos extraer métodos
de la condición y del cuerpo del
condicional
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
CONSOLIDAD EXPRESIONES
CONDICIONALES
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Si tenemos una secuencia de condiciones
con el mismo resultado debemos
combinarlo en una solo expresión y
extraerlo
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
REEMPLAZAR CONDICIONAL POR
POLIMORFISMO
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Si tenemos un condicional que tiene
diferentes comportamientos
dependiendo del objeto desplazamos
cada condicional en un método
sobrecargado en una subclase.
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
REEMPLAZAR NÚMERO MÁGICO
CON CONSTANTE SIMBÓLICA
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Debemos sustituir los literales con
significado particular por constantes
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
REEMPLAZAR NÚMERO MÁGICO
CON MÉTODO CONSTANTE
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Debemos sustituir los literales con
significado particular por métodos que
nos devuelvan el literal
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
REEMPLAZAR DATOS Y VALORES
POR OBJETOS
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Cuando tengamos atributos que
necesitan información debemos
convertirlos en objetos
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
REEMPLAZAR ARRAY CON OBJETO
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
En caso de tener un array en el que sus
elementos tengan significado diferente
lo sustituimos por un objeto que tenga
un atributo para cada elemento
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
ENCAPSULAR ATRIBUTO
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Si tenemos un atributo público lo
convertimos en privado y le creamos un
método de acceso
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
ENCAPSULAR ATRIBUTO CON
PROPIEDAD
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Si tenemos un atributo público lo
convertimos propiedad de un objeto
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
ENCAPSULAR COLECCIÓN
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Ante un método que devuelve una
colección le añadimos métodos de
adicción y eliminación y hacemos que
devuelva la colección de solo lectura
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
REEMPLAZAR SUBCLASES POR
ATRIBUTOS
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Si tenemos subclases que solo varían en
métodos que devuelven información
constate, cambiamos el método por
atributos de la superclase y eliminamos
la subclase
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
EXTRAER CLASES
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Si tenemos una clase que hace el trabajo
que deberían hacer dos creamos una
nueva clase y movemos los atributos y
métodos relevantes de la vieja a la nueva
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
MALOS OLORES
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Son una relación de malas prácticas de
desarrollo, indicadores que nuestro
código debería ser refactorizado
REFACTORIZACIÓN
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Los programas más útiles son aquellos
con métodos cortos ya que facilitan la
reutilización
REFACTORIZACIÓN
MÉTODO LARGO
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Clases que hacen demasiado u con baja
cohesión son vulnerables a los cambios
REFACTORIZACIÓN
CLASE GRANDE
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Los métodos con muchos parámetros
son difíciles de comprender y cambian
con frecuencia
REFACTORIZACIÓN
LISTA DE PARÁMETROS LARGA
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Debe intentarse utilizar pequeños
objetos para pequeñas tareas evitándose
el uso de tipos primitivos para ellos
REFACTORIZACIÓN
OBSESIÓN PRIMITIVA
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Las clases siempre deben tener un
comportamiento no trivial (evitar tan
solo el get y set)
REFACTORIZACIÓN
CLASE DE DATOS
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Evitar los Case o Switch con muchas
clausulas o If anidados
REFACTORIZACIÓN
ESTRUCTURAS DE AGRUPACIÓN CONDICIONAL
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Comentarios excesivamente largos tan
solo ocultan otros “malos olores”
REFACTORIZACIÓN
COMENTARIOS
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Algunos objetos tienen código difícil de
comprender ya que emanan de atributos
que tan solo se usan en determinadas
circunstancias
REFACTORIZACIÓN
ATRIBUTO TEMPORAL
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Jerarquías con clases sin utilidad actual a
la espera de modificaciones fututas del
código
REFACTORIZACIÓN
GENERALIDADES ESPECULATIVA
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Si se añade una subclase a una jerarquía
conlleva el añadir otra nueva clase en
otra jerarquía distinta
REFACTORIZACIÓN
JERARQUÍAS PARALELAS
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Clases cuyo único trabajo es la
delegación y ser intermediaria
REFACTORIZACIÓN
INTERMEDIARIO
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Si las clases hijas no necesitan lo que
heredan, generalmente la herencia está
mal aplicada
REFACTORIZACIÓN
LEGADO RECHAZADO
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Se debe evitar que clases utilicen parte
privadas de otras
REFACTORIZACIÓN
INTIMIDAD INADECUADA
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Un cliente pide algo a un objeto que a su
vez lo pide a otro y este a otro…
REFACTORIZACIÓN
CADENA DE MENSAJES
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Una clase que hace poco o nada debería
eliminarse
REFACTORIZACIÓN
CLASE PEREZOSA
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Un cambio en una clase implica cambiar
muchas otras
REFACTORIZACIÓN
CAMBIOS DE CADENA
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Un método que utiliza más cantidad de
cosas de otro objeto que de si mismo
REFACTORIZACIÓN
ENVIDIA DE CARACTERÍSTICAS
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Se ha de evitar el duplicar, copiar, pegar
código
REFACTORIZACIÓN
DUPLICACIÓN DE CÓDIGO
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
Manejo de datos que se arrastran juntos
debieran situarse en una clase
REFACTORIZACIÓN
GRUPOS DE DATOS
ENTORNOS DE DESARROLLO
OPTIMIZACIÓN Y DOCUMENTACIÓN
© J.D.CABRERA
ENTORNOS
DE DESARROLLO
Refactoring y patrones de diseño para optimizar código

Más contenido relacionado

La actualidad más candente

서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해중선 곽
 
Servidor DNS Windows
Servidor DNS WindowsServidor DNS Windows
Servidor DNS WindowsSergio Santos
 
HDLC & basic protocols
HDLC & basic protocolsHDLC & basic protocols
HDLC & basic protocolsAkhil Kaushik
 
Mobile Communication Broadcast System Jochen Schiller
Mobile Communication Broadcast System Jochen SchillerMobile Communication Broadcast System Jochen Schiller
Mobile Communication Broadcast System Jochen SchillerSonali Chauhan
 
Plaquette du logiciel ITSM Octopus (Format A4 France)
Plaquette du logiciel ITSM Octopus (Format A4 France) Plaquette du logiciel ITSM Octopus (Format A4 France)
Plaquette du logiciel ITSM Octopus (Format A4 France) Octopus-ITSM
 
FIWARE Tech Summit - FIWARE Cygnus and STH-Comet
FIWARE Tech Summit - FIWARE Cygnus and STH-CometFIWARE Tech Summit - FIWARE Cygnus and STH-Comet
FIWARE Tech Summit - FIWARE Cygnus and STH-CometFIWARE
 
CDMA cellular radio network
CDMA cellular radio networkCDMA cellular radio network
CDMA cellular radio networkoDesk
 
simha msbi resume
simha msbi resumesimha msbi resume
simha msbi resumeT.N simha
 
Improve Employee Experiences on Cisco RoomOS Devices, Webex, and Microsoft Te...
Improve Employee Experiences on Cisco RoomOS Devices, Webex, and Microsoft Te...Improve Employee Experiences on Cisco RoomOS Devices, Webex, and Microsoft Te...
Improve Employee Experiences on Cisco RoomOS Devices, Webex, and Microsoft Te...ThousandEyes
 

La actualidad más candente (12)

Network Layer
Network LayerNetwork Layer
Network Layer
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해
 
Servidor DNS Windows
Servidor DNS WindowsServidor DNS Windows
Servidor DNS Windows
 
DSL
DSLDSL
DSL
 
HDLC & basic protocols
HDLC & basic protocolsHDLC & basic protocols
HDLC & basic protocols
 
Mobile Communication Broadcast System Jochen Schiller
Mobile Communication Broadcast System Jochen SchillerMobile Communication Broadcast System Jochen Schiller
Mobile Communication Broadcast System Jochen Schiller
 
Plaquette du logiciel ITSM Octopus (Format A4 France)
Plaquette du logiciel ITSM Octopus (Format A4 France) Plaquette du logiciel ITSM Octopus (Format A4 France)
Plaquette du logiciel ITSM Octopus (Format A4 France)
 
Dns security
Dns securityDns security
Dns security
 
FIWARE Tech Summit - FIWARE Cygnus and STH-Comet
FIWARE Tech Summit - FIWARE Cygnus and STH-CometFIWARE Tech Summit - FIWARE Cygnus and STH-Comet
FIWARE Tech Summit - FIWARE Cygnus and STH-Comet
 
CDMA cellular radio network
CDMA cellular radio networkCDMA cellular radio network
CDMA cellular radio network
 
simha msbi resume
simha msbi resumesimha msbi resume
simha msbi resume
 
Improve Employee Experiences on Cisco RoomOS Devices, Webex, and Microsoft Te...
Improve Employee Experiences on Cisco RoomOS Devices, Webex, and Microsoft Te...Improve Employee Experiences on Cisco RoomOS Devices, Webex, and Microsoft Te...
Improve Employee Experiences on Cisco RoomOS Devices, Webex, and Microsoft Te...
 

Destacado

Tabla comparativa
Tabla comparativaTabla comparativa
Tabla comparativaBrenda0709
 
Diseño de una estrategia metodologica de situacion problema
Diseño de una estrategia metodologica de situacion problemaDiseño de una estrategia metodologica de situacion problema
Diseño de una estrategia metodologica de situacion problemaNorma Alicia Muñoz Reyes
 
Actividad #4 BASE DE DATOS
Actividad #4 BASE DE DATOSActividad #4 BASE DE DATOS
Actividad #4 BASE DE DATOSCamilo Velilla
 
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...jose francisco arenas jimenez
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCCCRiis
 

Destacado (6)

Tabla comparativa
Tabla comparativaTabla comparativa
Tabla comparativa
 
Bdd u1 a4_anet
Bdd u1 a4_anetBdd u1 a4_anet
Bdd u1 a4_anet
 
Diseño de una estrategia metodologica de situacion problema
Diseño de una estrategia metodologica de situacion problemaDiseño de una estrategia metodologica de situacion problema
Diseño de una estrategia metodologica de situacion problema
 
Actividad #4 BASE DE DATOS
Actividad #4 BASE DE DATOSActividad #4 BASE DE DATOS
Actividad #4 BASE DE DATOS
 
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, java
 

Similar a Refactoring y patrones de diseño para optimizar código

ENTORNOS DE DESARROLLO: PATRONES Y ANTIPATRONES
ENTORNOS DE DESARROLLO: PATRONES Y ANTIPATRONESENTORNOS DE DESARROLLO: PATRONES Y ANTIPATRONES
ENTORNOS DE DESARROLLO: PATRONES Y ANTIPATRONESJacinto Cabrera Rodríguez
 
ENTORNOS DE DESARROLLO: OPTIMIZACIÓN Y DOCUMENTACIÓN
ENTORNOS DE DESARROLLO: OPTIMIZACIÓN Y DOCUMENTACIÓN ENTORNOS DE DESARROLLO: OPTIMIZACIÓN Y DOCUMENTACIÓN
ENTORNOS DE DESARROLLO: OPTIMIZACIÓN Y DOCUMENTACIÓN Jacinto Cabrera Rodríguez
 
ENTORNOS DE DESARROLLO: ECLIPSE - INSTALACIÓN
ENTORNOS DE DESARROLLO: ECLIPSE - INSTALACIÓN ENTORNOS DE DESARROLLO: ECLIPSE - INSTALACIÓN
ENTORNOS DE DESARROLLO: ECLIPSE - INSTALACIÓN Jacinto Cabrera Rodríguez
 
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN I
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN IENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN I
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN IJacinto Cabrera Rodríguez
 
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - ExasolExtendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - ExasolJavier Abadía
 
Working effectively with legacy code
Working effectively with legacy codeWorking effectively with legacy code
Working effectively with legacy codeBiko
 
Oracle Database 11g vs 12c
Oracle Database 11g vs 12cOracle Database 11g vs 12c
Oracle Database 11g vs 12cDeiby Gómez
 

Similar a Refactoring y patrones de diseño para optimizar código (9)

ENTORNOS DE DESARROLLO: PATRONES Y ANTIPATRONES
ENTORNOS DE DESARROLLO: PATRONES Y ANTIPATRONESENTORNOS DE DESARROLLO: PATRONES Y ANTIPATRONES
ENTORNOS DE DESARROLLO: PATRONES Y ANTIPATRONES
 
ENTORNOS DE DESARROLLO: OPTIMIZACIÓN Y DOCUMENTACIÓN
ENTORNOS DE DESARROLLO: OPTIMIZACIÓN Y DOCUMENTACIÓN ENTORNOS DE DESARROLLO: OPTIMIZACIÓN Y DOCUMENTACIÓN
ENTORNOS DE DESARROLLO: OPTIMIZACIÓN Y DOCUMENTACIÓN
 
ENTORNOS DE DESARROLLO: EL SOFTWARE
ENTORNOS DE DESARROLLO: EL SOFTWAREENTORNOS DE DESARROLLO: EL SOFTWARE
ENTORNOS DE DESARROLLO: EL SOFTWARE
 
ENTORNOS DE DESARROLLO: ECLIPSE - INSTALACIÓN
ENTORNOS DE DESARROLLO: ECLIPSE - INSTALACIÓN ENTORNOS DE DESARROLLO: ECLIPSE - INSTALACIÓN
ENTORNOS DE DESARROLLO: ECLIPSE - INSTALACIÓN
 
ENTORNOS DE DESARROLLO: INSTALACIÓN Y USO
ENTORNOS DE DESARROLLO: INSTALACIÓN Y USO ENTORNOS DE DESARROLLO: INSTALACIÓN Y USO
ENTORNOS DE DESARROLLO: INSTALACIÓN Y USO
 
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN I
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN IENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN I
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN I
 
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - ExasolExtendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
 
Working effectively with legacy code
Working effectively with legacy codeWorking effectively with legacy code
Working effectively with legacy code
 
Oracle Database 11g vs 12c
Oracle Database 11g vs 12cOracle Database 11g vs 12c
Oracle Database 11g vs 12c
 

Más de Jacinto Cabrera Rodríguez

DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONESDISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONESJacinto Cabrera Rodríguez
 

Más de Jacinto Cabrera Rodríguez (20)

REDES: DUCTUS Y CANALETAS II
REDES: DUCTUS Y CANALETAS IIREDES: DUCTUS Y CANALETAS II
REDES: DUCTUS Y CANALETAS II
 
OTRAS UNIDADES DE ALMACENAMIENTO
OTRAS UNIDADES DE ALMACENAMIENTOOTRAS UNIDADES DE ALMACENAMIENTO
OTRAS UNIDADES DE ALMACENAMIENTO
 
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONESDISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
 
LAS FUENTES EN LA HISTORIA DEL ARTE
LAS FUENTES EN LA HISTORIA DEL ARTELAS FUENTES EN LA HISTORIA DEL ARTE
LAS FUENTES EN LA HISTORIA DEL ARTE
 
TOULOUSE LAUTREC
TOULOUSE LAUTRECTOULOUSE LAUTREC
TOULOUSE LAUTREC
 
PRÁCTICA MANEJO DE MEMORIA
PRÁCTICA MANEJO DE MEMORIAPRÁCTICA MANEJO DE MEMORIA
PRÁCTICA MANEJO DE MEMORIA
 
DISPOSITIVOS MÓVILES: MATERIAL DESIGN II
DISPOSITIVOS MÓVILES: MATERIAL DESIGN IIDISPOSITIVOS MÓVILES: MATERIAL DESIGN II
DISPOSITIVOS MÓVILES: MATERIAL DESIGN II
 
ZÓCALOS DE TARJETAS
ZÓCALOS DE TARJETASZÓCALOS DE TARJETAS
ZÓCALOS DE TARJETAS
 
ZÓCALOS DE PROCESADOR
ZÓCALOS DE PROCESADORZÓCALOS DE PROCESADOR
ZÓCALOS DE PROCESADOR
 
TIPOS DE MÓDULOS DE MEMORIA
TIPOS DE MÓDULOS DE MEMORIATIPOS DE MÓDULOS DE MEMORIA
TIPOS DE MÓDULOS DE MEMORIA
 
CARCASAS DE ORDENADOR
CARCASAS DE ORDENADORCARCASAS DE ORDENADOR
CARCASAS DE ORDENADOR
 
TIPOS DE TORNILLOS
TIPOS DE TORNILLOSTIPOS DE TORNILLOS
TIPOS DE TORNILLOS
 
PRACTICAS DE REDES: PRÁCTICA 26
PRACTICAS DE REDES: PRÁCTICA 26PRACTICAS DE REDES: PRÁCTICA 26
PRACTICAS DE REDES: PRÁCTICA 26
 
PRACTICAS DE REDES: PRÁCTICA 25
PRACTICAS DE REDES: PRÁCTICA 25PRACTICAS DE REDES: PRÁCTICA 25
PRACTICAS DE REDES: PRÁCTICA 25
 
PRACTICAS DE REDES: PRÁCTICA 24
PRACTICAS DE REDES: PRÁCTICA 24PRACTICAS DE REDES: PRÁCTICA 24
PRACTICAS DE REDES: PRÁCTICA 24
 
PRACTICAS DE REDES: PRÁCTICA 23
PRACTICAS DE REDES: PRÁCTICA 23PRACTICAS DE REDES: PRÁCTICA 23
PRACTICAS DE REDES: PRÁCTICA 23
 
REDES: TOMAS DE DATOS
REDES: TOMAS DE DATOSREDES: TOMAS DE DATOS
REDES: TOMAS DE DATOS
 
PRACTICAS DE REDES: PRÁCTICA 22
PRACTICAS DE REDES: PRÁCTICA 22PRACTICAS DE REDES: PRÁCTICA 22
PRACTICAS DE REDES: PRÁCTICA 22
 
PRACTICAS DE REDES: PRÁCTICA 21
PRACTICAS DE REDES: PRÁCTICA 21PRACTICAS DE REDES: PRÁCTICA 21
PRACTICAS DE REDES: PRÁCTICA 21
 
PRACTICAS DE REDES: PRÁCTICA 20
PRACTICAS DE REDES: PRÁCTICA 20PRACTICAS DE REDES: PRÁCTICA 20
PRACTICAS DE REDES: PRÁCTICA 20
 

Último

Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++luzgaray6
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.CeteliInmaculada
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Leonardo J. Caballero G.
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Leonardo J. Caballero G.
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 

Último (6)

Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 

Refactoring y patrones de diseño para optimizar código