Programació defensiva: lliçons d'un vàter i el flag isProcessing
Descobreix com la programació defensiva i l'ús de flags en JavaScript poden protegir la integritat de les teves aplicacions, basant-se en la lògica del món real.

La lògica darrere d'una interfície robusta
Què tenen en comú el panell de control d'un vàter al Japó i una variable d'estat en JavaScript? Encara que sembli una comparació inusual, ambdós sistemes resolen el mateix problema fonamental: la gestió de la incertesa. Com a desenvolupador en formació i conductor de camions, he après que el disseny de programari eficaç sovint es basa en principis de programació que ja existeixen en la nostra vida quotidiana.
En desenvolupar la meva aplicació DPT (Driver Personality Test), vaig notar que si un usuari premia ràpidament els botons de resposta, l'aplicació avançava de forma erràtica. Per evitar això, vaig implementar un simple flag anomenat isProcessing.
El poder de la programació defensiva
La implementació és senzilla però vital. En establir isProcessing = true a l'inici d'un esdeveniment i tornar-lo false en finalitzar, bloquegem qualsevol entrada addicional durant el procés. Això no només evita registres duplicats, sinó que assegura que la interfície no es trenqui sota estrès. És l'equivalent digital a la llum parpellejant d'un vàter que, en activar-se, ens indica que el sistema està ocupat i no acceptarà més pulsacions.
"No assumeixis que l'usuari es comportarà de forma perfecta. Dissenya per a la possibilitat que passi allò inesperat".
De les carreteres al codi
Com a conductor professional, aplico aquesta mateixa filosofia a la carretera. La distància de seguretat que mantinc amb altres vehicles és, en essència, un buffer de seguretat per reaccionar davant d'esdeveniments impredictibles. En el desenvolupament de programari, la programació defensiva fa el mateix: crea un marge de maniobra davant d'errors de xarxa, pulsacions múltiples o fallades en l'API. Si t'interessa aprofundir en com l'arquitectura moderna ajuda a gestionar aquests fluxos complexos, pots consultar la nostra guia sobre el Desarrollo de Agentes de IA con el nuevo Go ADK: Guía 2026.
Millors pràctiques: més enllà del flag booleà
Encara que un booleà és suficient per a tasques petites, els projectes de major escala requereixen un enfocament més estructurat. Aquí tens alguns consells per millorar el teu codi:
- Fes servir
try...finally: Assegura't que l'estatisProcessingtorni afalsefins i tot si ocorre un error, evitant que la interfície quedi bloquejada permanentment. - Modelatge d'estats: En lloc de simples flags, considera un objecte d'estats (
IDLE,SAVING,ERROR) per tenir un control total sobre el cicle de vida de l'aplicació. - Feedback visual: Com vaig aprendre amb les animacions ripple, una resposta visual clara redueix l'ansietat de l'usuari i evita que aquest premi el botó repetidament per pura incertesa.
Conclusió
L'excel·lència en el desenvolupament no només resideix a escriure codi elegant, sinó a anticipar com el món real —amb els seus usuaris impacients i connexions inestables— interactuarà amb la teva creació. Igual que el manteniment d'un camió o l'ús d'un panell de control, el programari ha de ser resilient per disseny. La propera vegada que t'enfrontis a un problema d'interfície, pregunta't: quina llum parpellejant o quin flag necessito per protegir el meu sistema?
Font original: Dev.to
Articles relacionats
27 de julio de 2026
Defensive programming: Lessons from a toilet and the isProcessing flag
Discover how defensive programming and the use of flags in JavaScript can protect the integrity of your applications, based on real-world logic.
27 de julio de 2026
Programación defensiva: lecciones de un inodoro y el flag isProcessing
Descubre cómo la programación defensiva y el uso de flags en JavaScript pueden proteger la integridad de tus aplicaciones, basándose en la lógica del mundo real
26 de julio de 2026
Desenvolupament d'Agents d'IA amb el nou Go ADK: Guia 2026
Explorem les actualitzacions clau del Go Agent Development Kit (ADK) v1.5.1, optimitzant la creació i desplegament d'agents intel·ligents al núvol.
26 de julio de 2026
Developing AI Agents with the new Go ADK: 2026 Guide
We explore the key updates in the Go Agent Development Kit (ADK) v1.5.1, optimizing the creation and deployment of intelligent agents in the cloud.
Carregant comentaris...