Curso de técnicas de Refactoring y Clean Code
Impartido por:
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:
Contenido del curso:
-
- 3m
-
Refactoring7m
-
Clean Code6m
-
Technical Debt11m
-
¿Cuándo refactorizar?3m
-
¿Cómo refactorizar?4m
-
-
Code Smells to Refactor3m
-
Refactoring techniques4m
-
-
-
Bloaters14m
-
Object Orientation Abusers8m
-
Change Preventers6m
-
Dispensables14m
-
Couplers7m
-
Other Smells2m
-
-
-
Extract Method2m
-
Inline Method2m
- 2m
-
Inline Temp2m
-
Replace Temp with Query2m
-
Split Temporary Variable3m
-
Remove Assignments to Parameters2m
-
Replace Method with Method Object3m
-
Substitute Algorithm3m
-
-
-
Move Method2m
-
Move Field2m
-
Extract Class5m
-
Inline Class2m
-
Hide Delegate2m
-
Remove Middle Man1m
-
Introduce Foreign Method3m
-
Introduce Local Extension2m
-
-
-
Self Encapsulate Field3m
-
Replace Data Value with Object2m
-
Change Value to Reference2m
-
Change Reference to Value2m
-
Replace Array with Object2m
-
Duplicate Observed Data2m
-
Change Unidirectional Association to Bidirectional2m
-
Change Bidirectional Association to Unidirectional1m
-
Replace Magic Number with Symbolic Constant3m
-
Encapsulate Field1m
-
Encapsulate Collection1m
-
Replace Type Code with Class3m
-
Replace Type Code with Subclasses2m
-
Replace Type Code with State-Strategy2m
-
Replace Subclass with Fields2m
-
-
-
Decompose Conditional3m
-
Consolidate Conditional Expression2m
-
Consolidate Duplicate Conditional Fragments2m
-
Remove Control Flag2m
-
Replace Nested Conditional with Guard Clauses3m
-
Replace Conditional with Polymorphism3m
-
Introduce Null Object2m
-
Introduce Assertion3m
-
-
-
Rename Method3m
-
Add Parameter3m
-
Remove Parameter3m
-
Separate Query from Modifier4m
-
Parameterize Method2m
-
Replace Parameter with Explicit Methods2m
-
Preserve Whole Object2m
-
Replace Parameter with Method Call2m
-
Introduce Parameter Object3m
-
Remove Setting Method2m
-
Hide Method2m
-
Replace Constructor with Factory Method2m
-
Replace Error Code with Exception3m
-
Replace Exception with Test1m
-
-
-
Pull up Field2m
-
Pull up Method1m
-
Pull Up Constructor Body1m
-
Push Down Method1m
-
Push Down Field1m
-
Extract Subclass2m
-
Extract Superclass1m
-
Extract Interface1m
-
Collapse Hierarchy2m
-
Form Template Method2m
-
Replace Inheritance with Delegation2m
-
Replace Delegation with Inheritance6m
-
-
-
Naming6m
-
Variables9m
-
Functions10m
-
Objects, Data Structures and Classes5m
-
Testing14m
-
Concurrency3m
-
Error Handling5m
-
Comments10m
-
Te dejamos una selección de cursos, carreras y artículos
Carrera Programador Full Stack MEAN
Aprende cómo ser un desarrollador full stack en JavaScript con el stack MEAN.
Dudas frecuentes
¿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í.
¿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.
¿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.