2012-01-04 4 views
3

저는 비즈니스의 고객 정보를 처리하는 프로젝트를 진행하고 있습니다. 과다한 변수 중에는 클라이언트의 다양한 전화 번호를 저장하는 main_phonecell_phoneoffice_phone이 있습니다. 이 변수는 프로젝트 전체에서 사용됩니다.일반 프로그래밍 - 변수 이름 또는 표시 이름 만 변경 하시겠습니까?

클라이언트는 우리가 Phone 1Phone 2Phone 3 대신 Main PhoneCell PhoneHome Phone로 표시 것을 요청했다. 이러한 변화를 원한 이유는 합리적입니다.

내 질문에, 전체 프로젝트를 빗거나 모든 변수 이름 (프로젝트의 여러 위치)을 변경하거나 단순히 변수 이름이 기본 변수 이름 자체가 아니라 사용자에게 표시되는 방식 (한 위치)을 변경하겠습니까? ?

변수 이름에 해당 변수에 저장된 데이터가 더 이상 설명되지 않으므로 후자의 옵션이 좋지 않습니다.

의견이 있으십니까?

감사합니다.

답변

6

정직하게 말하십니까? 나는 세 가지 변수를 대체 할 것입니다 : main_phone, cell_phoneoffice_phone 그리고 배열 유형이 phones입니다. 전화기가 구별 할 수 없기 때문에 세 가지 다른 변수를 유지해야하는 이유는 무엇입니까? phones[0], phones[1] 등을 호출하면됩니다. 이것은 관계형 데이터베이스를 고려할 때 더 좋은 디자인이기도합니다.

또 다른 이점은 네 번째 전화가 끊임없이 추가되는 기능입니다.

phones 배열을 Phones 개체/구조에 배치하는 것이 좋습니다. 캡슐화가 잘되면 요구 사항이 변경 될 때 필요한 대규모 변경이 방지됩니다 (shotgun surgery 참조).

거대한 리펙토링을 수행 할 여력이 없다면 의미를 반영하도록 이름을 변경해야합니다. 정적으로 입력 된 언어를 사용하는 경우 이는 매우 간단하고 안전합니다. 그렇지 않으면 똑똑한 정규식이 트릭을해야합니다.

+0

전화가 잘되었는데 디자인 단계에서 메인, 셀 및 사무실이라는 3 개의 숫자 만있을 것이라고 상당히 논리적으로 보였습니다. – Garfonzo

+0

시스템을 설계 할 때 지원해야하는 숫자는 0, 1 및 N입니다. http://en.wikipedia.org/wiki/Zero_one_infinity_rule –

0

프로젝트를 완전히 테스트 할 시간이 있으면 변수 이름을 변경합니다.

후자의 옵션은 항상 빈약 한 보조 도구이므로 문제를 수정하고 프로젝트를 완전히 테스트하지 않아도됩니다.

0

프런트 엔드와 코드 간의 명확한 관계를 제공하기 때문에 예산이 지원하는 경우 순수한 상황 별 질문이라고 생각합니다. 전체 프로젝트를 빗대 어 말하는 것이 좋습니다. 그렇지 않으면 그냥 이름을 변경하면 충분합니다. 좋은 프로그래머는 코드 워크 스루 및 간단한 경제적 변화에 따라 디스플레이 텍스트를 해당 백엔드 코드와 쉽게 관련시킬 수 있습니다.

2

요구 사항 변경은 전화 번호 목록을 요구하므로 실제로 코드를 개별 필드가 아닌 전화 번호 모음으로 리팩터링합니다. 그런 다음 고객이 요구 사항을 다시 변경하면 전화 번호 유형을 추가 할 수 있습니다. 전화 번호를 더 추가하거나 제거 할 수 있습니다. 전화 번호와 관련된 코드는 유지 관리가 용이합니다. (나는 이런 유형의 시나리오를 다루기 위해 처음에는 전화 유형 속성을 가진 전화 번호 모음을 사용할 것을 제안했을 것입니다.)

또한 설명하는 프로세스를 리팩토링이라고하며, 언어 및 IDE에 따라 프로세스를 지원하는 기능 및/또는 플러그인이 있습니다. 많은 현대 IDE는 Rename (Eclipse, Idea, Visual Studio)과 같은 기본 리팩토링을 보유하고 있습니다.

0

아니요 변경하지 않을 것입니다. 몇 개월 후에 그들은 Phone1, Phone2, Phone3 변수에서 전화, 직장, 모바일, 집을 주문할 수있는 것처럼 말할 것입니다. 물론 당신이 원하는만큼의 일을 할 수 없다면 당신이 전화 컬렉션을 가지고 있지 않기 때문에 ...

이름 배열 (심지어 자원으로 채워지는 경우도 있음)을 사용하여 noddy class/struct를 만든 다음 그 표시 이름을 설정하면 어디서나 있어야하며 모든 표시 캡션을 찾고 변경하는 것과 비교하면 사소한 작업이 될 것입니다.

유효성 검사와 같은 것을 잊지 마십시오. "집 전화는 비어있을 수 없습니다."라고 전화를 걸면 사람들을 자극 할 것입니다.

좋은 학습자이기 때문에 "너"가 다시이 실수를하지 않을 것입니다.