Guía completa de Java en español para la comunidad hispanohablante. Desde fundamentos hasta arquitecturas modernas de backend.
- Español neutro y profesional: Sin jerga regional, accesible para toda la comunidad hispana
- Java moderno: Enfocado en Java 17 y 21 (versiones LTS)
- Práctico, no teórico: Ejemplos reales con código ejecutable
- No solo para principiantes: Desde fundamentos hasta arquitecturas avanzadas
- Ejemplos comparativos: Código incorrecto ❌ vs correcto ✅
- Temas actuales: Spring Boot, REST APIs, Testing, Microservicios
- Kotlin Multiplatform: Capítulo complementario para explorar KMP
- Bienvenida y contexto
- Instalación en Linux, Windows y macOS
- Tu primer programa en Java
- Sintaxis básica y operadores
- Tipos de datos (primitivos y objetos)
- Control de flujo (if, switch, loops)
- Programación Orientada a Objetos
- Manejo de excepciones
- Colecciones (List, Set, Map)
- Streams y programación funcional
- Organización del código por capas
- Packages y módulos (JPMS)
- Estructura de directorios (Maven/Gradle)
- Arquitectura de la JVM
- Compilación y bytecode
- Garbage Collection
- Optimización y rendimiento
- Maven: pom.xml, ciclo de vida, plugins
- Gradle: build scripts, Kotlin DSL
- Gestión de dependencias
- IDEs modernos (IntelliJ, VS Code, Eclipse)
- Convenciones de código
- Patrones de diseño (Singleton, Factory, Builder, etc.)
- Errores comunes y cómo evitarlos
- Clean Code y principios SOLID
- Introducción al testing (unitarios, integración, E2E)
- JUnit 5: assertions, lifecycle, tests parametrizados
- Mockito: mocks, stubs, verificaciones
- Tests de integración con Spring Boot y TestContainers
- Spring Boot: configuración, inyección de dependencias
- REST APIs: endpoints, validación, manejo de errores
- Bases de datos: JPA, Hibernate, Spring Data
- Arquitectura: capas, DTOs, microservicios
- Introducción a KMP (complemento, no foco principal)
- KMP para desarrolladores Java
- Cuándo usar KMP vs Java puro
- Node.js: v18+ o v20+
- pnpm: v10.0.0 (o npm/yarn)
# Clonar el repositorio
git clone https://github.com/angelcgar/documentacion-java.git
cd documentacion-java
# Instalar dependencias
pnpm install
# Iniciar servidor de desarrollo
pnpm devEl sitio estará disponible en http://localhost:4321
# Desarrollo
pnpm dev # Servidor de desarrollo con hot reload
# Producción
pnpm build # Compilar para producción
pnpm preview # Previsualizar build de producción
# Calidad de código
pnpm astro check # Verificar errores en Astro- Astro: Framework estático rápido y moderno
- Starlight: Tema de documentación de Astro
- TailwindCSS: Utilidades CSS
- TypeScript: Type safety
- MDX: Markdown con componentes React
documentacion-java/
├── src/
│ ├── content/
│ │ └── docs/ # Archivos de documentación (.md, .mdx)
│ │ ├── index.mdx # Página principal
│ │ ├── introduccion/ # Sección de introducción
│ │ ├── fundamentos/ # Fundamentos de Java
│ │ ├── proyecto/ # Estructura de proyectos
│ │ ├── jvm/ # JVM y compilación
│ │ ├── herramientas/ # Maven, Gradle, IDEs
│ │ ├── practicas/ # Buenas prácticas
│ │ ├── testing/ # Testing con JUnit/Mockito
│ │ ├── backend/ # Spring Boot y APIs REST
│ │ └── kmp/ # Kotlin Multiplatform
│ ├── assets/ # Imágenes y recursos
│ ├── components/ # Componentes Astro/React
│ └── styles/ # Estilos globales
├── public/ # Archivos estáticos
├── astro.config.mjs # Configuración de Astro
├── package.json
└── tsconfig.json
Las contribuciones son bienvenidas. Si encuentras errores, typos, o quieres mejorar el contenido:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/mejora-xyz) - Commit tus cambios (
git commit -m 'Mejora en sección XYZ') - Push a la rama (
git push origin feature/mejora-xyz) - Abre un Pull Request
- Español neutro: Evita regionalismos (usa "ordenador" o "computadora" de forma intercambiable, "aplicación" en vez de "app")
- Código formateado: Usa ejemplos con formato correcto y comentarios claros
- Ejemplos prácticos: Prefiere código ejecutable sobre teoría abstracta
- Java moderno: Enfócate en Java 17/21, menciona features antiguas solo si es relevante
Este proyecto está bajo la licencia MIT. Ver el archivo LICENSE para más detalles.
- Astro por el framework increíble
- Starlight por el tema de documentación
- La comunidad de Java hispanohablante
- Autor: Angel García
- GitHub: @angelcgar
- Repositorio: documentacion-java
⭐ Si esta documentación te resulta útil, considera darle una estrella al repositorio