2009-12-13 4 views
0

필자는 코드에 특정 픽셀 크기를 사용하여 특정 항목을 화면에 표시하는 특정 위치를 사용합니다. 분명히 이것들은 잘 명명 된 상수에 놓여 있지만, 나는 아직도 그것이 다소 모호한 것이 아닌가 걱정된다.마법 숫자를 담고있는 화면 차원 상수를 리팩토링해야합니까?

예 : 이것은 작은 함수의 로컬 범위에 있으므로 상수의 이름이 메서드 이름이 나타내는 것에 적용된다는 것이 분명해지기를 바랍니다.

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

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

화면상의 위치는 그 자리 구체적 산출 하였다. 마치 SCREEN_BOTTOM_RIGHT이라고 말하는 상수를 만들어야하는 것처럼 나는 거의 느끼기 때문에 const int X_COORD = SCREEN_BOTTOM_RIGHT - SOME_OTHER_NAME과 같은 것을 할 수 있습니다.

위의 코드가 너무 모호한가요? 또는 개발자가 화면에서 보았을 때 괜찮습니다 (430, 458). 알았다.

답변

2

에 따라 다릅니다. 그 상수가 어떤 특별한 이유가 있습니까? (예를 들어, "430"실제로 다른 일부 요소의 왼쪽에 200 픽셀입니까?)

그렇다면 아마 다른 요소에 사용되는 상수로 표현하는 것이 더 합리적 일 것입니다. 또는 그 이유가 무엇이든).

모두 임의의 위치라면 좌표로 표현하는 것이 좋습니다. 그러나 기회는 실제로는 임의적이지 않습니다.

+0

예, 화면의 크기를 보유하는 네임 스페이스가 있으며 Screen :: RIGHT_SIDE - number와 같은 작업을 수행했습니다. 나는 그것이가는 길인 것 같아요. – Anonymous

0

내가 갖고 있다고 생각하는 크기의 화면은 무엇입니까? 사람들은 자신의 컴퓨터에서 화면 해상도가 매우 다르며 일부 고정 픽셀 크기 또는 위치는 일부 사람들에게는 잘못 될 것입니다. 정상적인 디스플레이는 1900x1220입니다. 내 다른 디스플레이는 1440x1050입니다. 다른 사람들은 크기가 다른 화면을 사용합니다. 사용자가 크기를 조정할 수없는 고정 된 크기의 창을 표시하는 경우 고정 된 크기를 사용하는 것이 더 안전 할 수 있습니다.

ApplySurface()가 어떤 작업을 수행하는지 알지 못하면 서면으로 명확한 지 여부를 말하기 어렵습니다. 그러나 상대적인 이름은 의미심장 할 수 있습니다. 유지 보수 프로그래머로서, 당신이 표현을 사용하여 명확하게하지 않는 한, 지원 평가없이 430과 458의 값이 어디에서 파생되었는지 전혀 알 수 없습니다.