🏗️ Arquitectura
SOLID Principles + Clean Architecture + DDD
Domain-Driven Design, Separation of Concerns, Dependency Inversion
Esta guía establece los estándares y metodologías para crear documentación técnica de alta calidad que acelere el onboarding, mejore la productividad y mantenga el conocimiento actualizado en el equipo.
🏗️ Arquitectura
SOLID Principles + Clean Architecture + DDD
Domain-Driven Design, Separation of Concerns, Dependency Inversion
🔧 Backend
.NET Framework 4.8 + .NET Core 8
ASP.NET MVC, Web API, Repository Pattern con Dapper
🎨 Frontend Moderno
Vue.js 3 + TypeScript
Composition API, Microfrontends, Monorepo
📱 Frontend Legacy
Angular 1 + Handlebars.js + Dot.js
En proceso de migración (no usar para proyectos nuevos)
🗄️ Bases de Datos
SQL Server + PostgreSQL + MongoDB + DynamoDB
Repository Pattern + Dapper (NO Entity Framework)
⚡ Cache & Performance
Redis
Cache distribuido, sesiones, datos temporales
💻 Entorno de Desarrollo
Windows + Azure DevOps
CI/CD Pipelines, Repos, Work Items
🎯 Actionable: Cada sección debe resultar en código/configuración funcional
🧪 Testeable: Ejemplos que se pueden probar inmediatamente
📈 Escalable: Patrones que funcionen en proyectos reales
🔧 Mantenible: Documentación que envejezca bien
🚫 Teoría Abstracta
Evitar explicaciones teóricas sin aplicación práctica inmediata
🚫 Hello World Básicos
No usar ejemplos triviales que no representen casos reales
🚫 Configuraciones Genéricas
Evitar configuraciones que no estén optimizadas para nuestro entorno
🚫 Enlaces Muertos
No referenciar documentación externa que se desactualice rápidamente
Cuándo usar: Introducir una tecnología completamente nueva al equipo
🛠️ Setup del Entorno (Windows optimizado)
Prerrequisitos específicos para Windows, instalación paso a paso verificable, configuración de herramientas de desarrollo, validación del entorno
🚀 Quick Start (30 min funcional)
Proyecto funcional en máximo 30 minutos, resultado tangible e impresionante, introducción a conceptos clave, base para exploración posterior
🧠 Conceptos Clave (filosofía y decisiones)
Principios fundamentales de la tecnología, decisiones arquitectónicas del equipo, comparación con tecnologías conocidas, cuándo usar vs. no usar
🌳 Decision Tree (cuándo usar qué)
Matriz de decisión clara, casos de uso específicos, criterios de selección, ejemplos de proyectos del equipo
🏗️ Arquitectura y Patrones (casos reales)
Patrones aplicados en proyectos reales, arquitectura recomendada, integración con stack existente, performance y seguridad
📋 Templates y Scaffolding (automatización)
Generadores de código, templates preconfigurados, scripts de automatización, configuraciones estándar
💻 Desarrollo Día a Día (workflows)
Flujos habituales de desarrollo, debugging y troubleshooting, testing strategies, deployment procedures
Cuándo usar: Profundizar en herramientas que el equipo ya conoce
⚡ Principios Fundamentales Base conceptual y decisiones clave
🎯 Patrones Específicos Patrones avanzados y especializados
📊 Casos de Uso Reales Implementaciones en proyectos del equipo
🔧 Configuraciones Avanzadas Optimizaciones y configuraciones específicas
🚨 Troubleshooting Problemas comunes y soluciones
✅ Best Practices Mejores prácticas y recomendaciones
Cuándo usar: Documentar workflows, procedimientos y metodologías
Cuándo usar: Documentación de consulta rápida para expertos
Cuándo usar: Procesos complejos que requieren múltiples pasos secuenciales con validación entre etapas (como setup completo de entornos, procesos de testing, deployment workflows)
Cuándo usar: Consulta rápida para expertos que necesitan comandos específicos o referencia inmediata durante el desarrollo
<Aside type="tip">**Tip Importante**: Información que mejora la comprensión</Aside>
<Aside type="note">**Nota**: Información adicional relevante</Aside>
<Aside type="caution">**Cuidado**: Advertencias importantes</Aside>
<Aside type="danger">**Peligro**: Información crítica que puede causar problemas</Aside><Card title="Título Descriptivo">Contenido del card con información concisa
**Elementos destacados** y enlaces relevantes</Card>
<CardGrid> <Card title="Card 1">Contenido 1</Card> <Card title="Card 2">Contenido 2</Card></CardGrid><Tabs> <TabItem label="Windows"> Instrucciones específicas para Windows </TabItem>
<TabItem label="Development"> Configuración de desarrollo </TabItem>
<TabItem label="Production"> Configuración de producción </TabItem></Tabs><Steps>
1. **Primer paso**
Descripción detallada del primer paso
2. **Segundo paso**
Comandos específicos o configuraciones
3. **Tercer paso**
Validación y verificación
</Steps>Iconos Standard por Contexto:
| Contexto | Iconos Standard | Significado Específico |
|---|---|---|
| 🏗️ Arquitectura | 🏗️ 🎯 📐 🔧 | Diseño, objetivos, estructura, herramientas |
| ⚡ Performance | ⚡ 🚀 📊 🎯 | Velocidad, lanzamiento, métricas, objetivos |
| 🛡️ Troubleshooting | 🚨 🔍 💡 ✅ | Problema, diagnóstico, solución, validación |
| 📚 Referencias | 📋 🔗 💻 🌐 | Listas, enlaces, comandos, web |
| 🔄 Procesos | 🔄 📋 ⚙️ 🚀 | Workflows, checklists, configuración, deploy |
| 👥 Colaboración | 👥 💬 🤝 📞 | Equipo, comunicación, colaboración, soporte |
Iconos por Tipo de Documentación:
| Tipo | Icono Principal | Uso |
|---|---|---|
| Setup/Configuración | 🛠️ ⚙️ 🔧 | Instalación, configuración inicial |
| Quick Start | 🚀 ⚡ 🎯 | Tutoriales rápidos, primeros pasos |
| Conceptos/Teoría | 🧠 💡 📚 | Explicaciones, fundamentos |
| Decision Trees | 🌳 🤔 🎯 | Guías de decisión |
| Daily Development | 💻 🔄 ⚡ | Workflows diarios |
| Troubleshooting | 🚨 🔍 🛠️ | Solución de problemas |
| Referencias | 📋 📚 🔗 | Consulta rápida, cheat sheets |
Cuándo usar cada componente Astro:
| Componente | Cuándo Usar | Ejemplo Real | Anti-patrón |
|---|---|---|---|
<CardGrid> | Comparaciones o categorización | Stack tecnológico, tipos de proyectos | Contenido largo o secuencial |
<Tabs> | Configuraciones alternativas | Windows vs Linux, Dev vs Prod | Información no relacionada |
<Steps> | Procesos secuenciales | Setup, workflows, troubleshooting | Información no ordenada |
<Aside> | Información contextual | Tips, warnings, importantes | Contenido principal |
<Card> | Información agrupada | Características, resúmenes | Texto plano simple |
Templates Ejemplares:
🛠️ Setup Ejemplar
Perfecto balance entre profundidad y usabilidad
🚨 Troubleshooting Completo
Scripts de diagnóstico automatizado + escalation paths
🔄 Multi-Step Workflow
Progresión clara con validation gates
📚 Reference Guide
Quick commands + troubleshooting matrix integrado
💻 Daily Development
Workflows prácticos para desarrollo diario
¿Por qué funcionan estos ejemplos?
---title: 🛠️ Setup de [Tecnología]description: Configuración completa de [Tecnología] para el entorno Windows del equipo---
import { Aside, Steps } from "@astrojs/starlight/components";
# 🛠️ Setup de [Tecnología]
Configuración paso a paso de [Tecnología] optimizada para nuestro entorno Windows y stack tecnológico.
<Aside type="tip">**Tiempo estimado**: 15-30 minutos | **Prerrequisitos**: [Lista específica]</Aside>
## ⚡ Setup Rápido
<Steps>
1. **📋 Verificar Prerrequisitos**
```powershell # Comandos de verificación node --version # Debe ser 18+ dotnet --version # Debe ser 8.0+ ```
2. **📥 Instalación**
**Opción A - Automática:** ```powershell # Script automatizado ./scripts/setup-[tecnologia].ps1 ```
**Opción B - Manual:** ```powershell # Pasos manuales npm install -g [package] dotnet tool install [tool] ```
3. **⚙️ Configuración**
Configuraciones específicas para nuestro entorno
4. **✅ Verificación**
```powershell # Validar instalación [comando] --version [comando] --help ```
</Steps>
## 🚨 Troubleshooting
| Problema | Solución ||----------|----------|| Error específico | Solución específica |
---
<Aside type="note">**Siguiente paso**: [Quick Start de [Tecnología]](/link-al-quick-start)</Aside>---title: 🚀 Quick Start - [Tecnología]description: Tu primer proyecto funcional con [Tecnología] en 30 minutos---
import { Aside, Steps, CardGrid, Card } from "@astrojs/starlight/components";
# 🚀 Quick Start - [Tecnología]
Crea tu primer proyecto funcional con [Tecnología] en máximo 30 minutos.
<Aside type="tip">**Objetivo**: Al final tendrás [descripción del resultado tangible]</Aside>
## 🎯 ¿Qué vamos a construir?
[Descripción clara del proyecto ejemplo]
<CardGrid> <Card title="⚡ Funcionalidad 1"> Descripción de característica clave </Card>
<Card title="🔧 Funcionalidad 2"> Descripción de característica clave </Card></CardGrid>
## 🏗️ Desarrollo Paso a Paso
<Steps>
1. **🏁 Proyecto Base**
```powershell # Crear proyecto dotnet new [template] -n MiPrimerProyecto cd MiPrimerProyecto ```
2. **⚙️ Configuración Inicial**
Configuraciones específicas necesarias
3. **🔧 Implementación Core**
Código principal del ejemplo
4. **🧪 Testing**
Verificar que funciona correctamente
5. **🚀 Ejecución**
```powershell # Ejecutar proyecto dotnet run ```
</Steps>
## ✅ Resultado Esperado
[Descripción del resultado y cómo validarlo]
## 🔄 Próximos Pasos
- [Conceptos Clave de la Tecnología](/guia-desarrollo/[tecnologia]/conceptos-clave)- [Patrones Avanzados](/guia-desarrollo/[tecnologia]/patrones-avanzados)
---
<Aside type="note">**¿Problemas?** Consulta la sección de Troubleshooting o contacta al experto del área</Aside>---title: 🔄 Migración: [Tecnología A] → [Tecnología B]description: Guía completa para migrar de [Tecnología A] a [Tecnología B]---
import { Aside, Steps } from "@astrojs/starlight/components";
# 🔄 Migración: [Tecnología A] → [Tecnología B]
Guía paso a paso para migrar proyectos existentes manteniendo funcionalidad y mejorando performance.
## 📊 Comparación de Enfoques
| Aspecto | [Tecnología A] | [Tecnología B] | Impacto ||---------|----------------|----------------|---------|| Performance | [Métrica] | [Métrica] | [Mejora] || Mantenibilidad | [Estado] | [Estado] | [Cambio] || Curva de aprendizaje | [Nivel] | [Nivel] | [Esfuerzo] |
## 🗺️ Estrategia de Migración
**Migración Gradual (Recomendada):**- ✅ Menor riesgo- ✅ Paralelo con desarrollo- ⚠️ Mantener dos sistemas temporalmente
**Migración Completa:**- ✅ Resultado final inmediato- ⚠️ Mayor riesgo- ⚠️ Tiempo dedicado exclusivo
## 🎯 Equivalencias y Mapeos
### Conceptos Clave[Mapeo de conceptos entre tecnologías]
### Patrones de Código[Ejemplos de transformación de código]
---
<Aside type="caution">**Importante**: Realizar backup completo antes de iniciar la migración</Aside>---title: 📋 [Proceso] - Workflow Completodescription: Guía paso a paso para [proceso] con validación en cada etapa---
import { Aside, Steps, Card, CardGrid } from "@astrojs/starlight/components";
# 📋 [Proceso] - Workflow Completo
Proceso completo de [descripción] con validación en cada etapa y troubleshooting integrado.
<Aside type="tip">**Tiempo estimado**: [X horas] | **Prerrequisitos**: [Lista específica]</Aside>
## 🎯 Fases del Proceso
<CardGrid> <Card title="🎯 Fase 1: Preparación"> Setup inicial, verificación de prerrequisitos, configuración base </Card>
<Card title="⚙️ Fase 2: Configuración"> Implementación core, configuraciones específicas </Card>
<Card title="🧪 Fase 3: Testing"> Validación, pruebas, verificación de funcionalidad </Card>
<Card title="🚀 Fase 4: Finalización"> Deploy, documentación, cleanup </Card></CardGrid>
## 🔄 Workflow Detallado
<Steps>
1. **🎯 Fase 1: [Preparación/Setup]**
```powershell # Comandos de verificación de prerrequisitos [comando] --version [verificacion] --status ```
**✅ Validación de Fase:** - [ ] Prerrequisito A verificado - [ ] Prerrequisito B configurado - [ ] Entorno base funcional
<Aside type="caution"> **⚠️ Antes de continuar**: Verificar que todos los checkboxes están marcados </Aside>
2. **⚙️ Fase 2: [Configuración/Implementación]**
```powershell # Comandos de configuración [setup] --config [parametros] [install] --dependencies ```
**✅ Validación de Fase:** - [ ] Configuración A aplicada - [ ] Dependencias instaladas - [ ] Conectividad verificada
3. **🧪 Fase 3: [Testing/Validación]**
```powershell # Comandos de testing [test] --all [verify] --integration ```
**✅ Validación de Fase:** - [ ] Tests unitarios pasando - [ ] Integration tests exitosos - [ ] Performance dentro de rangos
4. **🚀 Fase 4: [Deployment/Finalización]**
```powershell # Comandos finales [deploy] --environment [env] [cleanup] --temp-files ```
**✅ Validación Final:** - [ ] Deploy exitoso - [ ] Monitoreo configurado - [ ] Documentación actualizada
</Steps>
## 🚨 Troubleshooting por Fase
### ❌ Fase 1: Problemas de Setup[Soluciones específicas para problemas de preparación]
### ❌ Fase 2: Problemas de Configuración[Soluciones específicas para problemas de configuración]
### ❌ Fase 3: Problemas de Testing[Soluciones específicas para problemas de validación]
### ❌ Fase 4: Problemas de Deploy[Soluciones específicas para problemas de finalización]
---
<Aside type="tip">**Siguiente paso**: Consulta documentación relacionada de la tecnología específica</Aside>---title: 📚 [Tecnología] - Reference Guidedescription: Referencia rápida y cheat sheet para uso diario de [tecnología]---
import { Aside, Card, CardGrid, Tabs, TabItem } from "@astrojs/starlight/components";
# 📚 [Tecnología] - Reference Guide
Referencia completa para consulta rápida durante el desarrollo diario.
## ⚡ Quick Commands
| Comando | Propósito | Ejemplo ||---------|-----------|---------|| `[cmd1]` | **Acción básica** | `[cmd1] --param value` || `[cmd2]` | **Configuración** | `[cmd2] --config file.json` || `[cmd3]` | **Testing** | `[cmd3] --test --verbose` || `[cmd4]` | **Deploy** | `[cmd4] --env production` |
## 📋 Parameter Reference
### Configuración Base```bash# Parámetros más usados--config [file] # Archivo de configuración--verbose # Output detallado--dry-run # Simulación sin cambios--force # Forzar operación```
### Parámetros Avanzados```bash# Para casos específicos--timeout [seconds] # Timeout personalizado--retry [attempts] # Reintentos automáticos--parallel [count] # Procesamiento paralelo```
## 🎨 Common Patterns
<Tabs><TabItem label="Pattern A: Setup Básico">
```powershell# Pattern para setup inicial[tool] init --name [project][tool] config --set [key] [value][tool] install --dependencies[tool] verify --all```
</TabItem>
<TabItem label="Pattern B: Development Loop">
```powershell# Pattern para desarrollo diario[tool] watch --hot-reload[tool] test --watch[tool] lint --fix[tool] build --dev```
</TabItem>
<TabItem label="Pattern C: Production Deploy">
```powershell# Pattern para production[tool] test --coverage[tool] build --production[tool] deploy --environment prod[tool] monitor --alerts```
</TabItem></Tabs>
## 🔧 Configuration Templates
### Template Desarrollo```json{ "environment": "development", "debug": true, "hotReload": true, "optimization": false}```
### Template Producción```json{ "environment": "production", "debug": false, "optimization": true, "monitoring": true}```
## 🚨 Troubleshooting Matrix
| Problema | Síntoma | Solución Rápida | Comando ||----------|---------|-----------------|---------|| **Error A** | `mensaje error` | Reiniciar servicio | `[restart-cmd]` || **Error B** | `timeout` | Aumentar timeout | `[cmd] --timeout 60` || **Error C** | `permission denied` | Verificar permisos | `[permission-cmd]` |
### Quick Fixes
```powershell# Limpiar cache[tool] cache --clear
# Reinstalar dependencias[tool] clean && [tool] install
# Reset configuración[tool] config --reset```
---
<Aside type="note">**Actualizado**: [Fecha] | **Versión**: [Version] | **Más info**: Ver documentación completa de la tecnología</Aside>---title: 🚨 [Tecnología] - Troubleshooting Guidedescription: Diagnóstico y solución completa de problemas con [tecnología]---
import { Aside, Card, CardGrid, Tabs, TabItem } from "@astrojs/starlight/components";
# 🚨 [Tecnología] - Troubleshooting Guide
Diagnóstico sistemático y solución de problemas ordenados por criticidad.
<Aside type="tip">**🔥 Problema urgente?** Ve directo a [Problemas Críticos](#-problemas-críticos)</Aside>
## 🔥 Problemas Críticos
### 🚫 [Problema Crítico 1]
**Síntomas:**- [Síntoma específico 1]- [Síntoma específico 2]
**Diagnóstico Rápido:**```powershell# Comandos de verificación inmediata[diagnostic-cmd1][diagnostic-cmd2]```
**Solución:**```powershell# Pasos de solución[fix-cmd1][fix-cmd2]```
## 🔍 Diagnóstico Sistemático
### Comandos de Diagnóstico
<Tabs><TabItem label="System Health">
```powershell# Verificar estado del sistema[tool] status --all[tool] health --check[tool] version --detailed
# Verificar conectividad[tool] ping --target [endpoint][tool] test --connection```
</TabItem>
<TabItem label="Configuration Check">
```powershell# Verificar configuraciones[tool] config --validate[tool] config --show-active[tool] config --check-syntax
# Comparar con defaults[tool] config --diff-default```
</TabItem>
<TabItem label="Dependencies">
```powershell# Verificar dependencias[tool] dependencies --check[tool] dependencies --outdated[tool] dependencies --conflicts```
</TabItem></Tabs>
## 💡 Soluciones por Categoría
<CardGrid> <Card title="🔧 Configuración"> Problemas relacionados con archivos de configuración, variables de entorno </Card>
<Card title="🌐 Conectividad"> Issues de red, timeouts, endpoints no disponibles </Card>
<Card title="📦 Dependencias"> Versiones incompatibles, packages faltantes </Card>
<Card title="💾 Performance"> Lentitud, uso excesivo de memoria, timeouts </Card></CardGrid>
<Tabs><TabItem label="🔧 Configuración">
### ❌ Archivo de configuración inválido
**Solución:**```powershell# Validar sintaxis[tool] config --validate --file [config.json]
# Restaurar backup[tool] config --restore --from-backup
# Generar nuevo config[tool] config --generate --template [type]```
</TabItem>
<TabItem label="🌐 Conectividad">
### ❌ Timeout conectando a servicios
**Solución:**```powershell# Verificar conectividadTest-NetConnection [endpoint] -Port [port]
# Aumentar timeout[tool] config --set timeout 60
# Usar proxy si es necesario[tool] config --set proxy [proxy-url]```
</TabItem>
<TabItem label="📦 Dependencias">
### ❌ Versiones incompatibles
**Solución:**```powershell# Verificar conflictos[tool] dependencies --check-conflicts
# Actualizar a versiones compatibles[tool] update --compatible
# Reinstalar clean[tool] clean && [tool] install```
</TabItem>
<TabItem label="💾 Performance">
### ❌ Uso excesivo de memoria
**Solución:**```powershell# Monitorear uso[tool] monitor --memory --realtime
# Limpiar cache[tool] cache --clear --all
# Ajustar límites[tool] config --set memory-limit 2048```
</TabItem></Tabs>
## 🛠️ Scripts de Diagnóstico Automatizado
### Script de Diagnóstico Completo
```powershell# diagnostic-full.ps1Write-Host "🔍 Iniciando diagnóstico completo..."
# System CheckWrite-Host "📊 Verificando sistema..."[tool] status --json > system-status.json
# Config CheckWrite-Host "⚙️ Verificando configuración..."[tool] config --validate --output config-issues.log
# Connectivity CheckWrite-Host "🌐 Verificando conectividad..."[tool] ping --all-endpoints --timeout 10
# Dependencies CheckWrite-Host "📦 Verificando dependencias..."[tool] dependencies --check --output deps-report.json
Write-Host "✅ Diagnóstico completado. Revisar archivos de reporte."```
### Script de Auto-Fix
```powershell# auto-fix.ps1Write-Host "🔧 Ejecutando auto-fixes comunes..."
# Limpiar cache[tool] cache --clear
# Reinstalar dependencias[tool] clean && [tool] install
# Regenerar configuraciones temporales[tool] config --regenerate --temp
# Verificar que fixes funcionaron[tool] verify --post-fix
Write-Host "✅ Auto-fixes completados"```
## 📞 Escalation Path
### Cuándo Escalar
- [ ] **Problema persiste** después de seguir troubleshooting- [ ] **Impacto crítico** en producción- [ ] **Datos sensibles** involucrados- [ ] **Solución requiere** cambios de infraestructura
### A Quién Contactar
| Tipo de Problema | Contacto | Canal ||------------------|----------|-------|| **Configuración básica** | Experto del área | Slack #dev-team || **Performance/Infraestructura** | DevOps/SRE | Slack #infrastructure || **Problemas de producción** | On-call engineer | Incident management || **Datos/Seguridad** | Security team | Email + Slack |
---
<Aside type="caution">**Importante**: Siempre documenta la solución que funcionó para ayudar a futuros casos similares</Aside>📝 Contenido
🎨 Formato
🔗 Navegación
🧪 Validación
Actualización Urgente (1 semana):
Actualización Regular (1 mes):
Actualización Estratégica (trimestral):
📈 Engagement
Métricas: Tiempo en página, bounce rate
Meta: > 3 min promedio, < 30% bounce
🎯 Efectividad
Métricas: Tasks completados, errores reportados
Meta: >90% completion rate
💬 Satisfacción
Métricas: Feedback positivo, contribuciones
Meta: >4.5/5 rating, >1 contribución/mes
🔄 Actualidad
Métricas: Última actualización, enlaces válidos
Meta: < 30 días desde última update