https://github.com/tonivade/commitconf-25
código fuente de los ejemplos usados en la charla que presenté en la #commitconf
https://github.com/tonivade/commitconf-25
commitconf dsl functional-programming java
Last synced: about 1 month ago
JSON representation
código fuente de los ejemplos usados en la charla que presenté en la #commitconf
- Host: GitHub
- URL: https://github.com/tonivade/commitconf-25
- Owner: tonivade
- Created: 2025-04-06T06:00:14.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-09-18T12:30:01.000Z (9 months ago)
- Last Synced: 2025-09-18T14:45:38.727Z (9 months ago)
- Topics: commitconf, dsl, functional-programming, java
- Language: Java
- Homepage: https://tonivade.es/commitconf25/slides.html
- Size: 8.91 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Construyendo DSLs en Java: Aprovechando las Nuevas Herramientas del Lenguaje
¿Te gustaría crear herramientas que hablen el mismo lenguaje que el problema que intentas resolver? En esta charla exploraremos el fascinante mundo de los **Domain-Specific Languages** (DSLs) en **Java**, una técnica que permite crear mini-lenguajes específicos para describir y resolver problemas de manera natural y expresiva.
Gracias a las potentes características que **Java** ha introducido recientemente, como *records*, *sealed classes* o *pattern matching*, desarrollar DSLs es ahora más accesible y eficaz que nunca. Hablaremos de cómo estas herramientas facilitan la creación de DSLs al hacer que el código sea más claro y menos propenso a errores.
Exploraremos paso a paso las novedades del lenguaje, y aplicaremos estas técnicas con ejemplos prácticos para construir un DSL que no solo sea expresivo, sino también funcional y eficiente. Verás cómo un DSL puede transformar la manera en que representamos problemas complejos y cómo, al final de la charla, podrás empezar a darle vida a tus propias herramientas para que hagan cosas realmente útiles.
## Generar slides y compilar snippets
Necesitas tener instalado [sdkman](https://sdkman.io/). Este comando instalará la versión de java necesaria para compilar los snippets, y hará la compilación propiamente dicha:
```sh
./compile.sh
```
Para generar las slides necesitas tener instalado npm y nodejs. Para instalarlo recomiendo [nvm](https://github.com/nvm-sh/nvm). Finalmente ejecutando este script generará las slides:
```sh
./build.sh
```
## Probar snippets
Se pueden probar algunos snippets que contienen un main de esta manera:
```sh
java --enable-preview snippets/Clase.java
```
O abrir una sesión de jshell:
```sh
jshell --enable-preview snippets/Clase.java
```
Una vez dentro de la shell se puede probar la clase.