Comment voulez-vous obtenir l'idéal DRY rêvé dans cet exemple, dans la langue de votre choix:Comment suivez-vous DRY avec du code en utilisant les coordonnées x-y?
drawLine(Point(0, 0), Point(w, 0));
int curRowY = 0;
for(int row=0; row<rowHeights.size(); row++) {
curRowY += rowHeights[row];
drawLine(Point(0, curRowY), Point(w, curRowY));
}
drawLine(Point(0, 0), Point(0, h));
int curColX = 0;
for(int col=0; col<colWidths.size(); col++) {
curColX += colWidths[col];
drawLine(Point(curColX, 0), Point(curColX, h));
}
Note: Une multitude d'ad-hoc préprocesseur macros est susceptible d'être extrêmement moins lisible & écriture si c'est parti. Peut-être, dans ce cas, vous prenez DRY trop à l'extrême?
Et nous avons un gagnant: l'idée clé ici est que repeatLines avait besoin d'un nouveau paramètre pour déterminer horizontalement et verticalement. Cela a l'avantage de pouvoir faire d'autres angles en utilisant d'autres vecteurs. – Godeke
C'est en fait pas mal! Certainement cassé un mur pour moi: j'ai continué à penser aux 2 cas comme "horz & vert" que j'ai assimilé à "x & y". Le traiter comme un angle arbitraire est une bonne solution. –
Oh oui! J'aime ça! – teedyay