Aquesta setmana hem fet una trobada de Python Girona. Com que al final no vam poder aconseguir el ponent per aquest dia, vam decidir tirar-ho endavant igualment amb un format diferent. Vam organitzar lightning talks, OpenSpace i networking, tot compartint unes pizzes mentre explicàvem què fem i quins maldecaps tenim. Va ser una trobada molt enriquidora!
He avançat en el projecte d’apilats: ja tinc una primera versió del crawler, que ha començat a recórrer els continguts. Tot i això, vull esperar a tenir més dades abans de publicar-lo. He creat una nova newsletter, Apilats, on la idea és que cada setmana es publiquin automàticament els nous substacks en català que vagi trobant. Quan estigui en ple funcionament, obriré el codi, i si algú vol col·laborar, estaré encantat!
Començo amb algunes recomanacions,
💾 Programari
Git-crypt: Una eina que permet compartir repositoris git amb dades sensibles, protegint-les de persones que no haurien de tenir accés, fins i tot si tenen el repositori.
🤔 Curiositats
ssh-artwork: Una utilitat sense cap funcionalitat pràctica, però molt curiosa. Permet generar fingerprints SSH amb l’artwork que tu vulguis. Per als amants de les excentricitats tecnològiques!
📦 Recursos
El desembre no només comencen els calendaris d’advent pels més petits, sinó també pels qui ens agrada pensar, solucionar problemes i programar. Aquest any tenim dues propostes molt interessants:
Advent of Code: El mític calendari d’advent que des del 2015 ens porta un repte diari per resoldre i així construir el trencaclosques final. És ideal per posar a prova les teves habilitats de programació.
Debug December 🆕: Una novetat d’aquest any creada per la gent de Sentry. Cada dia hi ha un problema on cal resoldre un bug, ajudant el Yeti a arribar a casa seva. Una manera divertida de practicar debugging!
🌟 El concepte
Avui començo una sèrie d'articles sobre els principis SOLID, una guia fonamental per dissenyar programari robust, mantenible i escalable. SOLID és un conjunt de cinc principis introduïts per Robert C. Martin (Uncle Bob) que ens ajuden a evitar el famós "codi espagueti" i a estructurar millor els nostres projectes.
Va ser a la PyConES 2013 a Madrid, durant una ponència de l’Eduardo Ferro, on vaig descobrir aquests conceptes per primer cop. Et recomano donar una ullada a la seva conferència per aprofundir en els detalls d’aquella introducció: Conferència PyConES'13.
Comencem amb la "S": Single Responsibility Principle. Aquest principi diu que cada classe o mòdul ha de tenir una única responsabilitat o motiu de canvi. És a dir, cada peça del nostre sistema hauria d'estar enfocada a fer només una cosa, i fer-la bé.
Exemple pràctic
Imagina un sistema que gestiona els empleats d’una empresa. Tens una classe Employee
amb tres mètodes principals: calculate_salary()
, generate_report()
, i save_to_database()
. A simple vista pot semblar pràctic tenir-ho tot en una sola classe, però estàs barrejant responsabilitats molt diferents:
Càlcul de sous: Lògica específica sobre el salari.
Generació d'informes: Presentació de dades en un format específic.
Persistència a la base de dades: Interacció amb el sistema d'emmagatzematge.
Si qualsevol d’aquestes parts necessita un canvi, afecta la classe sencera, fent el codi més difícil de mantenir i testear.
Aplicant el principi:
Podem dividir aquesta classe en tres responsabilitats separades:
Una classe
Employee
, que només conté informació bàsica de l’empleat.Una classe
SalaryCalculator
, encarregada de calcular el sou.Una classe
EmployeeRepository
, responsable de guardar i recuperar dades de la base de dades.
Això crea un sistema modular on cada classe fa una única funció, i qualsevol canvi futur només afectarà la part que ho necessita, sense risc de trencar altres funcionalitats.
Al pròxim número parlaré de la "O", Open/Closed Principle. No te’l perdis! 😊
💖 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ó.