Contenido del curso
Contenido del curso
Carina Payleman
Sharon Gizela Arana Mendoza
Santiago Andres Alvarez Cuadros
Arturo Malgor
Sergio Brandon De Lucio Chavero
Jose Gabriel Argüello
Juan Antonio Delgadillo Carrillo
Sandra Rosa Arroyo Paredes
Jonathan Meixueiro
Ayriel Noriega
Oscar Agustin Flores Arana
Francisco Ponce
xi Rg
José Fernando Fuentes Roa
Daniel Ochoa
Luis Vicente Gorpa Cruzado
Sandra Rosa Arroyo Paredes
Axel Enrique Galeed Gutierrez
Joan Manuel Theran Burgos
Ariel Ezequiel Biazzo Genua
Maria Alejandra Luna Tito
Ana Rotela Cabrera
David Galvan
Axel Enrique Galeed Gutierrez
Sandra Rosa Arroyo Paredes
Axel Enrique Galeed Gutierrez
Emerson Cedeño
Eugenio Condori
Reglas de nomenclatura.
¿Cómo nombro correctamente mis variables, funciones, etc...?
jajajaja el 'ubiqueee??' me hizo el día! <3
Recuerden siempre utilizar PascalCase para nombrar clases. Esto también aplica para nombrar alias types e interfaces en TypeScript
El lenguaje ubicuo, también conocido como lenguaje universal, es un concepto desarrollado por el experto en tecnología de la información y autor Martin Fowler, que se refiere a un lenguaje común y compartido entre todos los miembros de un equipo o empresa, independientemente de sus antecedentes, roles o áreas de experiencia.
El objetivo del lenguaje ubicuo es mejorar la comunicación y la colaboración en un equipo, especialmente en proyectos complejos en los que participan varias partes interesadas. Al establecer un conjunto común de términos y definiciones, se pueden evitar malentendidos, errores y retrasos, lo que puede mejorar la eficiencia y la calidad del trabajo.
El lenguaje ubicuo se basa en la idea de que las personas utilizan el lenguaje para modelar su comprensión de un dominio. Al establecer un lenguaje compartido, se puede mejorar la comprensión de un proyecto o sistema, lo que puede conducir a una mejor toma de decisiones y mejores resultados.
El ejemplo sobre el lenguaje ubicuo tiene bastante que ver con el desarrollo de software debido a que cuando creamos una base de datos tenemos que definir las entidades y esas entidades pueden ser el ejemplo de clientes usuarios etc. todo lo podemos juntar en usuarios y después partir en dimensiones de direcciones, ubicaciones, billeteras, contacto, etc. entonces esto no solamente afecta la legibilidad del código también afecta la estructura de la base de datos la mantenibilidad de la misma y además de que respeta el principio DRY debido a que el código que tendríamos que escribir para llamar la Data de los diferentes nombres que se le da al usuario es básicamente el mismo y se repite tres veces.
Reglas para la nomenclatura
➯ Para contribuir a que nuestro código sea limpio hay que nombrar correctamente a nuestras variables funciones y clases, las variables funciones, etc deben ser expresivas, es decir en ingles y camel case, evitar el uso de guiones, guiones bajos y abreviaturas.
// no recomendado const yyyymmdstr = moment().format("YYYY/MM/DD"); // no recomendado const currentDate = moment().format("YYYY/MM/DD");
➯ Nombres sin información técnica , evitar usar nombre relacionados a la tecnología, tipo de dato o clase.
// No recomendado let arrayNames = ["Alex", " Mariana", "Cande"]; //recomendado let namesList = ["Alex", " Mariana", "Cande"];
➯ Usar lenguaje ubicuo, ques es? aquel que se construye a partir del lenguaje que usan los expertos en el dominio, un lenguaje en común entre los devs y los interesados
// no recomendado getUserInfo(); getClientData(); getCustomerRecord(); // recomendado getUser();
tanto user, client and customer se pueden agrupar en user, si representan el mismo concepto. (representar a un usuario)
yo solo tengo una duda y no es escusa para no aprender ingles, pero por que simpre en ingles si LATAM somos demasiados que hablamos español .. y por que USA es quien saca solo la tecnologia ami me gustaria globalizar mas el idioma español
const diaActual const sumarNumeros const busqeuda const verificarResolucion
ami me gusta mas asi cuando aprend y cree proyectos los are de esta forma pero claro que si entrare ala escuela de academy inglis
Razones del uso del inglés:
Sin embargo, tienes razón en señalar la importancia del español:
Consideraciones prácticas:
Lenguaje ubicuo, es un término usado en el desarrollo, para entenderlo más fácil, imagina que es la jerga que tienes en tu grupo de amigos cuándo es un proyecto en un equipo. Ejemplo: Decir 'Se está ofreciendo' y que todos entiendan que 'Estaría bien hacer esto'.
Y es como la jerga de una región cuándo es de un lenguaje, como en este caso (Javascript). Ejemplo: En España dices 'Lo está petando' En México dices 'La está rompiendo'
En ambos casos te podrán entender que 'Le está yendo muy bien', pero para evitar confusión y sonar raro, a dónde vas, haces lo que ves. Como en Javascript dices getUser() y en Python dices get_user()
El uso de var comenzó a desaconsejarse oficialmente desde ECMAScript 2015, también conocido como ES6, lanzado en 2015.
Fue en esa versión donde aparecieron:
como reemplazos modernos y más seguros para var.
El siguiente código no contempla estrictamente palabras en ingles. Sin embargo funcionan sin problemas. ¿donde quedaría si no la posibilidad de inventiva? si se tiene que someter la programación como si fuera una biblia donde se repite sin saber que se repite function crearGato(nombre, edad) { var perro = { nombre: nombre, edad: edad, meow: function() { return "Meow!"; } }; return perro; }
La cuestión es que no hacemos el código para nosotros, sino para todo un equipo de trabajo o para futuras personas que lleguen a darle mantenimiento. Es lo que pasa en la vida laboral, y sí, el código funciona, pero si esta porción de código llega a ser turnada con un equipo global, estoy seguro de que no será legible, y el equipo tendrá que desperdiciar tiempo de desarrollo (que es muy caro) para poder descifrar cosas como: por qué retornar un objeto perro si estamos creando un gato, por qué utilizar var y no const al crear una variable.
Toca facilitar la legibilidad del código para que pueda ser leído por otras personas que tengan conocimiento en el lenguaje de programación, y no tanto de nuestro idioma.
Podríamos cambiar el código a esto para hacerlo más legible.
function createCat(name, age) { const cat = { name, age, growl: function() { return "Meow!"; } }; return cat }
E incluso refactorizarlo hasta tener una sintaxis más parecida a ES6 (también hay que saber cuando factorizar, si es necesario y si en realidad mejora su legibilidad)
const createCat = (name, age) => ({ name, age, growl: () => "Meow" })
Hola, alguien ha visto alguna clase sobre EMMET en Platzi? He buscado en todo el catálogo Aún no encuentro
Hola Avv, realmente no es necesario crear una sola clase para EMMET, con que leas la documentación en una hora aprendes lo básico para crear los bloques HTML de manera rápida. Mira, acá está la documentación oficial").
Cuando la aplicación es muy grande hay procesos muy especificos, entonces me queda la duda de esa última regla que tan estricta debe ser, ya que hay cosas puntuales como conseguir el telefono de un usuario, los datos del creador de un post, cosas así.
Como debería nombrarse en estos casos?
¿Por qué para arrayNames lo correcto es namesList? ->
¿Lo correcto no seria name si tuviera un valor y para muchos valores seria names?.
Respuestas por favor. Gracias.
por que no listNames? Pues por la gramatica en ingles primero es el adjetivo y luego el sustantivo. name list, asi que lo correcto segun gpt es nameList.
Consulta.
En la clase anterior la profesora dijo que recomienda declarar las contantes con mayúsculas, pero ahora nos dice que usemos camelCase ¿Cuál deberíamos usar?
Tengo entendido que por practicidad y mejor lectura del código tendríamos que utilizar mayúsculas para las contantes. Gracias. :D
y como serai el nombre de esas variables que solo usamos una vez y ya, por ejemplo para parsear, eliminar esapcios de un texto, etc?
Bueno, al ser una funcion podrias poner por ej:
removeSpaces()
Fijate que remove es una accion pero no le agregue ningun tecnisismo como FN de function.
Si tienes ganas, puedes usar bard o gpt para explorar mas ideas!
a mi me cuesta mucho nombrar mis variables y funciones, y mas porq esto se debe hacer en ingles
Resumen de la clase
miVariable, miFuncion.const para variables que no cambian, let para variables que sí cambian, y function o arrow functions para definir funciones.Consulta. En la clase anterior la profesora dijo que recomienda declarar las contantes con mayúsculas, pero ahora nos dice que usemos camelCase ¿Cuál deberíamos usar? Tengo entendido que por practicidad y mejor lectura del código tendríamos que utilizar mayúsculas para las contantes. Gracias. :D
las const si deben ser con mayusculas los let con camelcase Ejemplo: - EMPTY_TEXT = '' - nameList = [...]
@Sandra, muchas gracias. 😁
Sobre el naming convention en variables algunas recomendaciones que me han sido de gran utilidad (extrapolable a otros lengs. de programación*), sumado a lo dictado en este bloque de clases sobre "Nombre y uso de las variables":
Alguna otra recomendación? 🤓
//REGLA 1 => Nombres pronunciables y expresivos usando camelCase //No recomendado const yyyymmdstr = moment.format("YYYY/MM/DD"); //Recomendado const currentDate = moment.format("YYYY/MM/DD"); //REGLA 2 => Nombres sin información tecnica (tipo de dato, tipo de clases, etc) //No recomendado let arrayNames = ["Juan", "Pedro", "Maria"]; //Recomendad let namesList = ["Juan", "Pedro", "Maria"]; //REGLA 3 => Usar lenguaje ubicuo,crear un lenguaje en común para desarrolladores e //interesados, determinando palabras de uso común. //No recomendado getUserId(); getClientData(); getCustomerRecord(); //Recomendado getUser(); ```*//REGLA 1 => Nombres pronunciables y expresivos usando camelCase//No recomendado*const yyyymmdstr = moment.format("YYYY/MM/DD");*//Recomendado*const currentDate = moment.format("YYYY/MM/DD"); *//REGLA 2 => Nombres sin información tecnica (tipo de dato, tipo de clases, etc)//No recomendado*let arrayNames = \["Juan", "Pedro", "Maria"];*//Recomendad*let namesList = \["Juan", "Pedro", "Maria"]; *//REGLA 3 => Usar lenguaje ubicuo,crear un lenguaje en común para desarrolladores e //interesados, determinando palabras de uso común.//No recomendado*getUserId();getClientData();getCustomerRecord();*//Recomendado*getUser();