Contenido del curso
Entendiendo las partes de la programación funcional
- 2

Funciones en Programación Funcional: Conceptos Básicos
03:15 min - 3

Funciones como Ciudadanos de Primera Clase en Programación
02:39 min - 4

Funciones Puras: Concepto y Ejemplos Prácticos
04:05 min - 5

Efectos Secundarios en Programación y su Impacto en el Código
03:12 min - 6

Funciones de Orden Superior en Programación
02:28 min - 7

Funciones Lambda en Programación Funcional Java
03:30 min - 8

Inmutabilidad de Datos en Programación Funcional con Java
11:16 min
Functional Programming en Java
- 9

Programación Funcional en Java SE: Conceptos y Prácticas
00:06 min - 10

Programación Funcional en Java: Práctica y Ejemplos en IntelliJ
02:48 min - 11

Programación Funcional en Java: Creación y Uso de Funciones
04:03 min - 12

Programación Funcional con Predicados en Java
04:57 min - 13

Interfaz Consumer y Supplier en Java: Uso y Ejemplos Prácticos
03:54 min - 14

Funciones Java para Transformación de Datos y Operaciones Binarias
07:10 min - 15

Creación y Uso de Interfaces Funcionales Personalizadas en Java
08:51 min - 16

Métodos de Referencia en Programación Funcional Java
04:46 min - 17

Inferencia de tipos en Java: funciones y métodos
03:53 min - 18

Uso de Expresiones Lambda en Java: Sintaxis y Aplicaciones
12:46 min - 19

Interfaz Funcional en Java: Creación y Uso de Métodos Default
04:59 min - 20

Encadenamiento de Llamadas en Programación Orientada a Objetos
03:52 min - 21

Composición de Funciones en Programación Funcional
06:06 min
Optional y Streams: Datos mas interesantes
- 22

Uso de la Clase Optional en Java para Manejo de Valores Nulos
12:59 min - 23

Manipulación de Streams en Java: Operaciones y Limitaciones
10:18 min - 24

Programación Funcional en Java: Uso de Streams y Operaciones Terminales
07:21 min - 25

Operaciones de Stream en Java: Intermedias y Finales
05:05 min - 26

Operaciones y Concurrente con Stream en Java
05:51 min - 27

Operaciones Terminales en Java Streams
06:18 min - 28

Operaciones Intermedias en Streams de Java
09:21 min - 29

Conversión de Strings a Listas de Enteros en Java
06:14 min
Todo junto: Proyecto Job-search
- 30

Construcción de Proyecto para Buscar Empleo Usando APIs
01:17 min - 31

Configuración y Uso de Gradle en Proyectos Java con IntelliJ
03:23 min - 32

Creación de una Herramienta de Búsqueda de Trabajo en Terminal
01:51 min - 33

Creación de Puntos de Entrada y Dependencias en Proyectos Java
Viendo ahora - 34

Creación de APIs RESTful con Feign y Spring Boot
09:30 min - 35

Creación de una Interfaz de Línea de Comandos con JCommander
13:05 min - 36

Validación de Argumentos en Terminal con Clases en Ciel
04:31 min - 37

Procesamiento de Argumentos y Solicitudes API en Java
11:38 min - 38

Creación de API para búsqueda de empleos con Java y CLI
08:31 min
Conclusiones
Creación de Puntos de Entrada y Dependencias en Proyectos Java
Resumen
Construir un proyecto en Java desde cero requiere definir con claridad por dónde arranca la aplicación y qué herramientas externas facilitarán el desarrollo. Aquí se explica paso a paso cómo crear el punto de entrada, configurar Gradle para ejecutarlo y agregar las tres librerías esenciales que permitirán recibir argumentos por terminal, hacer peticiones web y transformar datos JSON en objetos de Java.
¿Cómo crear el punto de entrada de un proyecto Java?
El punto de entrada es la clase que contiene el método main, es decir, el lugar exacto donde la aplicación comienza a ejecutarse. Para organizarlo correctamente, lo primero es crear un paquete que agrupe las clases del proyecto [0:12]. En este caso se utiliza la convención com.platzy.JobSearch.
Dentro de ese paquete se crea una nueva clase llamada JobSearch haciendo clic derecho, seleccionando New > Java class y escribiendo el nombre [0:29]. Una vez creada, se le agrega el método main usando un shortcut del IDE que genera la firma del método de forma automática [0:38].
java public class JobSearch { public static void main(String[] args) { System.out.println("Hello JobSearch"); } }
Para que Gradle sepa cuál es la clase principal, se abre el archivo build.gradle y se agrega el bloque application con la propiedad mainClassName apuntando a com.platzy.JobSearch.JobSearch [0:55]. Después, desde el panel de Gradle en el IDE, se ejecuta la tarea Application > run, que compila el proyecto, crea la instancia de la clase y ejecuta el método main automáticamente [1:17].
¿Qué librerías se necesitan y dónde encontrarlas?
En lugar de escribir todo desde cero, se aprovechan librerías que resuelven problemas comunes: parsear argumentos de terminal, realizar llamadas web y convertir formatos de datos [1:30]. El sitio MVN Repository es un recurso muy útil para buscar dependencias compatibles con Gradle; basta con buscar el nombre de la librería, elegir la versión y copiar la línea de dependencia [1:55].
¿Qué hace JCommander en un proyecto Java?
JCommander transforma los argumentos que se pasan por terminal en objetos de Java listos para ser manipulados [1:45]. En vez de recorrer manualmente el arreglo args, JCommander mapea cada parámetro a atributos de una clase, simplificando la validación y el acceso a los valores recibidos.
¿Cómo funcionan Feign Core y Feign GSON juntos?
Feign Core se encarga exclusivamente de realizar peticiones web [2:28]. Actúa como un cliente HTTP declarativo: se define una interfaz con las rutas de la API y Feign genera la implementación que ejecuta las llamadas a la API de GitHub.
El problema es que la respuesta llega en formato JSON. Ahí entra Feign GSON, una extensión que integra la popular librería de Google llamada GSON [2:55]. Esta combinación toma el JSON de respuesta, lo procesa y lo convierte en clases y objetos de Java que se pueden utilizar directamente en el código.
groovy dependencies { implementation 'com.beust:jcommander:<versión>' implementation 'io.github.openfeign:feign-core:<versión>' implementation 'io.github.openfeign:feign-gson:<versión>' }
¿Por qué es importante definir dependencias desde el inicio?
Agregar las dependencias al bloque dependencies del archivo build.gradle permite que el gestor de dependencias descargue, organice y ponga a disposición cada librería sin intervención manual [2:10]. Al importar los cambios sugeridos por IntelliJ, el proyecto queda listo para utilizar las tres herramientas:
- JCommander: convierte argumentos de terminal en objetos Java.
- Feign Core: ejecuta peticiones HTTP a APIs externas.
- Feign GSON: transforma respuestas JSON en objetos Java manipulables.
Con esta base configurada, el proyecto tiene un punto de arranque claro y las herramientas necesarias para enfocarse en la lógica de negocio. ¿Ya probaste ejecutar tu primer Hello JobSearch desde Gradle? Comparte tu experiencia o dudas en los comentarios.