외로운 상수

모든 소프트웨어 프로젝트에는 차이점이 있지만 절대 변하지 않는 것도 있습니다. 그 중 하나는 utils입니다. 어디에 둘지 모르는 모든 직원을 배치하고, 상수 파일은 우리가 모르는 모든 상수를 배치하는 곳입니다. 어디에 넣어. 위의 변형도 많이 있지만 여전히 모든 프로젝트에서 항상 그러한 장소 또는 장소를 찾을 수 있습니다.

이러한 상수 중에서 소위 "고독한 상수"를 찾을 수 있습니다.

외로운 메시지



일부 유명한 상수 파일에는 외로운 상수가 있습니다.

const MESSAGE_TITLE = "Welcome to the 'Some Site'"


일부 코드베이스 검색 후 상수가 응용 프로그램의 한 모듈에서만 사용되는 것처럼 보입니다. 그런 다음 모듈 내부가 아닌 공유되는 이유는 무엇입니까? 나는 저자 또는 A) 누군가가 그것을 필요로 할 것이라고 생각했다고 가정합니다. B) 저자는 이 상수를 어디에 둘지 몰랐습니다. 이유가 무엇이든 응용 프로그램의 특정 도메인에 속하는 상수는 노출되지 않고 그대로 유지되어야 합니다. 저는 사람들에게 마법 같은 프로그래밍 패턴이나 원리에 대해 말하는 것을 좋아하지 않기 때문에 이 점에 대해 저를 용서해 주셔야 합니다. 이 상황은 정확히 "You aren't gonna need it" 원칙에 위배됩니다.

외로운 커터



일부 유명한 상수 파일에는 외로운 상수가 있습니다.

const CUTTER = 'cutter'


일부 코드베이스 검색 후 전체 앱에서 상수가 사용되는 것처럼 보입니다. 이전 예에서와 같이 지역적인 것이 아닙니다. 이것은 적절하게 전역으로 만들어졌지만 잠시 후에 이것에 가까운 또 다른 상수가 더 있다는 것을 알 수 있습니다.

const BATTLESHIP = 'battleship'


이제 그것들을 사용하는 코드:

if (ship.kind === BATTLESHIP) {
 ...
} else if (ship.kind === CUTTER) {
 ...
} else {
 ...
}


이제 명확해야 합니다. 우리는 밀접하게 연결된 두 개의 상수를 가지고 있으며, 더욱이 그것들은 하나의 것, 즉 일종의 용기입니다.

enum VESSEL_TYPE {
  BATTLESHIP,
  CUTTER,
  OTHER
}


매우 건조한 숫자



일부 모듈에는 고독한 상수가 있습니다.

const TWO = 2


모듈의 로컬 상수이므로 최소한 노출되지 않습니다. 코드 조사 후 상수인 이유는 반복을 피하기 위함임이 분명했습니다. 개발자는 코드에서 '2'를 거의 보지 못했고 배운 대로 DRY principle 을 따랐고 '2'의 반복 대신 'TWO'의 반복이 있는 코드를 가지고 있었습니다 😅, 이 얼마나 승리...

코드에서 놀라운 'TWO'는 점 뒤의 자릿수로 사용되었습니다. 따라서 동의어로 이름을 지정하는 대신 목적을 정의하는 이름을 사용합니다.

const DECIMAL_PART = 2


너무 외롭지 마 나의 상수



상수를 외롭지 않게 하려면 상수의 명명, 공유 및 그룹화에서 상식을 따라야 합니다. 지역적인 것을 공유하지 않고 고유한 이름을 지정하고 도메인 열거형/객체에서 상수를 수집한다면 코드베이스에서 어떤 상수도 외롭지 않을 것입니다.

좋은 웹페이지 즐겨찾기