On Github avernois / training-clean_code
Agile Software Craftsman
Software Anarchist
blog : https://blog.crafting-labs.fr
twitter : @avernois
#ISpeakForFood
Vous attendez quoi de cette formation ?
Une attention continue à l'excellence technique et au bon design améliore l'agilité.
Ils vous donnent confiance pour modifier le code.
Généralement, sources de problèmes et d'incompréhension
Généralement, sources de collaboration
1 exemple = 1 test
écrit avant, il guide le développement
spécification exécutable
feedback continu
non-régression permanente
plus fiable qu'un test manuel
permet aux testeurs d'utiliser au mieux leurs compétences
un test qui vérifie un comportement d'un morceau de code isolé du reste.
entre developpeurs
quelques minutes
aussi souvent que nécessaire
au tableau
CRC : Class, Responsability, Collaboration
YAGNI : You aren't gonna need it
les décisions sont prises au dernier moment responsable
Acceptance Test Driven Developpement
BDDBehaviour Driven Developpement
a.getB().getC().doThings(); // NO !
class A { B b; doThings() { b.doThings(); } ... } class B { C c; doThings() { c.doThings(); } ... } a.doThings();
public class A { private B b; public void execute(int i) { b = new B(); C c = new C(); if (i <= 3) { b.executeB(); } else { c.executeC(); } } } public void main(){ A a = new A(); a.execute(); }
public class A { private B b; public A(B b) { this.b = b; } public void execute(int i, C c) { if (i <= 3) { b.executeB(); } else { c.executeC(); } } } public void main(){ B b = new B(); A a = new A(b); a.execute(3, new C()); }
/* * A comment to please checkstyle */
/* * Set the port * * @params port */ public void setPort(Port port) {this.port=port}
... } /* end for */ dao.flush(); default : break; } /* end switch */ } /* end if */ } /* end if */ } catch ...
Ne pensez pas héritage, pensez polymorphisme
Ne pensez pas if/switch, pensez polymorphisme