2009-12-13 7 views
0

J'ai quelques endroits spécifiques dans mon code où j'utilise des dimensions de pixels spécifiques pour rendre certaines choses à l'écran. Évidemment, ceux-ci sont placés dans des constantes bien nommées, mais je suis inquiet que ce soit encore un peu vague. Exemple: Ceci est dans la portée locale d'une petite fonction, donc j'espère qu'il est évident que le nom de la constante s'applique à ce que le nom de la méthode fait référence.Les constantes de dimension d'écran contenant des nombres magiques doivent-elles être refactorisées?

const int X_COORD = 430.0; 
const int Y_COORD = 458.0; 

ApplySurface(X_COORD, Y_COORD, ....); 
... 

L'emplacement sur l'écran a été calculé spécifiquement pour ce point. Je me sens presque comme si je devais faire des constantes qui disent SCREEN_BOTTOM_RIGHT afin que je puisse faire quelque chose comme const int X_COORD = SCREEN_BOTTOM_RIGHT - SOME_OTHER_NAME.

Le code ci-dessus est-il trop ambigu? Ou en tant que développeur, vous verriez cela et direz-vous, c'est (430, 458) sur l'écran. Je l'ai.

Répondre

2

Dépend. Y a-t-il une raison particulière pour laquelle ces constantes sont ce qu'elles sont? (Par exemple, est-ce que "430" est en réalité à 200 pixels à gauche d'un autre élément?)

Si oui, alors il serait probablement plus logique de l'exprimer en termes de la constante utilisée pour l'autre élément (ou quelle que soit la raison résulte en ce nombre).

Si elles sont toutes simplement des positions arbitraires, alors les exprimer en tant que coordonnées est logique. Mais les chances sont, ils ne sont pas réellement arbitraires.

+0

Oui, j'ai un espace de noms qui contient les dimensions de l'écran, et j'ai envisagé de faire quelque chose comme Screen :: RIGHT_SIDE - number. Je suppose que c'est le chemin à parcourir. – Anonymous

0

De quel écran de taille partez-vous? Les gens ont des résolutions d'écran très différentes sur leurs machines, et toute taille de pixel fixe ou position va être mauvaise pour certaines personnes de temps en temps. Mon affichage normal est 1900x1220; mon autre affichage est 1440x1050; D'autres personnes utilisent des écrans de différentes tailles. Si vous affichez une fenêtre de taille fixe que l'utilisateur ne peut pas redimensionner, il peut être plus sûr d'utiliser des tailles fixes.

Sans savoir ce que ApplySurface() fait, il est difficile de dire si c'est clair comme écrit. Cependant, les noms relatifs pourraient bien être sensibles. En tant que programmeur de maintenance, je n'aurais aucune idée d'où les valeurs 430 et 458 ont été dérivées sans un commentaire à l'appui sauf si vous avez utilisé une expression pour le rendre clair.