Quan dos "gurús" recomanen el contrari
Ja m'ha passat alguna vegada i fa poc estava comentant-ho amb un col·lega (Hola Master Jail /Juan Ramon ;)). Després de llegir-me el llibre Clean Code de Robert C. Martin, vaig començar a llegir-me el llibre Test-Driven Development by Example de Kent Beck. El llibre me l'havia recomanat molta gent, des de Juan Ramon fins al mateix autor de Clean Code al seu llibre. La meua sorpresa ha sigut al inspeccionar les recomanacions d'eliminació de duplicitat al fer els tests, al final el codi del test queda així:
public void testMultiplication() {
Dollar five= new Dollar(5);
assertEquals(new Dollar(10), five.times(2));
assertEquals(new Dollar(15), five.times(3));
}
o encara pitjor:
public void testEquality() {
assertTrue(new Dollar(5).equals(new Dollar(5)));
assertFalse(new Dollar(5).equals(new Dollar(6)));
assertTrue(new Franc(5).equals(new Franc(5)));
assertFalse(new Franc(5).equals(new Franc(6)));
}
En canvi, Bob Martin sempre ens recomana guardar els objectes en una variable (anomenar-los si no em falla la memòria). La primera línia de l'últim test deuria d'haver-se escrit així:
dollarfive = new Dollar(5);
anotherdollarfive = new Dollar(5);
assertTrue(dorlarfive.equals(anotherdollarfive));
És a dir, exactament remomanacions contràries. A mi, personalment m'agrada no tindre mètodes/objectes anònims i guardar-los en variables (com ho fa Bob Martin). La majoria de programadors de node.js fan el contrari... per a gustos colors. I a vosaltres, que vos agrada més?
Comentaris
Publica un comentari a l'entrada