No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Nombramiento

5/14
Recursos

Aportes 19

Preguntas 6

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

TIP
Si usan Visual Studio pueden usar el comando Ctrl+R+R para renombrar variables, m茅todos o lo que necesiten en todos los lugares donde se use a la vez

Para buscar y reemplazar al mismo tiempo una palabra en VS Code:
Windows:
Ctrl+D+D
Mac:
CMD+D+D

Quiero un curso de patrones de dise帽o de este se帽or!!
por favor.

Nombramientos

Variables*
//Mal:
int d;

//Bien:
int daySinceModification;

M茅todo
//Mal:
public List<Users> getUsers( )

//Bien:
public List<Users> GetActiveUsers( )

Clases
//Mal:
public class ClassUser2

//Bien:
public class User

Con Ctrl + H te sale esta peque帽a barra en la que puedes escribir lo que quieres camiar por el que

En cursos pasados y recomendacion de un docente de la facultad, las variables deberian ser nombradas usando camelCase y las funciones deben ir con PascalCase

Algo por notar en los nombramientos de esta clase, es lo importante que una buena ortograf铆a puede aportar a nuestro c贸digo.

En Ingl茅s el adjetivo va antes que el sujeto, como en el caso de 鈥淢ainMenu鈥, primero va 鈥淢ain鈥 que quiere decir principal y luego va men煤, que es el sujeto. Por lo tanto, si trasladamos lo mismo para los dem谩s m茅todos como 鈥淪howMenuRemove鈥, que en este orden de ideas, iria -> 鈥淪howRemoveMenu鈥 y 鈥淪howMenuTaskList鈥 siendo -> 鈥淪howTaskListMenu鈥 se puede notar una gran diferencia.

As铆 va por ahora

using System;
using System.Collections.Generic;

namespace ToDo
{
    internal class Program
    {
        public static List<string> TaskList { get; set; }

        static void Main(string[] args)
        {
            TaskList = new List<string>();
            int menuOption = 0;
            do
            {
                menuOption = ShowMainMenu();
                if (menuOption == 1)
                {
                    AddTask();
                }
                else if (menuOption == 2)
                {
                    RemoveTask();
                }
                else if (menuOption == 3)
                {
                    ShowTaskList();
                }
            } while (menuOption != 4);
        }
        /// <summary>
        /// Show the main menu 
        /// </summary>
        /// <returns>Returns menuOption indicated by user</returns>
        public static 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");

            // Read taskIndex
            string taskIndex = Console.ReadLine();
            return Convert.ToInt32(taskIndex);
        }

        public static void RemoveTask()
        {
            try
            {
                Console.WriteLine("Ingrese el n煤mero de la tarea a remover: ");
                // Show current taks
                for (int i = 0; i < TaskList.Count; i++)
                {
                    Console.WriteLine((i + 1) + ". " + TaskList[i]);
                }
                Console.WriteLine("----------------------------------------");

                string taskIndex = Console.ReadLine();
                // Remove one position
                int indexToRemove = Convert.ToInt32(taskIndex) - 1;
                if (indexToRemove > -1)
                {
                    if (TaskList.Count > 0)
                    {
                        string taskToRemove = TaskList[indexToRemove];
                        TaskList.RemoveAt(indexToRemove);
                        Console.WriteLine("Tarea " + taskToRemove + " eliminada");
                    }
                }
            }
            catch (Exception)
            {
            }
        }

        public static void AddTask()
        {
            try
            {
                Console.WriteLine("Ingrese el nombre de la tarea: ");
                string taskToAdd = Console.ReadLine();
                TaskList.Add(taskToAdd);
                Console.WriteLine("Tarea registrada");
            }
            catch (Exception)
            {
            }
        }

        public static void ShowTaskList()
        {
            if (TaskList == null || TaskList.Count == 0)
            {
                Console.WriteLine("No hay tareas por realizar");
            } 
            else
            {
                Console.WriteLine("----------------------------------------");
                for (int i = 0; i < TaskList.Count; i++)
                {
                    Console.WriteLine((i + 1) + ". " + TaskList[i]);
                }
                Console.WriteLine("----------------------------------------");
            }
        }
    }
}

Para los que usen VS Code si seleccionan la palabra --> click derecho --> RenameSymbol, cambian una sola ves el nombre y listo

Hay IDEs que te muestran que problemas tienes en tu codigo variables o metodos que no se usan, valores que innecesarios o palabras mal escritas

