문제

나는 문자열이 대부분 코드에 기록되는 프로젝트를 시작하고 있습니다. 많은 문자열이 몇 곳에서만 사용될 수 있지만 일부 문자열은 많은 페이지에서 일반적입니다.

앱이 꽤 잘 확립되어 잘 실행된다는 것입니다. 그렇게하는 데있어 장기적인 이점은 무엇입니까?

도움이 되었습니까?

해결책

이 프로젝트가 미래에 지원되어야하는 경우에만 시간을 잘 사용하는 것입니다. 이 시스템을 정기적으로 유지/확장하는 경우; 그러나 이것은 좋은 생각입니다.

1) 단일 철자는 일반적으로 런타임에만 감지 할 수 있기 때문에 문자 리터럴과 관련된 많은 위험이 있습니다. 실행 시간 오류의 위험 감소는 당황/실망 스러울 수 있기 때문에 심각한 이점입니다.

2) 또한 변경 해야하는 경우, 예를 들어 다른 시스템 (테이블 이름, 서버 이름 등)을 참조하는 데 사용될 때 다른 시스템 이름이 변경 될 때 업데이트하기가 매우 어려울 수 있습니다. 그들을 중앙 집중화하고 그것은 사소한 문제입니다.

다른 팁

고려해야 할 한 가지 일반적인 것은입니다 i18n. 귀하 (또는 귀하의 Muckity-Mucks)가 멕시코 또는 프랑스에서 제품을 판매하고 싶다면 문자 리터럴을 갖는 것에 감사드립니다. ~ 아니다 코드 기반 전체에 흩어져 있습니다.

편집 : 나는 이것이 당신의 질문에 직접 대답하지 않는다는 것을 알고 있습니다. 그래서 나는 다른 답변 중 일부를 투표하고 있습니다 : 3의 규칙 등. 기존 코드 기반에 대해 이야기하고 있다는 것을 이해하므로 처음부터 i18N을 통합하는 것에 대해 이야기하는 것이 조금 늦었습니다. 처음부터 습관을 가질 때는 너무 쉽습니다.

리팩토링시 3의 규칙을 적용하고 싶습니다. 세 번 이상 발생하면 코드를 업데이트해야합니다.

문자열이 둘 이상의 장소에서 사용되면 리팩터를 리팩터링하십시오. 한 곳에서만 사용되면 내버려 두십시오.

모든 일반적인 문자열을 모두 리팩토링하면 국제화/번역이 더 쉬워집니다. 모두 속성 파일에 있거나 언어에 해당하는 것이 있으면 더 쉽습니다.

앱이 꽤 잘 확립되어 잘 실행된다는 것입니다.

아니, 당신은 그것을 그대로 두는 것이 좋습니다.

그렇게하는 데있어 장기적인 이점은 무엇입니까?

아무도 해당 코드를 터치하지 않으면 혜택은 없습니다.

그러나 할 수있는 일은 새로운 리터럴을 추가하지 않는 것입니다. 그러나 나는 존재하는 방식대로 기존을 거의 떠날 것입니다.

당신은 아마도 당신의 무료로 그들을 더 잘 수면을 재현 할 수있을 것입니다.

아마도 당신의 관심이 필요한 다른 버그가있을 것입니다. 대신 고치십시오.

마지막으로, 당신이 당신의 작업 목록에 "Refactoring"을 추가하면 계속 진행하십시오 !!!

나는 JMD에 동의합니다. 문자열을 변경하는 것보다 i18n에 더 많은 것이 있음을 명심하십시오 (통화, UI는 오른쪽에서 왼쪽에서 왼쪽에서 왼쪽으로 사로 잡아야합니다).

당신이 당신의 응용 프로그램을 18N에 원하지 않더라도, 당신의 문자열을 리팩터링하는 것이 유용 할 것입니다. 오늘 한 번만 사용되는 문자열은 내일 몇 번만 재사용 할 수 있기 때문에, 그것이 하드 코딩 된 경우 그것을 알지 못하고 그것을 알지 못할 수도 있습니다. 별을 복제하는 끈은 모든 곳에서 끈을 복제합니다.

잠자는 개가 거짓말을하자. 18 번을 사용하는 문자열을 변경해야한다면, 예, 계속해서 어딘가에 일정하게 바꿉니다. 일정한 고기가 될 수있는 문자열이있는 모듈에서 자신이 작동한다면, 기분이 좋으면하십시오. 그러나 모든 문자열을 상수로 바꾸는 전체 앱을 살펴보십시오. 이는 할 일 목록의 바닥에 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top