No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Resumen y cierre del curso

14/14
Recursos

Nombre del curso: Curso de Buenas Prácticas y Código Limpio en C#

Dean: Sebastián Delmont

Faculty Manager: Ricardo Celis

School Owner: Juan David Castro

Profesor: Miguel Teheran

Dirección: Karol Castañeda

Producción OPS: Lizeth Cáceres y Rocío Martínez

Creación audiovisual: César A. Pinilla

Edición de video: Juan Leon

Postproducción de audio: Jorge Andres Torres Viveros

Diseño gráfico: Romina Lavín

Coordinación General: Andrés Arizmendy, Daniel Gutiérrez, Carol Baquero, Carlos Céspedes y Sura Cedeño

Revisión: Rodrigo Goitia y Natalia Moreno Espinoza

Aportes 41

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Excelente curso básico para adentrarse a las buenas practicas de código, en particular me agrada mucho como explica este profesor, he visto otros de sus cursos en c# y .net y siempre me ha gustado su forma tan sencilla de explicar.

El curso es corto y sencillo de entender. Felicitaciones a Miguel, explica muy bien. Por otra parte, muchos de los ajustes estan orientados a practicas muy visuales u organizacionales (que pretenden mantener un orden) pero, desde otra perspectiva, hay muchas posibles mejoras a nivel de rendimiento que seria interesante evaluar, tambien, el hecho de simplificar o reducir el cosigo no siempre representa o resulta en algo 100% bueno si, posteriormente, evaluamos el producto a nivel de ensamblado o ejecutable, puede ser que mucho de lo que refactorizamos se haya "des-refactorizado" en la media compilacion por x o y factor (punto a evaluar). Tambien, estaria muy bien revisar todo lo que se ha enriquecido c# hasta hoy y por ultimo, pero no menos importante, todo lo relacionado a acceso y manejo de memoria y tambien los temas relacionados a abstraccion. De nuevo, el curso es bueno y me parece una muy buena introduccion a un tema muy muy amplio,l. Espero, en el futuro, vengan los siguiente "capitiulos" donde se pueda profundizar un poco mas. Excelente Miguel y platzi 👏

Muy buen curso. Explicado de forma excelente de parte del profesor. Felicitaciones!

Uno de los mejores cursos de buenas prácticas y código limpio que he tomado. Me sumo al pedido del compañero Simón Flores, Platzi debería tener una ruta de especialización de C# con un proyecto real como la tiene JavaScript.

Mis más sinceras felicitaciones al profesor Miguel Teherán, sus cursos son muy fáciles de llevar y de entender, se nota los años de experiencia.

¡Éxitos Team Platzi!

Excelente curso, solamente una pequeña crítica:
Sería muy bueno que haga una ruta de aprendizaje totalmente completo de C#, desde básico a más complejo (o simplemente desde los primeros pasos a realizar un pequeño proyecto importante) porque explica muy bien!!!
La verdad que me ha motivado aún más en aprender este lenguaje.
Fuerte abrazo desde Alemania, profesor! y también muchas gracias por dedicarle tiempo a nosotros!

El tema del curso es muy bueno y el profesor tambien es muy bueno, sin embargo el curso se queda corto y no profundiza.

Desde mi punto de vista:

  • leer Clean code de robert C. martin
  • luego practicar, practicar y practicar a aplicar buenas practicas
  • igual ayuda mucho leer foros y suscribirse a posts que te ayuden a mejorar en un lenguaje ya que cada lenguaje tiene lo propio

Excelente curso, la mayoría de las recomendaciones aplican para otros lenguajes de programación

Gracias, sería bueno un curso de pruebas unitarias en c# con .net, tambien con entity framework para simular las bases de datos, y con mocks a apis externas

Profe Miguel realmente es un vacano explicando. Hace que todo se entienda de forma clara y precisa.
Ojala sigan ampliando la ruta de C# considero que es un lenguaje muy importante.

Muchas gracias por el curso
Me gusto, aprendí bastante de mejorar, y no estar mezclando las versiones anteriores con las nuevas de C#.
SIN DUDAS LOS CURSOS DE ESTE DOCENTE DESTACAN SOBRE EL RESTO, MUY BUEN CURSO!!
Excelente explicación Prof. Miguel, me sirvió para reestructurar mi proyecto
**Recomendaciones finales:** * Lee sobre buenas prácticas * Realiza code review entre colegas, así como entre compañeros y compañeras de trabajo * Realiza refactoring luego de implementar código * Utiliza herramientas que te ayuden a limpiar tu código * Implementa estándares y prácticas comunes en tu empresa o proyecto

