Las 4 Reglas para un Diseño Simple agrupan conceptos para tener un código de mayor calidad.
La idea viene de Kent Beck mientras estaba desarrollando el concepto de eXtreme Programming.
Las 4 reglas, por orden de importancia, son:
1: Pasan los tests
Los tests son ciudadanos de primer nivel. Todo lo que desarrollemos ha de funcionar, y la forma que tenemos para hacerlo es cubriendo nuestro código de tests.
2: El código revela la intención
El código ha de ser fácil de entender, esto hará que también lo sea de mantener. El acercamiento de organizar nuestro código utilizando Vertical Slicing puede ayudar mucho en esto.
3: No hay duplicidad
Esta puede ser una de las que cause problemas. Al intentar seguir esta regla al 100% podemos acabar con abstracciones prematuras que compliquen el código, y que por lo tanto, contradiga la regla número 2.
Para evitar eso, podemos aplicar la "Rule of Three". Hasta que no veamos el mismo código repetido en 3 sitios no nos planteemos sacar una abstracción.
4: Tener los mínimos elementos posibles
Cualquier código que no cumpla las 3 reglas anteriores debería de ser eliminado. Una arquitectura simple es mucho más mantenible que una compleja.
Estos son principios que va muy bien conocer, que existen desde hace más de 30 años, pero no hemos de obsesionarnos con ello.
Y siempre hay contextos donde es sencillo aplicarlos (greenfield) y otros donde puede costar mucho (legacy).
I wanted to let you all know about an article I just wrote for Adevinta's Tech Blog. In the article, I explain how we at @AdevintaSpain managed to share data between different environments in our Lakehouse and Data Warehouse.
https://t.co/QiF9tdgsHV
🙊 ¡SORTEO! 1 entrada al evento DevBcn totalmente GRATIS 🤯
Para participar:
🔁 Haz RT
🙋 Sigue a @CodelyTV y a @dev_bcn
⏱️ Hasta cuándo: Viernes ~9h CEST
💸 Qué: 1 entrada al evento DevBcn (valorada en 450€)
Los porqués son más importantes en arquitectura que los cómos, por eso hice escribi esto sobre arquitectura hexagonal hace algún tiempo.
https://t.co/oz6VspIVms
Avui 13/4/23, és un dia trist, ja que és el meu darrer dia a @DrinkscoEng @uvinum Bé, el meu i de 21 companys més que som els primers als quals la empresa extingeix el contracte com a conseqüència d' ERE que afecta la totalitat de la plantilla. D'avui fins al juny s'aniran 1/11
Pues hoy es mi último día en Openbank, y mi último día como Manager/TechLead o lo que sea que fuese (¡vuelvo al barro del código!).
He escrito algunas cosas al respecto sobre cómo ha sido mi etapa con más gestión.
https://t.co/NIR3Z9kSbp
¿Has estado alguna vez en alguna reunión y visto a alguien que, durante la reunión, se dedica a mirar su móvil u ordenador, responder a mensajes o está constantemente mirando su reloj? 👇
There is one great lesson in TDD (Test Driven Development) that is often overlooked. 💪
And this is also why Leadership simply demanding a specific Coverage goal is wrong. 🤦
🧵 👇
“Leadership is solving problems. The day soldiers stop bringing you their problems is the day you have stopped leading them. They have either lost confidence that you can help or concluded you do not care. Either case is a failure of leadership.”
Colin Powell
Time batching has little to nothing to do with Agile (or Scrum). Even Scrum's Sprint is a review cadence, not a deployment cadence. Ideally, you'd be releasing at least every day so you can get feedback. 1/4
How do you make good decisions?
1. Think before you act.
2. Understand the true objective.
3. Defer everything not tied to that.
4. Believe no marketing promises.
5. Consult with your elders.
6. Correct mistakes before they fester.
7. …
The machines are already writing the code. Those machines are called compilers.
We, programmers, simply specify the solution in sufficient detail so that the machines can write the code.
Specifying the solution in sufficient detail will _always_ be a human endeavor.