Prácticas del desarrollador

  1. Prácticas del desarrollador
    1. Linux, entornos y automatización
      1. Fundamentos de sistemas tipo Unix
        1. Filosofía Unix y diseño modular
        2. Sistema de archivos jerárquico y rutas absolutas vs relativas
        3. Permisos de usuario, grupo y otros
        4. Propietarios, grupos y modos de archivo (r/w/x)
        5. Procesos y espacios de usuario vs kernel
        6. Señales y estados de proceso
        7. Pipes y redirecciones estándar (stdin, stdout, stderr)
        8. Scripts ejecutables y el shebang (#!/usr/bin/env ...)
        9. Diferencias básicas entre Linux, macOS y WSL
        10. Sistemas de archivos montados y puntos de montaje
      2. Comandos esenciales de línea de comando
        1. Navegación del sistema de archivos (ls, cd, pwd, tree)
        2. Inspección de contenido (cat, less, head, tail, wc)
        3. Manipulación de archivos y directorios (cp, mv, rm, mkdir, touch)
        4. Búsqueda de archivos (find, locate)
        5. Búsqueda dentro de archivos (grep, flags comunes y regex básicas)
        6. Transformación de texto (cut, sort, uniq, tr, sed, awk)
        7. Compresión y empaquetado (tar, gzip, zip, unzip)
        8. Descarga y transferencia de datos (curl, wget, scp, rsync)
        9. Gestión de permisos y propiedad (chmod, chown, chgrp)
        10. Consultar ayuda y manuales (man, --help, info)
        11. Expansión de comodines y globbing (*, ?, {})
        12. Historial y repetición de comandos
      3. Gestión de paquetes y entornos del sistema
        1. Gestores de paquetes del sistema (apt, dnf, pacman, brew)
        2. Instalación, actualización y desinstalación de paquetes
        3. Repositorios oficiales, extras y personalizados
        4. Dependencias del sistema vs dependencias de proyecto
        5. Bibliotecas compartidas y versiones de runtimes
        6. Aislamiento con contenedores ligeros y sandboxes
        7. Uso de herramientas polyglot (asdf, pyenv, nvm, rbenv)
        8. Políticas de seguridad al instalar software de terceros
        9. Auditoría de integridad de paquetes y firmas
        10. Reproducibilidad y bloqueo de versiones a nivel sistema
      4. Servicios del sistema, tareas programadas y demonios
        1. Procesos en background y foreground
        2. Administración de servicios con systemd (systemctl start/stop/status)
        3. Units de systemd (service, timer, socket)
        4. Registro y reinicios automáticos de servicios
        5. Tareas programadas con cron y crontab
        6. Diferencia entre cron jobs y systemd timers
        7. Demonios personalizados y supervisión
        8. Ejecución al arranque del sistema
        9. Políticas de restart y watchdog de servicios críticos
        10. Gestión y rotación de logs de servicios en background
      5. Variables de entorno y configuración
        1. Variables de entorno globales y locales
        2. Exportación y alcance (export, subshells)
        3. Variables estándar (PATH, HOME, SHELL, etc.)
        4. Rutas de búsqueda de ejecutables (PATH) y prioridad
        5. Archivos de inicio de shell (.bashrc, .zshrc, .profile, etc.)
        6. Archivos .env y configuración basada en entorno
        7. Separación entre secretos y configuración pública
        8. Inyección de variables de entorno en procesos y servicios
        9. Carga de variables de entorno en despliegues CI/CD
        10. Protección de secretos en entornos compartidos / shells multiusuario
      6. Supervisión de procesos y recursos
        1. Listado de procesos (ps, top, htop)
        2. Uso de CPU, memoria y disco
        3. Señales a procesos (kill, kill -9, kill -HUP)
        4. Trazas de procesos (strace, lsof)
        5. Monitoreo de IO y consumo de red
        6. Detección de procesos colgados o runaway
        7. Afinidad de CPU y límites de recursos
        8. Limitación de recursos por proceso (ulimit)
        9. Aislamiento y control de consumo con cgroups / namespaces
        10. Detección de memory leaks y crecimiento anómalo de RSS
      7. Redes y puertos
        1. Conceptos básicos de red (IP, DNS, routing)
        2. Inspección de interfaces de red y direcciones IP
        3. Resolución de nombres y lookup DNS
        4. Conexiones abiertas y puertos en escucha
        5. Testeo de conectividad (ping, traceroute, nc)
        6. Transferencias seguras (ssh, túneles SSH, port forwarding)
        7. Firewalls locales y reglas de acceso
        8. Servicios locales vs servicios expuestos públicamente
        9. Escaneo y verificación de puertos expuestos (auditoría de superficie)
        10. Diagnóstico de bloqueo por firewall / NAT / routing asimétrico
      8. Seguridad y control de acceso
        1. Usuarios y grupos
        2. Elevación de privilegios (sudo, política de sudoers)
        3. Claves SSH y autenticación sin contraseña
        4. Permisos mínimos necesarios (principio de mínimo privilegio)
        5. Gestión de llaves privadas y públicas
        6. Almacenamiento seguro de secretos
        7. Prevención de ejecución arbitraria (no ejecutar scripts ciegamente)
        8. Aislamiento de procesos y sandboxing
        9. Hardening básico del sistema y superficies de ataque
        10. Auditoría de acceso y rotación periódica de credenciales
      9. Automatización y scripting en la línea de comando
        1. Alias y funciones de shell
        2. Scripting en Bash y shells compatibles
        3. Variables, argumentos posicionales y retorno de códigos de salida
        4. Condicionales y loops en shell
        5. Procesamiento batch de archivos
        6. Pipelines encadenados y composición de herramientas pequeñas
        7. Scripts idempotentes y repetibles
        8. Manejo de errores y set -euo pipefail
        9. Interoperabilidad entre shell y otros lenguajes (Python, awk, etc.)
        10. Ejecución remota de scripts
      10. Personalización del entorno de trabajo
        1. Prompt personalizado y contexto en tiempo real
        2. Uso de tmux/multiplexores de terminal
        3. Historial persistente y búsqueda incremental
        4. Autocompletado avanzado y sugerencias contextuales
        5. Snippets reutilizables de shell
        6. Navegación rápida de proyectos y bookmarks de rutas
        7. Diferencias entre shells (bash, zsh, fish)
        8. Búsqueda global de símbolos/código desde terminal
        9. Sincronización y versionado de dotfiles entre máquinas
        10. Mostrar rama git/estado CI/estado de despliegue en el prompt
      11. Diagnóstico de rendimiento
        1. Cuellos de botella de CPU
        2. Cuellos de botella de memoria y swapping
        3. Latencia de disco y uso de IOPS
        4. Bloqueos por IO vs bloqueo por red
        5. Perf counters y perf tracing del kernel
        6. Benchmarks reproducibles
        7. Análisis de latencia en servicios en segundo plano
        8. Perfilado de kernel y userland (perf/ftrace/eBPF)
        9. Pruebas de throughput/red (iperf, etc.)
        10. Línea base histórica de rendimiento para comparación
      12. Auditoría del sistema y logs
        1. Logs del sistema (journalctl, /var/log)
        2. Rotación y retención de logs
        3. Niveles de severidad y filtrado
        4. Correlación entre eventos de sistema y fallas de servicio
        5. Detección de patrones de error recurrentes
        6. Registro de accesos y actividad sospechosa
        7. Trazabilidad y evidencia para post-mortems
        8. Alertas tempranas y monitoreo continuo
        9. Centralización y reenvío de logs a sistemas SIEM
        10. Retención para cumplimiento normativo y forense
    2. Fundamentos de lenguajes de programación
      1. Ver rutas de aprendizaje de lenguajes de programación
        1. Python
        2. JavaScript / TypeScript
        3. Rust
        4. Bash / shell scripting
        5. Go
        6. Java / JVM
        7. C / C++
        8. Kotlin
        9. SQL y lenguajes de consulta
        10. Lenguajes orientados a sistemas distribuidos / backend de alto rendimiento
      2. Compiladores, intérpretes y construcción de lenguajes
        1. Análisis léxico, análisis sintáctico, análisis semántico
        2. Representación intermedia (IR) y optimización
        3. Generación de código y backend
        4. Enlace y carga (linking / loading)
        5. Intérpretes de árbol y máquinas virtuales
        6. Compilación JIT vs AOT
        7. Bootstrapping de compiladores
        8. Generadores léxicos y parsers (lexer/parser generators)
        9. Optimizaciones específicas de arquitectura (registro, cache, vectorización)
        10. Administración de memoria y GC en tiempo de ejecución
      3. Diseño de lenguajes
        1. Semántica operacional, denotacional y axiomática
        2. Visibilidad y alcance léxico / dinámico
        3. Mutabilidad vs inmutabilidad
        4. Evaluación estricta vs evaluación perezosa
        5. Transparencia referencial
        6. Efectos laterales y efectos controlados
        7. Seguridad de tipos y memoria
        8. DSLs (lenguajes específicos de dominio)
        9. Módulos, encapsulación y control explícito de interfaz pública
        10. Seguridad de memoria, aislamiento y capacidad de sandboxing
      4. Sintaxis y estructuras básicas
        1. Expresiones y operadores
        2. Declaraciones y bloques
        3. Precedencia y asociatividad
        4. Literales y construcción de valores
        5. Comentarios y directivas
        6. Importación de símbolos y alcance de nombres
        7. Sombra de variables (shadowing)
        8. Declaración de variables con distintos niveles de mutabilidad (const, let, var)
        9. Sintaxis para estructuras literales (objetos, dicts, records)
        10. Reglas de formato/indentación significativa (offside rule)
      5. Tipos de datos y abstracción de datos
        1. Primitivos escalares (numéricos, booleanos, caracteres)
        2. Estructuras compuestas (registros, structs, tuples)
        3. Colecciones (listas, arreglos, diccionarios, mapas)
        4. Tipos algebraicos (suma y producto)
        5. Enumeraciones etiquetadas
        6. Tipos abstractos de datos (ADT)
        7. Encapsulación de representación interna
        8. Tipos opción / tal vez (Option, Maybe)
        9. Genéricos paramétricos en estructuras de datos reutilizables
        10. Tipos resultado / error seguros para señalizar fallos
      6. Control de flujo (condicionales, bucles, manejo de ramificaciones)
        1. if / else / switch / match
        2. while / for / foreach
        3. Pattern matching estructural
        4. Cortocircuito lógico
        5. Break / continue / return
        6. Goto y saltos estructurados
        7. Manejo explícito de ramificaciones y guard clauses
        8. Abstracciones de control tipo map/filter/reduce
        9. Excepciones como salto no local
        10. Pattern guards, backtracking y ramificación declarativa
      7. Funciones, cierres y paso de datos
        1. Funciones de primera clase y funciones anónimas
        2. Cierres (closures) con captura léxica
        3. Paso por valor, paso por referencia, paso por nombre
        4. Currificación y aplicación parcial
        5. Recursión directa y recursión de cola
        6. Funciones variádicas
        7. Callbacks y funciones de orden superior
        8. Inlining y optimización de funciones pequeñas
        9. Semántica de movimiento / copia (move semantics / borrow)
        10. Paso de datos inmutable vs mutable controlado
      8. Paradigmas funcionales
        1. Inmutabilidad
        2. Funciones puras
        3. Evaluación perezosa
        4. Pattern matching
        5. Tipos algebraicos y sum types
        6. Mónadas, funtores, applicatives
        7. Efectos controlados y IO monádico
        8. Transformaciones sin estado compartido
        9. Estructuras de datos persistentes
        10. Programación reactiva funcional y streams declarativos
      9. Programación orientada a objetos (clases, interfaces, herencia, composición)
        1. Clases y objetos
        2. Encapsulación y visibilidad
        3. Herencia simple y múltiple
        4. Polimorfismo de subtipos
        5. Interfaces y contratos
        6. Composición sobre herencia
        7. Mixins y rasgos (traits)
        8. Métodos virtuales y despacho dinámico
        9. Metaclases y reflexión orientada a objetos
        10. Objetos inmutables y value objects (semántica por valor)
      10. Organización en módulos y paquetes
        1. Módulos y namespaces
        2. Imports / exports explícitos
        3. Control de visibilidad pública / privada / interna
        4. Empaquetado y distribución
        5. Versionado semántico
        6. Resolución de dependencias
        7. Árboles de dependencias y deduplicación
        8. Separación lógica por capa o dominio
        9. Publicación en registros de paquetes (npm, PyPI, crates.io)
        10. Compatibilidad binaria / estabilidad de ABI en librerías compartidas
      11. Tipado estático y anotaciones de tipo
        1. Tipado estático vs tipado dinámico
        2. Inferencia de tipos
        3. Polimorfismo paramétrico
        4. Polimorfismo ad-hoc (sobrecarga)
        5. Tipos nominales vs tipos estructurales
        6. Genéricos
        7. Tipos dependientes
        8. Propagación de null safety / tipos opción
        9. Mutabilidad tipada e inmutabilidad tipada
        10. Nullability, flow-sensitive typing y refinamiento de tipos en tiempo de análisis
      12. Manejo de errores y excepciones
        1. Excepciones verificadas vs no verificadas
        2. Propagación de excepciones
        3. Tipos resultado (Result, Either)
        4. Valores centinela y códigos de error
        5. Panic / abortar ejecución
        6. Reintentos y recuperación
        7. Limpieza garantizada post-error
        8. Retries con backoff y circuit breakers en lógica de negocio
        9. Logging estructurado de fallos y trazas
        10. Políticas de resiliencia y aislamiento de fallos
      13. Gestión estructurada de recursos (por ejemplo, scopes y contextos controlados)
        1. RAII
        2. Destructores / finalizers
        3. with / using / defer
        4. Propiedad y préstamo (ownership / borrowing)
        5. Regiones de vida (lifetimes)
        6. Recolección de basura
        7. Pools de recursos
        8. Reutilización de conexiones y pools de sockets/DB
        9. Garantías de liberación aun con excepciones
        10. Recolección determinista vs no determinista
      14. Iteradores, generadores y secuencias consumibles
        1. Iteradores internos y externos
        2. Generadores con yield
        3. Corutinas cooperativas
        4. Secuencias lazy
        5. Streams y pipelines de datos
        6. Backpressure y consumo incremental
        7. Iteración paralela y concurrente
        8. Iteradores infinitos / streams sin fin
        9. Materialización diferida y batching
        10. Generadores con control de flujo y cancelación
      15. Metaprogramación y reflexión
        1. Macros en tiempo de compilación
        2. Transformación de AST
        3. Reflection en tiempo de ejecución
        4. Anotaciones y atributos
        5. Generación de código (codegen)
        6. Plantillas / templates genéricas
        7. Meta-objetos y metaclases
        8. eval y ejecución dinámica
        9. Programación orientada a aspectos (AOP)
        10. Generación automática de SDKs / clientes a partir de contratos
      16. Serialización y deserialización de estructuras
        1. JSON
        2. XML
        3. Representaciones binarias (Protocol Buffers, MessagePack)
        4. Marshaling / unmarshaling
        5. Versionado de mensajes
        6. Esquemas y validación
        7. Compatibilidad retroactiva y hacia adelante
        8. Normalización de datos y canonical forms
        9. Compresión y cifrado del payload serializado
        10. Evolución de esquema sin downtime ni pérdida de datos
      17. Estilo, convenciones y mantenibilidad del código
        1. Convenciones de nombres
        2. Formato automático y linters
        3. Documentación integrada y autodocumentación
        4. Pruebas unitarias y de integración
        5. Contratos y aserciones
        6. Revisión de código
        7. Refactorización continua
        8. Control de complejidad ciclomática
        9. Gestión de deuda técnica
        10. Automatización de refactor y actualización de sintaxis / APIs obsoletas
    3. Herramientas y productividad técnica
      1. Entornos aislados y gestión de dependencias
        1. Entornos virtuales por proyecto
        2. Bloqueo de versiones y archivos de lock
        3. Reproducibilidad entre máquinas
        4. Instalación determinista vs instalación flotante
        5. Aislamiento de intérpretes y runtimes
        6. Contenedores ligeros para pruebas locales
        7. Dependencias de sistema vs dependencias de aplicación
        8. Reproducibilidad en CI/CD y ambientes efímeros
        9. Pinning de versiones multiplataforma
        10. Auditoría y escaneo de vulnerabilidades en dependencias
      2. Control de versiones de configuraciones y datos
        1. Versionar configuración del entorno (dotfiles)
        2. Backups rastreables y reversibles
        3. Historial de cambios de infraestructura
        4. Tratamiento de archivos binarios y datos pesados
        5. Plantillas de configuración parametrizadas
        6. Manejo de secretos fuera del repositorio
        7. Versionado de secretos cifrados gestionados (vaults)
        8. Políticas de retención y expiración de backups
        9. Control de drift entre infra declarada y estado real
        10. Auditoría de cambios de acceso / privilegios
      3. Plantillas de proyectos y generación de esqueletos de servicio
        1. Estructuras mínimas recomendadas por tipo de proyecto
        2. Bootstrapping automático de nuevos repos
        3. Convenciones de nombres y layout
        4. Metadata inicial (licencia, README, CI básica)
        5. Configuración inicial de linting y formateo
        6. Patrones estándar de logging y manejo de errores
        7. Versionado inicial y numeración base
        8. Instrumentación y observabilidad mínima (métricas, logs)
        9. Chequeo de seguridad inicial (escaneo de dependencias)
        10. Plantillas de pruebas y cobertura mínima aceptable
      4. Ejecutores de tareas y automatización repetible
        1. Makefiles y targets convencionales
        2. Scripts de automatización de flujo de desarrollo
        3. Pipelines locales para build/test/lint
        4. Orquestación de pasos dependientes
        5. Automatización de despliegues internos
        6. Reglas auto-documentadas (make help)
        7. Jobs reproducibles en distintos entornos
        8. Pipelines locales equivalentes a lo que corre en CI
        9. Empaquetado de tareas en contenedores locales
        10. Caching de resultados intermedios para acelerar iteración
      5. Documentación viva y navegable
        1. Documentación que se genera desde el código
        2. Documentación que se valida con tests
        3. Requisitos de instalación y setup reproducible
        4. Ejemplos ejecutables y notebooks de demostración
        5. Tablas de verdad de comportamiento esperado
        6. Diagramas de arquitectura y flujos de datos
        7. Versionado de la documentación junto al código
        8. Versionado de docs alineado a cada release
        9. Catálogo interno de servicios / APIs
        10. Runbooks operacionales y manuales de intervención (SRE playbooks)
      6. Creación de herramientas de línea de comando para flujos internos
        1. Interfaces consistentes y autodescriptivas
        2. Estándares para flags, subcomandos y --help
        3. Manejo de logs y salida estructurada
        4. Códigos de salida y manejo de errores
        5. Scripts utilitarios para equipos completos
        6. Distribución interna de binarios y scripts
        7. Empaquetado en un solo ejecutable
        8. Autenticación y manejo seguro de credenciales
        9. Distribución multiplataforma y binarios firmados
        10. Telemetría opcional y métricas de uso interno
      7. Integración y configuración avanzada del entorno de desarrollo
        1. Configuración de editores y extensiones críticas
        2. Integración con linters y formateadores
        3. Integración con depuradores
        4. Integración con analizadores de performance
        5. Ajustes de snippets y refactors automáticos
        6. Integración con gestores de tareas / issue trackers
        7. Estándares de workspace compartido en equipos
        8. Sincronización de configuraciones entre dispositivos / equipo
        9. Accesibilidad del entorno dev (temas, contraste, legibilidad)
        10. Scripts de onboarding para nuevos desarrolladores
      8. Perfilado y depuración interactiva
        1. Depuración paso a paso
        2. Inspección de estado interno en runtime
        3. Breakpoints condicionales
        4. Análisis de memoria en ejecución
        5. Perfilado de CPU y hot paths
        6. Perfilado de IO / red
        7. Recolección de volcados (core dumps) y post-mortems
        8. Heap dumps y diagnóstico de fugas de memoria
        9. Trazas de sistema en producción de manera segura / limitada
        10. Comparación histórica entre perfiles para detectar regresiones
      9. Chequeo estático de tipos y análisis estático
        1. Tipado gradual y contratos de interfaz
        2. Análisis de rutas de ejecución inalcanzables
        3. Detección temprana de errores comunes
        4. Revisión automática de convenciones y estilo
        5. Seguridad: análisis de uso inseguro de datos externos
        6. Reportes automáticos en CI
        7. Integración del análisis estático con el editor
        8. Modelado de amenazas de entrada no confiable
        9. Alertas de APIs obsoletas / deprecated
        10. Reportes de cumplimiento y requisitos regulatorios
      10. Formateo automático y validaciones previas al commit
        1. Formateadores automáticos de código
        2. Linters de estilo y consistencia
        3. Validación de convenciones de nombres
        4. Validación de imports, dependencias y licencias
        5. Revisión rápida de errores obvios antes de subir cambios
        6. Normalización de finales de línea y codificación de texto
        7. Hooks locales (pre-commit) compartidos en el equipo
        8. Escaneo de secretos en el commit
        9. Validación automática de formato de mensaje de commit
        10. Smoke tests locales antes de push
      11. Plantillas de integración continua y entrega continua
        1. Pipelines de build y test
        2. Linting y análisis estático en CI
        3. Escaneos de seguridad automatizados
        4. Publicación automática de artefactos
        5. Deploy automatizado en entornos intermedios
        6. Checks de calidad antes de merge
        7. Versionado automático y etiquetado de release
        8. Deploy canario automatizado
        9. Rollback automático basado en alertas SLO
        10. Publicación automática de changelog / docs junto al release
      12. Entornos de desarrollo reproducibles y remotos
        1. Desarrollo en contenedores
        2. Entornos efímeros por rama
        3. Dev environments remotos y cloud workspaces
        4. Sincronización de estado local/remoto
        5. Aislamiento de recursos pesados (GPU, bases de datos, colas)
        6. Simulación local de servicios externos
        7. Políticas de consistencia entre dev / staging / prod
        8. Depuración remota con breakpoints sobre entornos cloud
        9. Auditoría y control de acceso a entornos compartidos
        10. Limpieza y rotación automática de entornos efímeros viejos
    4. Control de versiones y colaboración
      1. Fundamentos de control de versiones distribuido
        1. Commits como snapshots inmutables
        2. Árbol de commits y DAG de historial
        3. Remotos, clones y forks
        4. Staging area e índice
        5. Rastrear cambios vs rastrear archivos nuevos
        6. Ignorar archivos temporales y secretos
        7. Reescritura de historial local vs remoto
        8. Integridad mediante hashes criptográficos y firmas
        9. Ramas locales vs ramas remotas con tracking
        10. Recuperación de estados previos (reflog / restore)
      2. Estrategias de ramificación
        1. Trunk-based development
        2. Feature branches
        3. Release branches y hotfix branches
        4. Branches de soporte a largo plazo
        5. Flujos de integración frecuente vs integración tardía
        6. Control de estabilidad en ramas críticas
        7. Relación entre ramas y entornos desplegados
        8. Uso de feature flags vs ramas de larga vida
        9. Release trains / cadencia fija de entregas
        10. Limpieza de ramas zombies / ramas huérfanas
      3. Rebase, merge, cherry-pick y manejo de trabajo en paralelo
        1. Fast-forward merge vs merge commit
        2. Rebase interactivo para limpiar historial
        3. Reescritura de mensajes y squash de commits
        4. Cherry-pick de cambios aislados
        5. Backport de fixes a ramas antiguas
        6. Sincronizar ramas divergentes
        7. Evitar pérdida de trabajo en paralelo
        8. Evitar merges recursivos muy complejos mediante división temprana
        9. Preservar autoría y metadata de los cambios
        10. Riesgos de rebase en ramas compartidas vs merge tradicional
      4. Resolución de conflictos
        1. Tipos de conflictos comunes
        2. Conflictos en código vs conflictos en archivos de configuración o lockfiles
        3. Herramientas de merge asistido
        4. Buenas prácticas para resolver conflictos legibles
        5. Confirmación y prueba después de resolver conflictos
        6. Minimizar conflictos mediante división de cambios
        7. Documentar decisiones tomadas durante la resolución
        8. Automatización parcial con merge drivers personalizados
        9. Políticas de decisión cuando hay conflicto funcional / semántico
        10. Validación de build y tests antes de dar por cerrado el conflicto
      5. Convenciones de commits y gestión semántica de versiones
        1. Mensajes de commit claros y estructurados
        2. Separar cambios funcionales de cambios cosméticos
        3. Commits atómicos y reversibles
        4. Referencias a issues / tickets
        5. Commits de refactor vs commits de feature vs commits de fix
        6. Convenciones de prefijos y categorías de cambios
        7. Relación entre commits y notas de release
        8. Commits firmados / verificables
        9. Separar cambios funcionales y refactors en PRs distintos
        10. Asociación entre commits y trazabilidad legal / cumplimiento
      6. Versionado semántico y etiquetado de lanzamientos
        1. Mayor / menor / parche
        2. Cambios incompatibles y releases mayores
        3. Cambios compatibles y releases menores
        4. Fixes urgentes y releases de parche
        5. Pre-releases y etiquetas de estabilidad
        6. Tags firmados y verificables
        7. Publicación de changelogs
        8. Estrategias de deprecación gradual de APIs
        9. Compatibilidad binaria / ABI en librerías
        10. Herramientas automáticas de bump de versión y tagging
      7. Gestión de submódulos, monorepos y multi-repos
        1. Submódulos y dependencias versionadas
        2. Sincronización de versiones entre repositorios
        3. Monorepos con múltiples servicios
        4. Coordinación de cambios entre múltiples paquetes
        5. Herramientas para mantener consistencia interna
        6. Ventajas y costos de monorepo vs multi-repo
        7. Estrategias de permisos y propiedad de código
        8. Sincronización de dependencias en monorepos grandes
        9. Versionado coordinado de contratos / APIs internas
        10. Políticas de visibilidad / permisos por carpeta o módulo
      8. Hooks y automatización del flujo de trabajo
        1. Hooks locales (pre-commit, pre-push)
        2. Hooks del servidor (validaciones en el remoto)
        3. Enforcers de formato y estilo
        4. Validación de firmas y políticas de seguridad
        5. Rechazo automático de pushes inválidos
        6. Generación automática de documentación y changelogs
        7. Disparadores de CI/CD basados en eventos de repositorio
        8. Escaneo de vulnerabilidades en dependencias al hacer push
        9. Enriquecimiento automático del PR con contexto adicional
        10. Auditoría continua de cumplimiento de políticas internas
      9. Integración con revisión de código e integración continua
        1. Pull requests y merge requests
        2. Revisión por pares y ownership de módulos
        3. Checks automáticos en cada PR
        4. Gatekeepers y responsabilidades de aprobación
        5. Políticas para cambios urgentes
        6. Sincronización entre ramas y pipelines de CI
        7. Validación de seguridad y cumplimiento
        8. Rotación de revisores y balanceo de carga de review
        9. Métricas de lead time y tiempo de revisión
        10. Pruebas de performance / carga en PRs críticos
      10. Políticas de revisión y ramas protegidas
        1. Ramas protegidas y restricciones de push
        2. Requisitos mínimos de revisión
        3. Reglas de aprobación obligatoria
        4. Firmas requeridas y verificación de autoría
        5. Control de calidad previo a merge
        6. Registros de quién aprobó qué cambio
        7. Aprobaciones condicionadas a tests y cobertura
        8. Políticas distintas según criticidad del repositorio
        9. Requerir builds reproducibles / verificables
        10. Auditoría de cambios en configuración sensible / de seguridad
      11. Auditoría del historial y trazabilidad de cambios
        1. Análisis de quién cambió qué y cuándo
        2. Blame y atribución de líneas de código
        3. Revertir versiones específicas de forma segura
        4. Reconstrucción de la línea temporal de un bug
        5. Cumplimiento normativo y auditorías externas
        6. Huellas criptográficas y firmas GPG
        7. Trazabilidad entre código, decisiones y producción
        8. Reconstrucción de incidentes de seguridad a partir del historial
        9. Evidencia para certificaciones y cumplimiento legal
        10. Conservación y archivado de ramas históricas / snapshots estables
Última modificación October 27, 2025: changes (85a7032)