Ja ha passat una altra setmana, i tornem a ser diumenge. Sé que sona a tòpic, però m’estan passant les setmanes molt ràpid. El mes de desembre està ple d’activitats cada cap de setmana, cosa que el fa força estressant. Aquesta setmana també he acabat d’escriure un article sobre el meu poble per a la revista La Llera del Ter. Se sumarà a un altre que vaig fer per a una entrevista amb la Cati Salazar, una pintora de Foixà. El número on es publicaran encara no ha sortit, però ja ho faré saber quan estigui disponible. Tot i estar lluny de ser una persona experta escrivint, gaudeixo de l’experiència de redactar sobre temes no tècnics. És diferent i em treu de la meva zona de confort.
A nivell professional, aquesta setmana he fet una reunió amb un possible nou client. És una empresa petita, però a la reunió hi havia el fill del propietari, que treballa a Red Hat. És de les poques vegades que he trobat algú amb capacitats tècniques que pot valorar realment la feina que fem. Malauradament, és cada cop més estrany trobar alts càrrecs amb un bon coneixement tecnològic, fins i tot en posicions que tradicionalment estarien vinculades a la part tècnica.
Començo amb algunes recomanacions,
💾 Programari
Screen-sharing: Una eina simple per compartir pantalla (fins i tot amb àudio), sense haver d’instal·lar res. Funciona directament des del navegador i el codi està disponible a GitHub.
🤔 Curiositats
Si ets fan de LEGO, aquest article analitza en profunditat les seves interfícies i tot el treball de disseny UX que les envolta. Una lectura fascinant per entendre com cuiden fins al més mínim detall.
📦 Recursos
Ja he comentat en altres números com m’apassiona PostgreSQL ❤️. Aquesta setmana he trobat un índex de referència molt complet per utilitzar PostgreSQL en gairebé qualsevol situació.
🌟 El concepte
La setmana passada vam parlar del principi O (Open/Closed) dins dels principis SOLID. Seguim la sèrie amb la "L", el principi de Liskov Substitution, que ens ajuda a mantenir un codi flexible i fàcil de mantenir.
De manera planera, el principi de substitució de Liskov diu que les subclasses han de ser substituïbles per la seva classe base sense trencar la funcionalitat del programa. Això garanteix que, si tens codi que utilitza una classe base genèrica (per exemple, "Pagament"), puguis substituir-la per qualsevol subclasse concreta (com "PagamentAmbTargeta" o "PagamentAmbDomiciliació") sense cap problema.
Exemple pràctic
Imagina que tens una classe base Pagament
amb un mètode processar()
que simula un procés genèric de pagament. A partir d'aquesta, crees dues subclasses: PagamentAmbTargeta
i PagamentAmbDomiciliació
.
PagamentAmbTargeta
implementa correctament el mètodeprocessar()
, validant la targeta i completant el pagament.Però
PagamentAmbDomiciliació
trenca el principi Liskov: no implementa el mètodeprocessar()
perquè requereix passos addicionals, com generar un fitxer SEPA per enviar al banc.
El problema? Si el teu sistema treballa amb una llista de "Pagaments", pot fallar quan es trobi amb un "PagamentAmbDomiciliació" perquè no compleix les expectatives establertes a la classe base.
Solució: Reorganitzar el disseny per separar clarament les funcionalitats. Podries tenir interfícies com PagamentImmediat
(per targeta, PayPal, etc.) i PagamentAmbFitxer
(per domiciliacions o altres operacions amb passos addicionals). Això assegura que les classes compleixen els contractes correctes sense trencar el comportament del sistema.
Potser aquest exemple està agafat una mica amb “pinces” però és fer-nos una idea simple.
Per què és important?
Quan es compleix el principi Liskov, el codi es torna més previsible i fàcil de mantenir. En el nostre exemple, qualsevol classe que implementi Pagament
funcionarà sense haver de canviar res al sistema, independentment del tipus de pagament.
La setmana que ve continuarem parlant dels principis SOLID. Aquesta vegada toca la "I", on explicarem com evitar interfícies massa grans i dependències innecessàries.
💖 Feedback
Si t’ha agradat i em vols ajudar, fes arribar aquest contingut a qui creguis que li pot interessar, i entra al canal de Telegram per comentar la publicació.