@david : On peut toujours faire mieux Sinon je me suis arretté là pour le screencast, car j’ai présenté ce que je voulais présenter : les trucs de bases.
@Xavier : Merci pour le tip inline, je n’ai pas l’habitude de l’utiliser. J’ai essayé après coup et bizarrement ça n’a pas fonctionné, il ne me prend que la premiere variable. Je suis sous IntelliJ 10. Il faut que j’essaye avec la 11, c’est peut être un bug.
@Kanti bonne idée mais il faut réussir à le formatter pour que ce soit lisible…
]]>Ne penses-tu pas que tu aurais pu aller encore plus loin dans le refactoring en simplifiant les méthodes extraites ?
Aussi, le méthode atLeastOneNull n’a pas besoin d’etre générifiée. Elle peut fonctionner sur de simples Object. C’est plus lisible a mon avis.
Sinon, comme le dit Xavier, tu peux utiliser le refactor inline.
]]>int compareInt(int a, int b)
{
return (a == 0 ? a : b);
}
et ensuite refactorer la méthode compare de la manière suivante :
public int compare(EssentialPackProduct epp1, EssentialPackProduct epp2)
{
return (atLeastOneNull(epp1,epp2) ? 0 : compareInt(compareInt(compareBoolean(epp1.isHospital(), epp2.isHostipal()), compareBoolean(isEppAvailable(epp2), isEppAvailable(epp1))), compareName(epp1, epp2)));
}
Juste un petit truc vers 5’40 j’aurais utilisé le refactor inline plutôt que de le faire à la main.
]]>Comme quoi c’est vrai, les TU ca sert.
]]>Super ta vidéo ! J’adore les katas, tu peux continuer
Allez je me risque, pour moi dans ton second appel à atLeastOneNull dans compareName tu ne passes plus les Name en attribut de la méthode mais les objets.
François.
]]>