Metodologías

Curso de técnicas de Refactoring y Clean Code

Con este curso de refactoring y clean code aprenderás a detectar código sucio y a aplicar técnicas y buenas prácticas para generar un código limpio.

Impartido por:

3.7 (198 valoraciones)
5 horas y 40 minutos · Empresas
Curso de técnicas de Refactoring y Clean Code

Lo que aprenderás en este curso:

  • Aprenderás que es Refactoring.
  • Conocerás el concepto de código limpio y su importancia.
  • Conocerás cuando y como hacer Refactoring.
  • Identificar código a Refactorizar.
  • Conocer una serie de técnicas para generar código limpio.

Requisitos del curso

Para realizar este curso es necesario tener conocimientos de algún lenguaje orientado a objetos. Los ejemplos de código serán en C#, pero la teoría es aplicable a cualquier lenguaje

Valoraciones de estudiantes:

  • 5
  • 4
  • 3
  • 2
  • 1
3.7
198 valoraciones

Contenido del curso:

    • 3m
    • Refactoring
      7m
    • Clean Code
      6m
    • Technical Debt
      11m
    • ¿Cuándo refactorizar?
      3m
    • ¿Cómo refactorizar?
      4m
    • Code Smells to Refactor
      3m
    • Refactoring techniques
      4m
    • Bloaters
      14m
    • Object Orientation Abusers
      8m
    • Change Preventers
      6m
    • Dispensables
      14m
    • Couplers
      7m
    • Other Smells
      2m
    • Extract Method
      2m
    • Inline Method
      2m
    • 2m
    • Inline Temp
      2m
    • Replace Temp with Query
      2m
    • Split Temporary Variable
      3m
    • Remove Assignments to Parameters
      2m
    • Replace Method with Method Object
      3m
    • Substitute Algorithm
      3m
    • Move Method
      2m
    • Move Field
      2m
    • Extract Class
      5m
    • Inline Class
      2m
    • Hide Delegate
      2m
    • Remove Middle Man
      1m
    • Introduce Foreign Method
      3m
    • Introduce Local Extension
      2m
    • Self Encapsulate Field
      3m
    • Replace Data Value with Object
      2m
    • Change Value to Reference
      2m
    • Change Reference to Value
      2m
    • Replace Array with Object
      2m
    • Duplicate Observed Data
      2m
    • Change Unidirectional Association to Bidirectional
      2m
    • Change Bidirectional Association to Unidirectional
      1m
    • Replace Magic Number with Symbolic Constant
      3m
    • Encapsulate Field
      1m
    • Encapsulate Collection
      1m
    • Replace Type Code with Class
      3m
    • Replace Type Code with Subclasses
      2m
    • Replace Type Code with State-Strategy
      2m
    • Replace Subclass with Fields
      2m
    • Decompose Conditional
      3m
    • Consolidate Conditional Expression
      2m
    • Consolidate Duplicate Conditional Fragments
      2m
    • Remove Control Flag
      2m
    • Replace Nested Conditional with Guard Clauses
      3m
    • Replace Conditional with Polymorphism
      3m
    • Introduce Null Object
      2m
    • Introduce Assertion
      3m
    • Rename Method
      3m
    • Add Parameter
      3m
    • Remove Parameter
      3m
    • Separate Query from Modifier
      4m
    • Parameterize Method
      2m
    • Replace Parameter with Explicit Methods
      2m
    • Preserve Whole Object
      2m
    • Replace Parameter with Method Call
      2m
    • Introduce Parameter Object
      3m
    • Remove Setting Method
      2m
    • Hide Method
      2m
    • Replace Constructor with Factory Method
      2m
    • Replace Error Code with Exception
      3m
    • Replace Exception with Test
      1m
    • Pull up Field
      2m
    • Pull up Method
      1m
    • Pull Up Constructor Body
      1m
    • Push Down Method
      1m
    • Push Down Field
      1m
    • Extract Subclass
      2m
    • Extract Superclass
      1m
    • Extract Interface
      1m
    • Collapse Hierarchy
      2m
    • Form Template Method
      2m
    • Replace Inheritance with Delegation
      2m
    • Replace Delegation with Inheritance
      6m
    • Naming
      6m
    • Variables
      9m
    • Functions
      10m
    • Objects, Data Structures and Classes
      5m
    • Testing
      14m
    • Concurrency
      3m
    • Error Handling
      5m
    • Comments
      10m
También te puede interesar

Te dejamos una selección de cursos, carreras y artículos

Dudas frecuentes

1

¿Cuál es el precio?

En OpenWebinars no vendemos formaciones.

Tenemos diferentes tipos de suscripciones, que te dará acceso completo a todas las formaciones de la plataforma y a las nuevas que vamos lanzando, siempre y cuando tu suscripción esté activa (como Spotify con la música o Netflix con las películas y series).

¿Eres una empresa? Tenemos planes especiales para ti. Consúltanos aquí.

2

¿Cuándo comienza la formación?

En OpenWebinars las formaciones no tienen fecha de inicio y de final.

Cada curso tiene una fecha de publicación y desde ese día estarán 100% disponible todos los contenidos del curso para los usuarios suscritos a alguno de nuestros planes.

