Skip to content

Naming Conventions para Proyectos JavaScript

Este documento establece convenciones de nombres para proyectos JavaScript. Siguiendo estos lineamientos, se busca mejorar la consistencia, colaboración y mantenibilidad del código.

  • Formato: camelCase
  • Descripción: Las variables deben ser descriptivas y específicas para el propósito que cumplen.
// good
let userName = 'Juan';
const productCount = 5;
// bad
let usr_name = 'Juan';
const pCount = 5;
  • Frontend: se usa camelCase en variables de estado y para manejar datos.
  • Backend: es útil para nombres en controladores, servicios y modelos de datos.
  • Formato: camelCase con prefijos is, are o has.
  • Descripción: Los nombres booleanos deben ser claros, indicando una condición o estado.
// good
let isAvailable = true;
const hasPermission = false;
let areItemsSelected = true;
// bad
let available = true;
const permission = false;
let selectedItems = true;
  • Frontend: el uso de prefijos facilita la comprensión en lógica condicional.
  • Backend: útil para variables que manejan permisos y estados de autenticación.
  • Formato: camelCase
  • Descripción: Los nombres de funciones deben expresar claramente la acción que realizan.
// good
function fetchUserData() {
// code
}
const calculateTotal = (items) => {
// code
}
// bad
function get() {
// code
}
const calc = (i) => {
// code
}
  • Frontend: para manejar eventos y funciones auxiliares.
  • Backend: se utiliza en servicios y controladores para acciones específicas.
  • Formato: UPPER_CASE_SNAKE
  • Descripción: Las constantes deben estar en mayúsculas y separadas por guiones bajos.
// good
const API_URL = 'https://api.example.com';
const MAX_RETRY_COUNT = 3;
const FULL_NAME = {
firstName: "Juan",
lastName: "Carlo"
}
// bad
const ApiUrl = 'https://api.example.com';
const maxRetryCount = 3;
const FullName = {
firstName: "Juan",
lastName: "Carlo"
}
  • Frontend: para configurar URLs, claves o valores constantes.
  • Backend: útiles para constantes globales o valores de configuración.
  • Formato: PascalCase
  • Descripción: Usa nombres específicos que representen el propósito de la clase o componente.
// good
class UserController {
// code
}
function ProductList() {
// code
}
// bad
class usercontroller {
// code
}
function product_list() {
// code
}
  • Frontend: se usa PascalCase para componentes.
  • Backend: se usa en clases de controladores, servicios y modelos de datos.
  • Formato: camelCase
  • Descripción: Utiliza verbos que describan la acción específica de cada método.
class User {
// good
getName() {
// code
}
updateProfile(data) {
// code
}
// bad
Name() {
// code
}
updProf(d) {
// code
}
}
  • Frontend: útil para métodos de manejo de estado y eventos.
  • Backend: usado en métodos dentro de clases de servicio y controladores.
  • Formato: _camelCase
  • Descripción: Prefija con _ para indicar que es una función interna.
class User {
// good
_validateEmail(email) {
// código
}
// bad
validateEmail(email) {
// código
}
}
  • Frontend: para identificar funciones internas en lógica de componentes.
  • Backend: en servicios y modelos para distinguir métodos internos.
  • Formato: UPPER_CASE_SNAKE
  • Descripción: Idealmente, evita el uso de variables globales.
// good
const GLOBAL_THEME_COLOR = '#333333';
// bad
const globalThemeColor = '#333333';
  • Frontend: se debe evitar, usando mejor contexto o almacenamiento local.
  • Backend: usa servicios en lugar de variables globales.
  • Formato: kebab-case para módulos y PascalCase para componentes o clases.
  • Descripción: Usa nombres claros que describan el contenido o propósito del archivo.
// good
user-service.js
product-list.js
UserProfile.js
// bad
userService.js
Productlist.js
product_list.js
  • Frontend: usa PascalCase para componentes y kebab-case para utilidades.
  • Backend: usa kebab-case para archivos de servicios y controladores.
TipoFormatoEjemplo
VariablescamelCaseuserName
BooleanscamelCase (con prefijos is, are, has)isAvailable
FuncionescamelCasefetchData
ConstantesUPPER_CASE_SNAKEAPI_KEY
Clases y ComponentesPascalCaseUser
MétodoscamelCasecalculateTotal
Funciones Privadas_camelCase_fetchData
Variables GlobalesUPPER_CASE_SNAKEGLOBAL_CONFIG
Nombres de Archivoskebab-case o PascalCaseuser-profile.js o UserProfile.js
  • Consistencia: Mantén estas convenciones en el proyecto para facilitar la colaboración.
  • Nombres Descriptivos: Usa nombres claros y evita abreviaciones.
  • Modularización: Usa contexto y dependencias inyectadas en lugar de variables globales.