El Blog de Trespams

Blog personal sobre tecnologia, gestió de projectes i coses que se me passen pel cap

Sobre l'edat, la depuració del codi i SOA

Aquesta setmana he trobat un grapat d'apunts molt interessants al Planet de Python, el primer és Programming is not the right thing to do i TDD Anti-Patterns.

El primer article és un comentari a Programmers: Before you turn 40, get a plan B, on tracta la suposada obsolescència dels programadors a partir dels 40 anys.

El segon és una classificació dels principals errors que un pot trobar-se quan programa fent servir la metodologia coneguda com a Test Driven Development.

Del primer, potser perquè ja estic passant els 40 m'afecta és personalment. És cert que la meva feina diària és més de gestor que de programador, i que fins i tot he procurat cercar-me un pla B, però crec que el que diferencia un bon programador i algú que programa com a feina no és l'edat, sinó la curiositat i les ganes d'aprendre. Potser amb l'edat la nostra capacitat d'aprendre coses noves empitjora i ens feim més lents, però és ben cert que millora la nostra capacitat de relacionar experiència i coneixements, ja que els tenim.

El que sí diria és que ens tornam més sibarites. Personalment m'atrau més fer feina amb tecnologia que m'agradi i amb projectes interessants que amb altres feines, potser millor pagades, però menys satisfactòries. Supòs que és perquè m'agrada la feina que he triat com a mitjà de vida, i em deprimiria (em deprimeix de fet a vegades) veure-la convertida en un simple mitjà per posar un plat calent a taula.

El segon article a més del que té de millors pràctiques, m'admira per la facilitat que tenen els anglosaxons per posar noms a les coses. L'objecte Good, El mentider, l'heroi local. Noms graciosos però que resumeixen el que es vol dir o que senzillament ajuden a pensar més en el que es fa.

D'aquest article vaig anar a parar a una utilitat, el pudb que desenvolupa un depurador en mode text per a Python. No tant potent como el ipdb o el pdb, però que té un entorn gràfic més agradós.

La depuració i el testeig per mi no són disciplines menors. Ens passan gran part del temps depurant i testejant, i potser un dels avantatges de tenir els quaranta és que ja intueixes moltes vegades on és el problema, fent bona la dita de que sap més el dimoni per vell que per dimoni. De totes menares quan m'he d'enfrontar amb una sessió de depuració procur anar-hi amb una certa metodologia:

Suposar que la culpa és al codi. Pareix una tonteria, però suposar això implica començar a cercar primier pel més obvi, per alguna cosa que hem trencat. Si no ho feim així fàcilment podem caure amb el que McConnell a "Code Complete" anomena Debugging by Superstition (veis un altre nom interessant), per explicar el comportament de certs programadors que cerquen defectes misteriosos pensant que el compilador, l'editor, el sistema operatiu, el món, ... està contra ells.

Formular una hipòtesi. És en la depuració on podem demostrar que la programació és una ciència. Feim una hipòtesi i la comprovam, si no és cumpleix la hipòtesi la teoria és incorrecta i hem de cercar el problema per un altre costat.

Modificar una cosa cada vegada. Com en la refactorització, sols que en el cas de la depuració es tracta de que el programa es comporti de manera diferent, i.e. que funcioni.

Testejar la solució. No sigui cosa que resoldre el problema ens introduesqui nous problemes o en faci aparèixer de nous que havien estat amagats.

També aquesta setmana he tingut l'oportunitat de llegir un treball d'Accenture damunt SOA. He de dir que tractava el tema força bé, sense decantar-se per un proveïdor concret. Estic convinçut que SOA és una bona cosa, el que no tenc clar és que tengui que ser necessàriament complexa. Crec que amb SOA està passant un poc el que va passar en el seu dia amb els EJB: s'intenta aplicar a problemes que realment no requereixen tanta complexitat.

Com en el cas de la depuració sóc partidari de començar primer pel més obvi: que no necessitam tanta complexitat segurament, i anar cap a arquitectures més senzilles però igualment vàlides: XML sobre Http, REST i després anar complicant-ho si és necessari i el retorn de la inversió ho justifica.

blog comments powered by Disqus