3

¿Obtengo un diploma de certificación?

En todos los cursos existe un examen final para evaluar tus conocimientos adquiridos. Si superas este examen con más de un 80% de preguntas correctas obtendrás el diploma de certificación. Puedes realizar un intento cada 24 horas.

Este diploma es un certificado privado emitido por OpenWebinars, y valorado en el mundo empresarial, ya que tenemos grandes compañías clientes que se forman con nosotros y valoran nuestras certificaciones.

No olvides poner tu certificación en tu perfil Linkedin y en tu currículum.

Este curso de refactoring y clean code te permitirá conocer importantes conceptos y aprender a aplicar técnicas y buenas prácticas con las que generar un código limpio, para evitar desarrollar un código sucio y todos los problemas que el mismo conlleva.

Si estás interesado en realizar este curso de una forma correcta, lo más adecuado es que poseas conocimientos en algún lenguaje de programación orientado a objetos, preferiblemente C#, aunque puede servir cualquier otro, ya que los ejemplos que se utilizarán son bastante entendibles.

En caso de no cumplir este requisito o de querer aprender previamente el lenguaje C#, puedes realizar nuestro curso de C# para principiantes, que encontrarás aquí en OpenWebinars, dentro de tu suscripción, y que te permitirá comenzar a dominar ese lenguaje desde cero.

Además, es muy interesante tener conocimientos sobre patrones de diseño y sobre los principios SOLID de desarrollo, que igualmente, si no es tu caso, podrás aprender realizando el curso de SOLID y patrones de diseño, impartido por el mismo tutor de este curso de clean code.

Para comenzar la formación el tutor ha preparado un bloque introductorio, en el que realizará una primera toma de contacto con la temática del curso, de forma que vayas conociendo algunos conceptos básicos e importantes.

Durante el mismo se explicará qué es el código sucio, qué es el código limpio y sus ventajas, qué son los code smells, qué es el refactoring o proceso de refactorización, cómo y cuándo realizarlo y qué técnicas y métodos de refactoring podemos utilizar, qué es la deuda técnica o technical debt y sus causas, entre otras cosas.

A partir de esta interesante e importante introducción, el profesor del curso irá desarrollando los demás bloques en los que ha seccionado el curso.

En el siguiente apartado y durante las diferentes lecciones que lo forman, aprenderás a detectar diferentes tipos de code smells, como son los de tipo bloaters, object orientation abusers, change preventers, dispensables y couplers, y cómo y corregir y prevenir cada uno de esos tipos.

A continuación, se explicarán las técnicas de refactorización más importantes, como son las técnicas extract method, inline method, extract variable, inline temp, replace temp with query, split temporary variable, remove assignments to parameters, replace method with method object y substitute algorithm.

Seguidamente pasaremos a desarrollar otro tipo de técnicas, que en este caso serán las técnicas de refactorización que permiten mover características entre objetos. Aquí aprenderás a utilizar las técnicas move method, move field, extract class, inline class, hide delegate, remove middle man, introduce foreign method e introduce local extensión.

En el bloque posterior aprenderás a usar las técnicas de refactorización centradas en la organización de datos, cómo las técnicas self encapsulate field, replace data value with object, change value to reference, change reference to value, replace array with object, duplicate observed data, change unidirectional association to bidirectional, change bidirectional association to unidirectional, replace magic number with symbolic constant, encapsulate field, encapsulate collection, replace type code with class, replace yype code with subclases, replace type code with state-strategy y replace subclass with fields.

El profesor del curso continuará con la exposición de las técnicas de refactoring para la simplificacion de expresiones condicionales, cómo son decompose conditional, consolidate conditional expression, consolidate duplicate conditional fragments, remove control flag, replace nested conditional with guard clauses, replace conditional with polymorphism, introduce null object e introduce assertion.

El siguiente tipo de técnicas de refactorización del código que aprenderás a aplicar será el de la simplificación de la llamada a método, que son rename method, add parameter, remove parameter, separate query from modifier, parameterize method, replace parameter with explicit methods, preserve whole object, replace parameter with method call, introduce parameter object, remove setting method, hide method, replace constructor with factory method, replace error code with exception y replace exception with test.

Llegamos al último apartado dedicado a las técnicas de refactorización, en el que se exponen las técnicas relacionadas principalmente con poder mover las funcionalidades a lo largo de jerarquía de herencia de clases.

Las técnicas que aquí se van a explicar son pull up field, pull up method, pull up constructor body, push down method, push down field, extract subclass, extract superclass, extract interface, collapse hierarchy, form template method, replace inheritance with delegation y replace delegation with inheritance.

Para finalizar el curso se verá una guía de principios o pautas para generar un código limpio, que te permitirán generar un código más legible, más reutilizable y más refactorizable a futuro. En las clases que componen este apartado final verás todos estos consejos agrupados por las diferentes partes del código.

Una vez hayas concluido este curso clean code, serás capaz de identificar ciertos tipos de problemas que hacen que el código sea menos mantenible a fututo y más costoso hacer cambios en el mismo, tanto en un código que hayas desarrollado previamente, como en un código que hayas heredado de otra persona.

Artículos
Ver todos