UT00: Buenas Prácticas en Desarrollo Web
1. Estándares de Nombrado de Archivos
La consistencia en el nombrado evita errores de compilación, fallos en servidores y facilita el trabajo en equipo.
Convenciones Principales (Casing)
- kebab-case:
mi-archivo-de-estilo.css- Uso: URLs, archivos HTML/CSS, imágenes, assets.
- camelCase:
miFuncionUtil.js- Uso: Variables, funciones, métodos en JS/TS.
- PascalCase:
UserProfile.jsx/MiComponente.vue- Uso: Componentes de UI, clases, interfaces.
- snake_case / SCREAMING_SNAKE_CASE:
DB_PASSWORD- Uso: Variables de entorno (
.env), configuraciones globales.
- Uso: Variables de entorno (
Reglas de Oro para Archivos
- Solo minúsculas y guiones (
kebab-case) para URLs y HTML/CSS.- Los servidores Linux distinguen entre mayúsculas y minúsculas (Case-sensitive).
- Evita caracteres especiales y espacios:
- ❌
Foto de perfil (1).png - ✅
foto-perfil-01.png
- ❌
- Nombres explícitos: Usar
user-card.component.jsen lugar deuc.js.
2. Estructura de Proyectos Web
La estructura interna de un proyecto web nos permite organizar de manera jerárquica nuestros archivos y carpetas, con el fin de que sea gestionable tanto a nivel visual como organizativo.
Frase lapidaria.
Una buena arquitectura escala sin dolor y reduce la deuda técnica.
Arquitectura Estándar (Frontend moderno)
mi-proyecto/
├── public/ # Assets estáticos (favicon, robots.txt)
├── src/
│ ├── assets/ # Imágenes, fuentes, estilos globales
│ ├── components/ # Reutilizables (Button, Navbar)
│ ├── views/ / pages/ # Vistas completas o rutas
│ ├── services/ / api/ # Llamadas HTTP y lógica de API
│ ├── utils/ / helpers/ # Funciones puras de soporte
│ ├── App.jsx
│ └── main.jsx
├── .gitignore
├── package.json
└── README.md
Patrones de Organización Interna
- Por Tipo de Archivo (Proyectos pequeños):
components/,styles/,tests/
- Por Feature/Módulo (Proyectos medianos/grandes):
modules/auth/(contiene sus componentes, servicios y tests)modules/checkout/
- Patrón MVC Tradicional (Model-View-Controller) Es el estándar de arquitectura clásica en frameworks orientados a servidor. Separa de forma estricta la lógica de negocio (Model), la interfaz de usuario (View) y el orquestador de flujo (Controller).Uno de los frameworks mas famosos es Laravel (PHP) que se organiza en base a la siguiente estructura:
mi-proyecto-laravel/
├── app/
│ ├── Http/
│ │ ├── Controllers/
│ │ │ ├── AuthController.php
│ │ │ └── ProductController.php
│ │ └── Middleware/
│ │ └── Authenticate.php
│ └── Models/
│ ├── User.php
│ └── Product.php
├── database/
│ ├── migrations/
│ └── seeders/
├── resources/
│ └── views/
│ ├── layouts/
│ │ └── app.blade.php
│ └── products/
│ ├── index.blade.php
│ └── show.blade.php
└── routes/
├── api.php
└── web.php
- Patrón MVT (Model-View-Template) Utilizado por Django, es una variación de MVC donde el framework gestiona el rol del controlador tradicional (el enrutador HTTP de Django), las Views actúan como la lógica de presentación/controlador, y las Templates representan la capa visual. Django promueve el uso de Apps modulares dentro del propio proyecto:
mi_proyecto_django/
├── manage.py
├── config/ # Configuración global del proyecto
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── productos/ # Aplicación modular
├── admin.py
├── apps.py
├── models.py # Capa Model
├── views.py # Capa View (Lógica de negocio)
├── urls.py # Enrutamiento local de la app
└── templates/ # Capa Template
└── productos/
├── lista.html
└── detalle.html