Aprendre plegats
dijous, de març 17, 2005
 
ES2(40) Disseny clar o provable?
No fa gaire, Michael Feathers ha publicat un article a IEEE Software sobre la importància de la claredat en el disseny. Presenta un cas de disseny clar, però que és poc provable (en anglès "testable"). Conclou que la claredat és important, però que encara ho és més la capacitat de ser provable.
Us proposo que estudieu l'article i que comenteu quin és exactament el problema que descriu, per què es produeix el problema i com el resol. Esteu d'acord en la solució al problema concret?. Esteu d'acord en les conclusions generals que en treu l'autor?.

Comments:
El problema és que tenim un codi que es clar i volem canviar el càlcul d'una funció però no podem provar si aquest canvi funciona.

Això es degut a que aquest càlcul necessita d'un resultat que obtenim de la crida a un mètode estatic d'una altra classe que accedeix a un sistema remot i per fer les proves no podem accedir a ell.

La solució que proposa és fer no estàtic aquest mètode i sobreescriure'l de manera que retorni un valor concret que nosaltres haurem indicat en el "test". Això comporta canvis en la classe que volem testejar, com afegir un atribut que faci referència a una instància de la classe del mètode que ara és estatic. El codi ja no és tan clar com abans però podem provar si el canvi que voliem realitzar és correcte. L'autor assegura que el nou codi junt amb els "tests" donen una altre tipus de claredat.

L'autor diu que podem fer els dissenys més facils de mantenir si primer els fem provables.
Personalment crec que pot ser costos en sistemes grans, pero sabem que el manteniment del software és l'etapa més llarga i per tant hi sortim guanyant.
 
Publica un comentari a l'entrada

<< Home

Powered by Blogger