@andrebernal26@LMMBA Llamar al 911 es pasar el tiempo y no dan soluciones y las autoridades locales como municipio Policía y aunque hay militares por lo general no hacen nada de nada, ahora el pueblo parece un pueblo fantasma, todo cerrado
If you are a backend engineer, you have to understand SOLID principle without any exception. I have received multiple dms asking me to explain it in an understandable way. So here we go. Save this, you'll thank me later.
SOLID is a set of five design principles that help developers create software that is easy to maintain, understand, and extend. Think of this like rules for building with lego bricks, and shouldn't fall apart when you add a new piece.
��S - Single Responsibility Principle
A class should have only one job or one reason to change.
How I remember: A screwdriver is designed to drive screws. It's not also a hammer and a saw. If you make it do too many things, it becomes complex and hard to use properly.
→O - Open/Closed Principle
Software should be open for extension, but closed for modification. Means one should be able to add new features without changing the existing, tested code.
How I remember: Your phone is "closed" because you can't change its core operating system. But it's "open" cause one can extend its functionality by installing new apps from the Play/App Store without breaking the phone.
→L - Liskov Substitution Principle
If you have a class A, any class B that inherits from A should be able to replace A without causing any errors. In short, child classes should be perfectly substitutable for their parent classes.
How I remember: If you have a universal remote control designed for a "TV," it should work whether you're pointing it at a Samsung TV or an LG TV. You can substitute one type of TV for another, and the remote still works as expected
→I - Interface Segregation Principle
Clients should not be forced to depend on interfaces or methods they do not use. It's better to have many small, specific interfaces than one large, general-purpose one.
How I remember: When you go to a restaurant, you don't get one giant menu with every food item in the world. You get a breakfast menu, a lunch menu, or a dessert menu. You only see what's relevant to you at that moment
→D - Dependency Inversion Principle
High-level modules (your main business logic) should not depend on low-level modules (like a specific database or a payment gateway). Both should depend on abstractions (like a generic Database interface).
How I remember: You don't wire a lamp directly into your house's electrical system. Instead, the lamp has a standard plug, and your wall has a standard socket. The plug and socket (the abstraction) allow you to switch out the lamp for any other appliance without rewiring your house.
Solo los "tech influencers" que nunca han trabajado como programadores dicen que van a programar a la playa o en una cafetería...
Los verdaderos devs como yo, programamos cerca del cloud!
JavaOne 2025 was such a hit that we just have to run it back. 😎
Save the date for our next #JavaOne event, coming to you March 17-19, 2026! https://t.co/YxsZFaLTm4
Different Ways to Structure a REST API
1) Pure CRUD Style
GET /users
POST /users
PUT /users/{id}
DELETE /users/{id}
👍 Simple, predictable
👎 Can get messy for non-CRUD actions
2) Action-Based Endpoints
POST /users/{id}/deactivate
POST /orders/{id}/cancel
👍 Clear intent for side effects
👎 Breaks REST purity (verbs in URLs)
3) Nested Resources
GET /users/{id}/orders
POST /users/{id}/addresses
👍 Good for modeling relationships
👎 Can become deeply nested and hard to manage
4) Flat with Filters
GET /orders?userId=123
GET /products?category=books&page=2
👍 Flexible querying
👎 Needs strong validation on query params
5) Versioned APIs
GET /v1/users
Accept: application/vnd.myapp.v2+json
👍 Safe evolution
👎 Extra overhead in maintenance
🌎 45 Countries represented
☕ 900 Cups of specialty coffee served
🏎️ 300 Oracle Red Bull Racing Simulator laps
📸 20,600 Stickers
Thank you to everyone who attended #JavaOne 2025 and helped make it a HUGE success! Until next time. ✌️