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.8 (236 valoraciones)
5 horas y 40 minutos · curso
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.8
236 valoraciones

Contenido del curso:

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

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

Metodologías y Herramientas

Comentarios en el código, ¿sí o no?

05 Diciembre 2019 César Díaz Alcolea

sin actividad · Carrera

Dudas frecuentes

1

¿Cuál es el precio?

En OpenWebinars no vendemos cursos, talleres o laboratorios unitarios.

Tenemos diferentes tipos de suscripciones, que te dará acceso completo a todos los cursos de la plataforma y a los nuevos 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 el curso?

En OpenWebinars los cursos 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.

Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información.