¡En breves empezaremos con nuestro Black Friday! 🥳
Ademáaaaas, este año vamos a incluir más novedades.
¡Apúntate a la waitlist para que te avisemos de ello!
codely.com/blackfriday?...
@codelytv.bsky.social
Sube de nivel. Haz código más mantenible, escalabe y testable 🤟 | Codely enseña y entretiene 😊 | https://beacons.ai/codelytv
¡En breves empezaremos con nuestro Black Friday! 🥳
Ademáaaaas, este año vamos a incluir más novedades.
¡Apúntate a la waitlist para que te avisemos de ello!
codely.com/blackfriday?...
En la auditoría nos encargamos de revisarlas, ver con qué nos quedamos y que descartaríamos (como por ejemplo, GraphQL). codely.com/cursos/audit...
06.11.2025 09:52 — 👍 0 🔁 0 💬 0 📌 0
- ¿Cuál es la mejor forma de irnos del legacy para poder ganar velocidad?
- ¿Tiene sentido programar nuevas funcionalidades allí?
- ¿Cómo hacemos para que ese código interaccione bien con la IA?
Por todas esas dudas, hicieron 2 propuestas de refactor para poder acabar saliendo del monolito.
¡Acabamos de publicar la auditoría a Green Slope en Codely Pro Standard!
Es una auditoría a la que le estamos cogiendo mucho cariño porque es muy a macro diseño.
Ya 100% publicada esta sesión de auditoría de Arquitectura de Software. codely.com/cursos/audit...
30.10.2025 09:44 — 👍 0 🔁 0 💬 0 📌 0En cambio, si es una buena base, el porcentaje de acierto aumenta mucho.
Por ello desde Green Slope quieren hacer un refactor de la base de su código para que sea escalable.
Para ello nos pidieron que auditáramos su plan de proceso de refactor, y eso hicimos, además de proponerles el nuestro.
Tener una buena base de código ya no es un nice to have si quieres que el código pueda escalar.
Los agentes, al igual que los humanos, son muy buenos repitiendo patrones existentes.
Si la base de tu código no es sólida, el código que se le seguirá añadiendo es probable que tampoco lo sea.
Una auditoría diferente a las otras, más centrado en cómo hacer este proceso de refactoring y hacer que sea un éxito.
Esperamos que te guste tanto como a nosotros prepararla. 😊
codely.com/cursos/audit...
Acabamos de publicar la primera parte de su auditoría, donde analizamos a macro diseño cómo poder modernizar una aplicación:
- Compartiendo su código
- Analizando (y descartando) alternativas como GraphQL
- Pasito a pasito
Eso les está pasando a Green Slope, una empresa que gestiona torneos de Golf. Por ello han creado 2 planes de refactoring, para poder salir de ese legacy.
Y nos han pedido que se los auditemos. Y eso hemos hecho.
La Arquitectura de Software es más importante ahora mismo que nunca.
Es lo que asegura que nuestro código pueda escalar.
Un código con una mala base, hace que entregar nuevas funcionalidades sea más complicado.
¡Acabamos de publicar el curso en el plan Standard! 🥳
Aprende a ponerlo en producción:
- Utilizando buenas prácticas.
- Evitando errores comunes.
- Con ejemplo reales.
→ codely.com/cursos/spark...
→ codely.com/cursos/embed...
Donde pasito a pasito dominamos la bd.
Esto hace que añadir funcionalidades que tengan que ver con la IA sea mucho más rápido y sencillo.
Si quieres aprender cómo hacer estas combinaciones y delegar esta generación a la base de datos, acabamos de publicar al 100% el curso de Embeddings automáticos en Postgres.
Por estos motivos, si tenemos que escoger una base de datos generalista a día de hoy, nos quedamos con Postgres.
Además, si combinas peticiones http, con crones y sistema de colas, puedes delegar en la base de datos la generación de embeddings.
Todo de forma nativa a la base de datos (todo funciona mediante tablas que se crea en su propio esquema).
¡Hasta tiene sistema de retries!
Además, con otras extensiones puede ser una base de datos timeseries, de grafos, geoespacial (con PostGIS, muy utilizado en la industria).
✔︎ Ser un sistema de colas MQ
SQS, RabbitMQ… están muy bien, pero si no tenemos experiencia con ellos y nos queremos meter en el mundo de los sistemas de colas de mensajería, con pgmq podemos tenerlo dentro del propio Postgres.
✔︎ Tener un sistema de CRON
Gracias a pg_cron, puedes configurar que cada X tiempo se ejecute una función.
Si lo combinas con la capacidad de HTTP, puedes simplificar mucho tu stack.
✔︎ Hacer peticiones HTTP
Con extensiones como pgsql-http (síncrono) o pg_net (asíncrono) es capaz de hacer llamadas a otros servidores.
Hasta aquí podríamos entender que es una base de datos vitaminadas, pero es que es mucho más que eso.
Y lo es gracias a las extensiones y a la comunidad que tiene.
Con extensiones (algunas creadas por grandes empresas como Timescale o Supabase), Postgres también es capaz de:
Por qué, seguramente, PostgreSQL es la mejor base de datos generalista.
Postgres, por defecto, es una base de datos SQL, pero también puedes utilizarla como NoSQL (tiene soporte nativo para json), como una clave valor, como un motor de búsqueda fulltext…
En azul los países donde los pendrives y discos duros vienen con canon digital “por si pirateas”.
18.08.2025 14:56 — 👍 6 🔁 3 💬 1 📌 0
Si quieres saber cómo llevar toda esa lógica a Postgres, acabamos de publicar en Codely Pro Standard el curso de Embeddings automáticos en Postgres. 😊
- Comparamos diferentes formas de generarlos
- Trigger vs colas mq vs eventos de dominio
- De la forma más escalable
→ codely.com/cursos/embed...
Conclusión
No siempre es clara la línea entre qué es dominio y qué infraestructura, pero conocer al 100% las herramientas que utilizamos nos puede ayudar a saber donde poner cada cosa.
Una con la que sí que se puede es con Postgres, ya que permite hacer llamadas HTTP con sus triggers + tiene sistema de colas para poder hacerlo más escalable.
Depende el caso, una irá mejor que otra.
Nuestra recomendación: Si puede ser, que sea asíncrono, intentando ensuciar el dominio lo menos posible.
Una de las formas de conseguir eso, es delegarlo todo a la base de datos. Ojo aquí que no se puede hacer con todas las bases de datos.
- ¿Tiene que saber nuestro dominio del concepto de embeddings? ¿Nuestra entidad ha de tener ese campo?
- ¿Se genera en el insert o de forma asíncrona?
- ¿No es cómo un índice y se puede delegar todo en base de datos?
Aquí hay muchas decisiones que tomar. Algunas mejores que otras. Ninguna perfecta.
Para generar este embedding, hemos de hacer una llamada a un LLM de generación de éstos.
Entonces, fácil, ¿no? Creamos una interfaz en dominio para la generación de embedding y luego en infraestructura la implementación.
Ojalá el debate se acabara allí.
Resumidamente: Transformar unos datos para luego poder buscar por ellos de forma semántica.
En lugar de hacer:
`SELECT * FROM products WHERE color = 'red' and price < 100;`
Se podría hacer `SELECT * FROM products WHERE embeddings <=> 'de color rojo y menos de 100 € de precio'`.