Luis Barajas
Marco Antonio Rosas Hernández Neria
JONATHAN CHANCI
Ivan Alejandro Fernandez Espinoza
Chanel Mariannis Paredes Sánchez
Jorge Mario Lasso Ortiz
Jorge Rivadeneira Cevallos
Ikal Esteban Fernández Galván
wow desarrollos digitales sas
Wilson Tumiña Tumiña
Jhoan Sebastián Lopera Gallego
Miguel Andres Rendon Reyes
Juan Luis
Luis Sandoval
Miguel Teheran
ProfesorJONATHAN CHANCI
Leo Amerio
Leandro Cosme Tomassini
Alexis Dorado Muñoz
JIMMY BURITICA
Nicolás Zelaya Orellana
Nicolas Rios
Nicolás Oriti Tizio
Kevin Fiorentino
Sebastian Jaramillo
Iván Orlando Ocampo Rivera
Miguel Teheran
ProfesorRoberto Antonio Alferes Gomez
Miguel Angel Reyes Moreno
Wilian Eduardo Soch
Jhoan Sebastián Lopera Gallego
Gilberto Alejandro Monroy Morales
Albin Anthony Hinostroza Macavilca
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
Muchas gracias por ese atajo
F2 funciona de maravilla
Quiero un curso de patrones de diseño de este señor!! por favor.
Urge, sino uno, varios para cada categoría de los patrones.
Totalmente
Para buscar y reemplazar al mismo tiempo una palabra en VS Code: Windows: Ctrl+D+D Mac: CMD+D+D
Ctrl + D duplica la línea
no esta bien por que en visual studio si la duplica pero en visual studio code la selecciona es diferente
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
Gracias
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 “MainMenu”, primero va “Main” 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 “ShowMenuRemove”, que en este orden de ideas, iria -> “ShowRemoveMenu” y “ShowMenuTaskList” siendo -> “ShowTaskListMenu” se puede notar una gran diferencia.
No tiene por qué ser así, lo importante es que aporte el valor que se busque y sobre todo sea entendible por otra persona.
Por ponernos en situación, alguien quiere ver todas las opciones disponibles en el menú.
Es más fácil sacar el listado de métodos y ver aquellos que empiezan por ShowMenu que andar rebuscando en el código.
Al igual que se podría refactorizar y sacar todo a un único método ShowMenu, siendo el nombre que más valor le da.
Como bien dicen no hay una forma correcta y exacta para el naming. Lo que hoy parece un buen nombre para mañana puede que no lo sea.
Lo importante en este mundo es ser flexible y usar lo que mejor convenga en cada situación.
Tengo una duda/consulta a pesar de que debemos normal la variables o métodos que su propio nombre nos indique que es o que hace, es recomendable usar nombres en inglés o es una buena práctica? Lo consulta porque he visto sistemas que son en español, pero su nomenclatura a nivel de código es en inglés.
Lo ideal es siempre usar ingles para todo, pero aveces por practica en las empresas o por que hay palabras dificiles de traducir, usan español. Siempre se escribe el código en el idioma que este hecho el lenguaje de programación.
Aqui una buena guia para codificar en C# https://github.com/dotnet/runtime/blob/main/docs/coding-guidelines/coding-style.md
Para los que usen VS Code si seleccionan la palabra --> click derecho --> RenameSymbol, cambian una sola ves el nombre y listo
El estilo de codificación en C# que seguimos se resume en estos puntos:
Este resumen captura las principales directrices para mantener un estilo coherente en el código C# y proporciona un ejemplo de archivo siguiendo estas pautas.
Este código ejemplifica algunas prácticas:
using System; namespace ExampleNamespace { public class ExampleClass { private int _exampleField; private static string s_exampleStaticField; private static readonly int s_exampleStaticReadonlyField = 42; private readonly int _exampleReadonlyField; public int ExampleProperty { get; set; } public ExampleClass(int value) { _exampleField = value; _exampleReadonlyField = value * 2; } public void ExampleMethod() { var localVar = 10; Console.WriteLine(localVar); } public static void StaticMethod() { Console.WriteLine("Static method"); } } }
Muchas gracias
Nombramiento
El nombre de las variables debe ser lo más descriptivo posible, indica que se está guardando o cuál es su propósito. Se debe usar camelCase.
int daySinceModification;
Para los métodos y clases el nombre debe ser lo más descriptivo posible, se debe usar PascalCase.
public List<users> GetActiviteUsers()
public class User
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
Con Ctrl + H te sale esta pequeña barra en la que puedes escribir lo que quieres camiar por el que
Tengo una duda, en otros lenguajes, como JavaScript, la convencion para escribir metodos o funciones. es de camelcase. Entonces, todo el mundo en js escribe mal codigo? o es que las convenciones tambien dependen del lenguaje?
Muchas gracias!
Las convenciones dependen del lenguaje, como bien dices. JS utiliza camelCase, Rust utiliza guion bajo "_". Desconozco C#, pero yo seguiría las reglas. Hay desarrolladores que no prestan atención a estas cosas, o ni siquiera saben que existe. Tú serás un buen desarrollador siguiendo las convenciones y recomendaciones del lenguaje, eso construye a un buen programador. Saludos!
x o temp, utiliza nombres como contador o nombreUsuario.nombreUsuario, saldoCuenta, fechaNacimiento.CalcularTotal, ObtenerNombreCompleto, ValidarEntradaUsuario; Cliente, Factura, ControladorDeAutenticación.PI, TASA_DE_INTERÉS, LIMITE_MAXIMO.cnt, es preferible contador.str para "cadena" o ID para "identificador".i o j para bucles simples, y indice o contador para bucles más complejos.¿Existe un curso de platzi que brinde Programación Orientada a Objetos con C#?
Esta próximo a salir! estamos trabajando en ello
Utilizando la combinación de teclas de control + h se puede reemplazar el texto en todo el documento
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("----------------------------------------"); } } } }
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
Buen aporte
Aquí mi reto
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 selectOption = Console.ReadLine(); return Convert.ToInt32(selectOption); } 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 deleteTask = Console.ReadLine(); // Remove one position int indexToRemove = Convert.ToInt32(deleteTask) - 1; if (indexToRemove > -1) { if (TaskList.Count > 0) { string deletedTask = TaskList[indexToRemove]; TaskList.RemoveAt(indexToRemove); Console.WriteLine("Tarea " + deletedTask + " eliminada"); } } } catch (Exception) { } } public static void ShowMenuAdd() { try { Console.WriteLine("Ingrese el nombre de la tarea: "); string newTask = Console.ReadLine(); TaskList.Add(newTask); 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("----------------------------------------"); } } } }
que extenciones usa para C# en visual code ??