se puede usar el comando ctrl + r X2 para remplazar el nombre anivel globa de la apliaci贸n o click derecho cambiar nombre
1. **Usa nombres descriptivos:** En lugar de usar `x` o `temp`, utiliza nombres como `contador` o `nombreUsuario`. 2. **Sigue la convenci贸n CamelCase para variables y par谩metros:** `nombreUsuario`, `saldoCuenta`, `fechaNacimiento`. 3. **Sigue la convenci贸n PascalCase para m茅todos, clases y propiedades:** `CalcularTotal`, `ObtenerNombreCompleto`, `ValidarEntradaUsuario`**;** `Cliente`, `Factura`, `ControladorDeAutenticaci贸n`. 4. **Sigue la convenci贸n SreamingSnakeCase para constantes:** `PI`, `TASA_DE_INTER脡S`, `LIMITE_MAXIMO`. 5. **Evita palabras reservadas:** No utilices palabras reservadas de C# como nombres de variables, ya que esto causar铆a conflictos y errores en tu c贸digo. 6. **Usa nombres concisos pero descriptivos:** Un nombre de variable debe ser lo suficientemente corto como para no ser engorroso, pero lo suficientemente largo como para transmitir su prop贸sito. Por ejemplo, en lugar de `cnt`, es preferible `contador`. 7. **No uses abreviaturas excesivas:** Aunque las abreviaturas pueden acortar nombres de variables, pueden hacer que el c贸digo sea menos legible. Utiliza abreviaturas solo si son ampliamente reconocidas y comprensibles, como `str` para "cadena" o `ID` para "identificador". 8. **S茅 consistente:** Mant茅n la consistencia en la nomenclatura de tus variables a lo largo de tu c贸digo. Si decides usar CamelCase, 煤salo de manera coherente en todo el proyecto. 9. **Utiliza nombres de variables significativos en bucles:** Cuando declares variables de iteraci贸n en bucles, utiliza nombres significativos como `i` o `j` para bucles simples, y `indice` o `contador` para bucles m谩s complejos.

Reto de Nombramiento:

using System;
using System.Collections.Generic;

namespace ToDo
{
    internal class Program
    {
        public static List<string> TaskList { get; set; }

        static void Main(string[] args)
        {
            TaskList = new List<string>();
            int menuSelected = 0;
            do
            {
                menuSelected = ShowMainMenu();
                if (menuSelected == 1)
                {
                    ShowMenuAdd();
                }
                else if (menuSelected == 2)
                {
                    ShowMenuRemove();
                }
                else if (menuSelected == 3)
                {
                    ShowMenuTaskList();
                }
            } while (menuSelected != 4);
        }
        /// <summary>
        /// Show the main menu 
        /// </summary>
        /// <returns>Returns option indicated by user</returns>
        public static 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");

            // Read line
            string inputOptionUser = Console.ReadLine();
            return Convert.ToInt32(inputOptionUser);
        }

        public static void ShowMenuRemove()
        {
            try
            {
                Console.WriteLine("Ingrese el n煤mero de la tarea a remover: ");
                // Show current taks
                for (int i = 0; i < TaskList.Count; i++)
                {
                    Console.WriteLine((i + 1) + ". " + TaskList[i]);
                }
                Console.WriteLine("----------------------------------------");

                string inputTaskToRemove = Console.ReadLine();
                // Remove one position
                int indexTaskToRemove = Convert.ToInt32(inputTaskToRemove) - 1;
                if (indexTaskToRemove > -1)
                {
                    if (TaskList.Count > 0)
                    {
                        string taskSelectedToRemove = TaskList[indexTaskToRemove];
                        TaskList.RemoveAt(indexTaskToRemove);
                        Console.WriteLine("Tarea " + taskSelectedToRemove + " eliminada");
                    }
                }
            }
            catch (Exception)
            {
            }
        }

        public static void ShowMenuAdd()
        {
            try
            {
                Console.WriteLine("Ingrese el nombre de la tarea: ");
                string inputNewTask = Console.ReadLine();
                TaskList.Add(inputNewTask);
                Console.WriteLine("Tarea registrada");
            }
            catch (Exception)
            {
            }
        }

        public static void ShowMenuTaskList()
        {
            if (TaskList == null || TaskList.Count == 0)
            {
                Console.WriteLine("No hay tareas por realizar");
            } 
            else
            {
                Console.WriteLine("----------------------------------------");
                for (int i = 0; i < TaskList.Count; i++)
                {
                    Console.WriteLine((i + 1) + ". " + TaskList[i]);
                }
                Console.WriteLine("----------------------------------------");
            }
        }
    }
}

Martin Fowler recomienda en su libro refactoring para refactorizar se debe contar con un bateria de pruebas para asegurar la integridad del software

Excelente clase y excelente reto.

No utilizar numeros en metodos y clases

Notacion Hungara