Java

Tests end-to-end con Selenium Webdriver

Open source on Github

Vale, vale: no he llegado a tiempo para publicaros el post sobre escalabilidad en el que estoy trabajando pero calma porque no os voy a dejar sin turrón: republico un screencast que monté justo antes de empezar programar.cloud sobre test end-to-end con Selenium. He vuelto a verlo y todo lo explicado en él sigue estando vigente. Además quedó bastante entretenido, sobre todo si lo pones a x1.25. Siempre soy más divertido a x1.25.

Recordad que los podcasters y bloggers nos alimentamos de likes y retuits así que sed buenos y dadle a los botoncitos que aparecen en la izquierda para que el mayor número de gente posible conozca el proyecto.

Cómo implementar HATEOAS en tus APIs

Multiversos enlazados

TL;DR: Los hiperenlaces tienen un papel tan importante en las APIs como en las pantallas para humanos y sin embargo casi nunca se implementan correctamente. Te cuento cómo solucionar este problema.

RSS para podcatcher

alojado en archive.org

Open source on Github

HATEAOS es un término inglés que traducido significa “Estoy desesperado buscando un acrónimo con gancho y no lo consigo encontrar”. Pero detrás esta palabra encontrarás lo que durante veinte años ha sido el core de la web: el hipertexto, los enlaces.

Cómo documentar un microservicio (SpringRESTdocs)

Documentación electrónica

TL;DR: Genera documentación de forma casi automática, minimizando el repeat yourself casi a cero y estructurándola de forma que tenga sentido y coherencia. ¡Ah! Y llénala de ejemplos, maldita sea. Con Spring REST docs.

RSS para podcatcher

alojado en archive.org

Cómo documentar un microservicio (incluyendo Swagger)

Papiro de Ani

TL;DR: Nos pagan por entregar valor. Invertir tiempo en crear documentos que nadie va a leer no tiene sentido pero publicar un API sin explicar cómo funciona es aún peor. Te cuento cómo encontrar el equilibrio entre ambos extremos y te explico por qué NO usarás Swagger (a medio plazo).

RSS para podcatcher

alojado en archive.org

Notas sobre el protocolo HTTP

TL:DR; Tim Berners-Lee es un grande. Un POST permite al servidor elegir la URI del nuevo recurso y un PUT la explicita completamente. GET es idempotente y TRACE no sirve para nada.

Me habéis comentado que el capítulo sobre cómo crear un API REST es duro de seguir si no has jugado antes mínimamente con HTTP así que he montado esta precuela en vídeo.

Tests de integración

traffic light tree

TL;DR: Es imposible mantener la calidad del producto si los errores no se detectan inmediatamente. Una de las herramientas más potentes que tienes son los tests.

RSS para podcatcher

alojado en archive.org

Voy a decirte por primera vez algo: no, no, en realidad llevo dándote la paliza con lo mismo desde el primer post y es que el código tiene que estar en producción para que aporte valor. Y el problema principal que te vas a encontrar si en lugar de una release al mes haces cuatro (o diez, o cien) es que tienes cuatro, diez o cien veces más oportunidades de liarla. Cualquier error que hayas introducido en tu código potencialmente puede terminar impactando al usuario mucho antes y provocar un retraso en cascada de nuevos despliegues. Voy a explicarte cómo evitar esta situación y de paso también te contaré algunas cosas sobre las lechugas.

Cómo crear una API REST

un banco en el parque

TL:DR; Diseña un API de la misma manera que diseñas una pantalla: pensando en la comodidad de quien la va a utilizar, no en tu conveniencia.

RSS para podcatcher

alojado en archive.org

Vamos a ponernos el gorrito de un miembro del equipo, en concreto la persona que se haya asignado la tarea de implementar la historia de usuario PROGRESO_CURSOS. ¿La recuerdas del post anterior ? Decía algo así:

  • Como administrador de cursos deseo poder obtener una visualización global de la utilización de cada curso y unidad didáctica para conocer su popularidad y actuar en consecuencia.*

Bien, manos a la obra: tendremos que detectar los recursos a manipular, definir unas rutas HTTP claras para invocar operaciones sobre ellos y generar la respuesta deseada. No problem. O sí.

Arquitectura del primer proyecto

Dos cabras escocesas

TL:DR; Se aprende haciendo: aquí tienes la descripción de un pequeño (pero realista) proyecto.

RSS para podcatcher

alojado en archive.org

¿Qué vamos a hacer?

Primero voy a ponerme distintos gorritos para ir presentándote un proyecto. Lógicamente es una caricatura (espero que seas indulgente con los detalles) pero tendrá la suficiente complejidad como para que vayamos practicando los patrones de los que quiero hablar.

Programación distribuída con RMI

En este vídeo te cuento cómo puedes crear aplicaciones java distribuídas usando Remote Method Invocation para ello. Aunque esta tecnología ya no es popular creo es interesante que tengas al menos nociones sobre este tipo de arquitectura para poder comprarla con el modelo actual de microservicios conectados por APIs REST. ¡Disfruta!