No Comentes mal código, reescribelo
Introducción
Presentación
Prerrequisitos
Terminología: Buenas prácticas, refactoring, código limpio, deuda técnica
Descarga y análisis del proyecto a trabajar
Principios del código limpio
Nombramiento
Code Smells
Principio DRY
Principio KISS
Usando try catch
Mejoras en C# y comentarios
Evolución de C#
Interpolación de cadenas, inicializador de propiedades y operador condicional null
Implementando minimalismo
Uso de comentarios
Cierre
Resumen y cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Miguel Teheran
Aportes 7
Preguntas 3
No Comentes mal código, reescribelo
Ya que no siempre el código puede llevar consigo todo el peso de su documentación en solo comentarios, en consecuencia, tenemos que usar otras herramientas para hacerlo y que al mismo tiempo, nos ayuden a documentar todo un proyecto. Mi recomendación es : Gitbook. Ya que lo he usado y es de mi agrado. Vale la pena probarlo y es gratis para uso personal.
Sin embargo, si deseas una aplicación de escritorio, sin límites (o sea gratis), con buenos plugins, open source e innovadora, te puedo sugerirObsidian.
Si aún quieres probar más herramientas, te dejo un top de herramientas para documentar proyectos aquí.
Código actualizado:
List<string> TaskList = new List<string>();
int menuOption = 0;
do
{
menuOption = ShowMainMenu();
if ((Menu)menuOption == Menu.Add)
{
AddTask();
}
else if ((Menu)menuOption == Menu.Remove)
{
RemoveTask();
}
else if ((Menu)menuOption == Menu.List)
{
ShowTaskList();
}
} while ((Menu)menuOption != Menu.Exit);
/// <summary>
/// Show the options for Task:
/// 1. Nueva tarea
/// 2. Remover tarea
/// 3. Tareas pendientes
/// 4. Salir
/// </summary>
/// <returns>Returns menuOption indicated by user</returns>
int ShowMainMenu()
{
Console.WriteLine("----------------------------------------");
Console.WriteLine("Ingrese la opción a realizar: ");
Console.WriteLine("1. Nueva tarea");
Console.WriteLine("2. Remover tarea");
Console.WriteLine("3. Tareas pendientes");
Console.WriteLine("4. Salir");
string taskIndex = Console.ReadLine();
return Convert.ToInt32(taskIndex);
}
void RemoveTask()
{
try
{
Console.WriteLine("Ingrese el número de la tarea a remover: ");
ListTasks();
string taskIndex = Console.ReadLine();
// Remove one position because the array starts with 0
int indexToRemove = Convert.ToInt32(taskIndex) - 1;
if (indexToRemove <= TaskList.Count - 1 && indexToRemove >= 0)
{
if ((indexToRemove > -1) || (TaskList.Count > 0))
{
string taskToRemove = TaskList[indexToRemove];
TaskList.RemoveAt(indexToRemove);
Console.WriteLine($"Tarea {taskToRemove} eliminada");
}
}
else
{
Console.WriteLine("El número de tarea seleccionado no es válido.");
}
}
catch (Exception)
{
Console.WriteLine("Ha ocurrido un error al eliminar la tarea.");
}
}
void AddTask()
{
try
{
Console.WriteLine("Ingrese el nombre de la tarea: ");
string taskToAdd = Console.ReadLine();
if (!string.IsNullOrEmpty(taskToAdd))
{
TaskList.Add(taskToAdd);
Console.WriteLine("Tarea registrada");
}
else
{
Console.WriteLine("La tarea no puede estar vacía.");
}
}
catch (Exception)
{
Console.WriteLine("Ha ocurrido un error al intentar ingresar la tarea.");
}
}
void ShowTaskList()
{
if (TaskList?.Count > 0)
{
ListTasks();
}
else
{
Console.WriteLine("No hay tareas por realizar");
}
}
void ListTasks()
{
Console.WriteLine("----------------------------------------");
var indexTask = 1;
TaskList.ForEach(task => Console.WriteLine($"{indexTask++}. {task}"));
Console.WriteLine("----------------------------------------");
}
public enum Menu
{
Add = 1,
Remove = 2,
List = 3,
Exit = 4
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?