Curso corto pero con un buen temario, sería bueno poder profundizar en cuales son las mejores prácticas en los temas de Seguridad, Rendimiento, Escalabilidad, etc.

Excelente curso

Excelente Curso Volvi a agarrarle gusto a C# hacia mucho no usaba C# como desde .net 3 antes de net core ha cambiado mucho ahora si me gustó Excelente Curso Mil gracias !!!
Codigo super optimizado con todo lo que vimos en el curso: ```js namespace ToDo { public class ToDoList { private readonly List<string> tasks = new List<string>(); public void Start() { MenuOption selectedOption; do { selectedOption = ShowMainMenu(); switch (selectedOption) { case MenuOption.Add: AddTask(); break; case MenuOption.Remove: RemoveTask(); break; case MenuOption.List: ListTasks(); break; case MenuOption.Exit: break; default: Console.WriteLine("Invalid option. Please select a valid option."); break; } } while (selectedOption != MenuOption.Exit); } private MenuOption ShowMainMenu() { Console.WriteLine("----------------------------------------"); Console.WriteLine("Enter your choice:"); Console.WriteLine("1. Add new task"); Console.WriteLine("2. Remove task"); Console.WriteLine("3. List pending tasks"); Console.WriteLine("4. Exit"); int input = GetValidIntInput(); return (MenuOption)input; } private void AddTask() { Console.WriteLine("Enter the new task name:"); string taskName = Console.ReadLine().Trim(); if (!string.IsNullOrEmpty(taskName)) { tasks.Add(taskName); Console.WriteLine("Task added successfully."); } else { Console.WriteLine("Please enter a valid task name."); } } private void RemoveTask() { if (tasks.Count == 0) { Console.WriteLine("No tasks to remove."); return; } Console.WriteLine("Enter the number of the task to remove:"); ListTasks(); int input = GetValidIntInput(); int indexToRemove = input - 1; if (indexToRemove >= 0 && indexToRemove < tasks.Count) { string removedTask = tasks[indexToRemove]; tasks.RemoveAt(indexToRemove); Console.WriteLine($"Task '{removedTask}' removed successfully."); } else { Console.WriteLine("Invalid task number. Please try again."); } } private void ListTasks() { if (tasks.Count == 0) { Console.WriteLine("No tasks to list."); return; } Console.WriteLine("----------------------------------------"); int index = 1; foreach (string task in tasks) { Console.WriteLine($"{index++}. {task}"); } Console.WriteLine("----------------------------------------"); } private int GetValidIntInput() { int input; while (!int.TryParse(Console.ReadLine(), out input)) { Console.WriteLine("Invalid input. Please enter a valid integer."); } return input; } public enum MenuOption { Add = 1, Remove = 2, List = 3, Exit = 4 } } class Program { static void Main(string[] args) { new ToDoList().Start(); } } } ```
Excelente curso. Conciso, directo y facil de comprender
Excelente Curso!

Estimado Miguel,

En conjunto con el profe Juan de Pildoras Informáticas, un canal de Youtube, son unos cracks y le coges cariño a este lenguaje en especial por lo simple que se explica y las respuestas sencillas a cosas que pueden parecer complejas.

10/10

Muy buen curso...

Buen curso! y sobre todo muy claro!

creo que es el mejor profesor de platzi Miguel teheran

Excelente curso. Básico, pero directo.

Que buen curso 😃

No usen chatgpt para implementar cosas enredadas, mejor aprendanlas sino seran problemas para el futuro.

Gran curso corto, pero al grano. Ahora voy por el curso de SOLID.

Este curso hizo que me enamorara de nuevo en C#! excelente curso profe Miguel!

Muchas gracias Miguel, hace ver más interesantes y envolventes las experiencias de aprendizaje C#.

Excelente Curso

Muy buen curso, justo lo que uno necesita para poder replicarlo al equipo de desarrollo, y a los iniciantes en programacion…

Me encanto el curso, me parece que es algo basico que todos los programadores debemos saber y aplicar

