어의화된 코드를 쓰다
사례 1: 이해할 수 없는 판단문
첫눈에 if라는 판단 논리를 보았을 때 우리는 이것이 id의 길이를 판단하는 것밖에 몰랐다. 왜 이렇게 판단하는지, 그것이 표현하는 업무의 의미가 무엇인지 알 수가 없었다.
if (String.valueOf(vo.getId()).length() < 15 ) {
doA();
} else {
doB();
}
시나리오 1: 주석 작성
주석을 쓰는 방식으로 너의 의도를 설명할 수 있다.주석이 코드 변경에 뒤떨어질 가능성이 높기 때문에 이런 방식도 사실 결점이 있다.
//
if (String.valueOf(vo.getId()).length() < 15 ) {
doA();
} else {
doB();
}
방안2: 판단 논리 추출 방법
if (isXXX(vo.getId())) {
doA();
} else {
doB();
}
....
/**
* ,
*/
public boolean isXXX(int id){
return String.valueOf(vo.getId()).length() < 15 ;
}
사례 2: 알 수 없는 숫자(문자열) - 마법수
이른바 마법수란 통속적으로 말하면 코드를 쓴 사람만 의미를 아는 상수(사실 n일이 지나면 코드를 쓴 사람도 기억하지 못할 것이다)이다. 이런 상수는 아무런 주석이나 설명도 없고 상수 자체로도 의미를 추측할 수 없다.
Person person = new Person();
person.setSex(1);
우리는 setSex 방법에서 알 수 있듯이 이쪽은 성별을 설정하고 있지만 방법의 매개 변수는 확실히 상수 1이다. 분명히 우리는 1이 남자인지 여자인지 알 수 없다.이때, 우리는 위아래 문장을 뒤집거나, sex의 값이 어디에 쓸모가 있는지 보아야 한다. 생각하면 매우 피를 토한다
시나리오 1: 상수 추출, 상수로 정의
private static final int SEX_MAN = 0;
private static final int SEX_WOMAN = 1;
....
Person person = new Person();
person.setSex(SEX_WOMAN);
시나리오 2: 열거로 정의
public enum Sex {
MAN, WOMAN
}
....
Person person = new Person();
person.setSex(Sex.WOMAN);
총결산
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.