المشاركات

Midiendo el rendimiento de rutinas

صورة
Estos días me ha tocado revisar código hecho por otros, y encontré un par de rutinas que me parecieron interesantes para revisar. Estas las publiqué en la cuenta de twitter: #CodeReviewChallenge A ver, cómo optimizarían este código (que encontré)? pic.twitter.com/PUWZy0erpG — ☕ Apuntes de Java ☕ 😷🏠 (@apuntesdejava) April 6, 2020 #CodeReviewChallenge #QuedateEnCasa #StayHome ¿Cómo simplificarían el contenido de este método? (sin usar bibliotecas adicionales) pic.twitter.com/rfRn8Qb2Ga — ☕ Apuntes de Java ☕ 😷🏠 (@apuntesdejava) April 7, 2020 He recibido respuestas interesantes. Lo que publicaré en este post y en un vídeo es ver cuál es la rutina más rápida, en base a sus respuestas.

Liferay 7.2. Service Layer + Portlet. Un CRUD básico

صورة
En este post conoceremos cómo implementar un CRUD muy básico, pero consiste en unir el Service layer con el Portlet. Aquí ya unimos las piezas que forman el MVC en Liferay.

Liferay 7.2. Service Layer - Consultas personalizadas

صورة
Hasta el momento hemos creado consultas simples, como listar todos los registros con un campo u otro campo iguales. Pero necesitamos que nuestros registros puedan ser leídos con cualquier combinación de los cambios. El Service Layer nos cubre grandes funcionalidades con las características básicas del CRUD. Además, podemos agregar otros tipos de consultas. Estos tipos de consulta se llama DynamicQuery , y es lo que veremos en este post.

Presentando MP Lemon Builder

صورة
Aquí les presento la primera versión de mi aplicación MP Lemon Builder . ¿En qué consiste? Es un generador de proyectos MP (MicroProfile), y en esta primera versión permite crear una aplicación asegurada con JWT. La autenticación utilizará el realm del servidor (en esta primera versión utiliza a Payara) y la validación de los roles lo hará utilizando el estándar de JakartaEE. Aquí muestro un vídeo de cómo funciona. Fuentes Esta aplicación está basada en dos proyectos: La publicación de Victor Orozco: A simple MicroProfile JWT token provider with Payara realms and JAX-RS JWT dispenser de Adam Bien . ¿Por qué "Lemon"? Porque me gustan las frutas, y el limón es una de mis preferidas.

Cliente Standalone de JAX-RS (o cualquier endpoint RESTful)

صورة
Si tenemos una aplicación standalone (puede ser un JavaFX, de línea de comandos, batch, etc) que necesite consumir un endpoint hecho en RESTful, por lo general usaríamos algo como esto: public class RestClient { private static final String REST_URI = "http://localhost:8082/spring-jersey/resources/employees"; private Client client = ClientBuilder.newClient(); public Employee getJsonEmployee(int id) { return client .target(REST_URI) .path(String.valueOf(id)) .request(MediaType.APPLICATION_JSON) .get(Employee.class); } //... } (Tomado de https://www.baeldung.com/jersey-jax-rs-client ) Lo cual no está mal, pero creo que debería ser lo más transparente posible. ¿Cómo es eso? Si ven en la línea 13 del código anterior, significa que hay que decirle que haga un GET a la petición, además de pasarle el tipo de respuesta y otras cosas más. La cuestión se volvería algo compleja si queremos hace...

Otro tutorial de Java: Sesión 3 - Tipos de variables y cómo nombrarlas

صورة
Las variables, cuáles son sus tipos, y cómo se deberían declarar.

Otro tutorial de Java: Sesión 2 - Teoría OOP y aplicación en Java

صورة
Comenzaremos un poco con la teoría de Objetos, y veremos cómo se aplica en Java.