Muchas gracias Miguel, tus cursos en C# siempre son los mejores, los complemento para sre backend

Me parece que el curso es muy correcto en su duración, ejemplos y el profesor explicó todo de una manera muy sencilla y entendible.

Muy buen curso! Este fue finalmente mi resultado:

List<string> taskList = new List<string>();


// Main code
while (MenuMain()) ;

// -------------------------- Functions --------------------------

// -------------------------- Menus --------------------------

/// <summary>
/// Show the main menu
/// </summary>
/// <returns>Returns wether the user has not chose to exit</returns>
bool MenuMain()
{
    PrintSeparator();
    PrintMainMenuOptions();

    MenuOption? selectedOption = (MenuOption?)ReadIntSafely();
    return (selectedOption) switch
    {
        (MenuOption.Add) => RunAndReturnTrue(MenuAdd),
        (MenuOption.Remove) => RunAndReturnTrue(MenuRemove),
        (MenuOption.TaskList) => RunAndReturnTrue(MenuTaskList),
        (MenuOption.Exit) => false,
        _ => true
    };
}

void MenuRemove()
{
    Console.WriteLine("Ingrese el número de la tarea a remover: ");
    ShowTaskList();
    PrintSeparator();

    int? selectedInt = ReadIntSafely();
    if (selectedInt == null)
    {
        return;
    }
    int indexToRemove = (int)selectedInt - 1;

    RemoveItemFromTaskList(indexToRemove);
}

void MenuAdd()
{
    Console.WriteLine("Ingrese el nombre de la tarea: ");
    string task = Console.ReadLine();
    taskList.Add(task);
    Console.WriteLine("Tarea registrada");
}

void MenuTaskList()
{
    if (taskList.Count == 0)
    {
        Console.WriteLine("No hay tareas por realizar");
        return;
    }
    PrintSeparator();
    ShowTaskList();
    PrintSeparator();
}

// -------------------------- Helpers --------------------------

IEnumerable<(T item, int index)> WithIndex<T>(IEnumerable<T> source)
{
    return source.Select((item, index) => (item, index));
}

bool RunAndReturnTrue(Action func) { func(); return true; }

void RemoveItemFromTaskList(int index)
{
    if (index < 0 || taskList.Count <= index)
    {
        return;
    }
    string task = taskList[index];
    taskList.RemoveAt(index);
    Console.WriteLine($"Tarea {task} eliminada");
}

int? ReadIntSafely()
{
    return int.TryParse(Console.ReadLine(), out int selectedInt) ? selectedInt : null;
}

void ShowTaskList()
{
    foreach (var (task, i) in WithIndex(taskList))
    {
        Console.WriteLine($"{i + 1}. {task}");
    }
}

void PrintMainMenuOptions()
{
    Console.WriteLine("Ingrese la opción a realizar: ");
    Console.WriteLine($"{(int)MenuOption.Add}. Nueva tarea");
    Console.WriteLine($"{(int)MenuOption.Remove}. Remover tarea");
    Console.WriteLine($"{(int)MenuOption.TaskList}. Tareas pendientes");
    Console.WriteLine($"{(int)MenuOption.Exit}. Salir");
}

void PrintSeparator() => Console.WriteLine("----------------------------------------");

// -------------------------- Enums --------------------------

enum MenuOption
{
    Add = 1,
    Remove = 2,
    TaskList = 3,
    Exit = 4
}

No se si seguí correctamente principio KISS.

Gran Curso, muy necesario para continuar la ruta de aprendizaje en c#

Este curso de Buenas Prácticas y Código Limpio en C# es una excelente oportunidad para aquellos que desean mejorar sus habilidades de programación y escribir código de alta calidad. Aprenderás a escribir código mantenible, legible y fácil de depurar, lo que te permitirá trabajar de manera más eficiente y resolver problemas con mayor facilidad. ¡Definitivamente recomendaría este curso a cualquier desarrollador C# interesado en mejorar sus habilidades de programación!

Que gran curso, aborda temas importantes, aunque a nivel básico, da unas bases grandes para seguir aprendiendo a tener un código limpio y con buenas practicas, se aprendió bastante, gracias profe, explica muy bien.

Muy buen curso, y la explicación mejor aún

Excelente curso, contenido muy bueno.