인프런 워밍업 클럽 스터디 4기 - Clean Code & Test <1주차 발자국>
1주차에서 인상깊었던 부분을 따로 정리하였습니다.
이름 짓기
이름을 짓는다는 행위는 추상적 사고를 기반으로 한다.
표현하고자 하는 구체에서 핵심 개념만을 추출하여 잘 드러내는 표현
우리 도메인의 문맥 안에서 표현되는 기능
단수와 복수를 구분하기
끝에
(e)s
를 붙여 어떤 데이터가 단수 인지 복수 인지 나타내는 것만으로도 읽는 이에게 중요한 정보를 제공할 수 있다.이름 줄이지 않기
줄임말은 잃는 것에 비해 얻는 것이 적다.
자제하는 것이 좋으나 관용어 처럼 많은 사람들이 사용하는 줄임말 정도는 존재한다.
column -> col, latitude -> lat, longitude -> lon
count -> cnt (추천 X)
자주 사용하는 줄임말이 이해될 수 있는 것은 문맥 때문
은어/방언 사용하지 않기
새로운 사람이 팀에 합류했을 때 이 용어를 단번에 이해할 수 있는가?
도메인 용어 먼저 사용하기(도메인 용어 사전이 먼저 필요할 수 있음)
좋은 코드를 보고 습득하기
비슷한 상황에서 자주 사용하는 단어, 개념 습득하기
pool, candidate, threshold
추상화 레벨
어떤 내용을 메서드로 추출하는 것은 그 경계를 만든것과 같다.
경계는 코드 블록을 사용하여 블록 바깥은 추상화 레벨이 노고 내부 세계는 구체쪽이기 때문에 추상화 레벨이 낮다.
하나의 블록안에서는 추상화 레벨이 동등해야 한다.
메서드 레벨에서 이야기 할 때 초상화 레벨이 동등하지 않아서 생기는 문제가 아주 많다.
따라서 추상화 레벨이 각각 다를 때 동등한 레벨의 추상화로 시켜야 한다.
Early Return
if (a > 3) {
return ;
} else if (a <= 3 && b > 1) {
return ;
} else {
return ;
}
첫 번째 if문
두 번째 if문
else : 2개의 모든 분기 점을 기억해야 조건을 기억할 수 있음
if (a > 3) {
return ;
} else if (a <= 3 && b > 1) {
return ;
} else {
return ;
}
Early return을 통해 else의 사용을 지양하자.
사고의 depth 줄이기
for () {
for () {
if () {
doSomething();
}
}
}
method {
for () {
}
}
method {
for () {
}
}
method {
if () {
}
}
공백 라인을 대하는 자세
공백 라인도 의미를 가진다.
-> 복잡한 로직의 의미를 나누면서 사용한다.
댓글을 작성해보세요.