Setmana d’arrencada amb un nou client. Nosaltres tenim una manera diferent de fer aquestes arrencades que potser no és la més habitual. No som de fer grans sessions de formació prèvia sobre el nostre programari, perquè el que hem vist és que sovint acaben sent hores que es podrien aprofitar millor.
El que fem és que, la setmana que es comença a fer servir el sistema, una colla d’intrèpids guerrers s’hi llencen i comencen a treballar directament en el dia a dia real, amb suport al costat. I funciona molt bé, per diversos motius: primer, perquè quan vols aprendre alguna cosa de veritat, ho has de fer treballant de veritat. I segon, perquè es creen vincles de confiança molt més forts amb les persones que operaran el sistema.
També he començat a revisar algunes sol·licituds d’estudiants en pràctiques per a la nostra oficina. No sé si ja ho havia dit abans, però la filosofia que seguim és fer cantera i anar pujant 💪.
Començo amb algunes recomanacions,
💾 Programari
Blooft: Una extensió per al navegador (Chrome, Firefox, Vivaldi) que permet personalitzar les pestanyes noves.
🤔 Curiositats
Buscamines multijugador: A qui no li agrada el Buscamines? Doncs aquest és multijugador… Encara no he trobat mai ningú més jugant-hi 😢, però ho he provat amb una altra persona i realment funciona!
📦 Recursos
Un article on s’expliquen diversos elements natius d’HTML que existeixen i que sovint s’obliden, però que permeten evitar haver de recórrer a frameworks o llibreries externes per funcionalitats molt bàsiques.
🌟 El concepte
Avui vull parlar-te de la idempotència, un concepte molt important quan es dissenyen sistemes robustos, especialment quan hi ha processos automatitzats o treballs que poden reintentar-se de forma repetida.
Una operació és idempotent quan la pots executar tantes vegades com vulguis i el resultat final sempre serà el mateix. Si ja s'ha aplicat un canvi, tornar-lo a aplicar no fa res, o fa exactament el mateix sense efectes adversos.
Un exemple simple seria un interruptor de llum: si el llum ja està apagat i tornes a fer l’acció “apagar”, no canvia res. Aquesta acció seria idempotent.
A GISCE-TI, apliquem aquest concepte de forma molt clara als scripts de migració de sistema. Quan despleguem noves versions, aquests scripts s’executen automàticament. Però com que no sempre sabem si s’han aplicat parcialment en una execució anterior (potser un desplegament interromput), han d’estar dissenyats per ser idempotents. Així poden executar-se diverses vegades, comprovar en quin punt estan i aplicar només els canvis pendents.
Un altre cas molt habitual, que just lligaria amb el que vam comentar la setmana passada sobre escalabilitat i workers, és quan dissenyem les tasques que executen aquests workers asíncrons. Quan tens desenes o centenars de workers processant missatges d'una cua, pot ser que alguna tasca es torni a processar (per errors, reintents, duplicats…). Si la tasca està dissenyada de forma idempotent, el worker pot tornar-la a executar sense generar incoherències o errors. Si no, pots acabar aplicant canvis duplicats, cobrant dues vegades, o deixant el sistema en un estat inconsistent.
💖 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ó.