인프런 워밍업 클럽 스터디 4기 - Clean Code & Test <1주차 발자국>

1주차에서 인상깊었던 부분을 따로 정리하였습니다.

 

이름 짓기

이름을 짓는다는 행위는 추상적 사고를 기반으로 한다.

  • 표현하고자 하는 구체에서 핵심 개념만을 추출하여 잘 드러내는 표현

  • 우리 도메인의 문맥 안에서 표현되는 기능

 

  1. 단수와 복수를 구분하기

    끝에 (e)s를 붙여 어떤 데이터가 단수 인지 복수 인지 나타내는 것만으로도 읽는 이에게 중요한 정보를 제공할 수 있다.

  2. 이름 줄이지 않기

    줄임말은 잃는 것에 비해 얻는 것이 적다.

    자제하는 것이 좋으나 관용어 처럼 많은 사람들이 사용하는 줄임말 정도는 존재한다.

    • column -> col, latitude -> lat, longitude -> lon

    • count -> cnt (추천 X)

    자주 사용하는 줄임말이 이해될 수 있는 것은 문맥 때문

  3. 은어/방언 사용하지 않기

    새로운 사람이 팀에 합류했을 때 이 용어를 단번에 이해할 수 있는가?

    도메인 용어 먼저 사용하기(도메인 용어 사전이 먼저 필요할 수 있음)

  4. 좋은 코드를 보고 습득하기

    비슷한 상황에서 자주 사용하는 단어, 개념 습득하기

    pool, candidate, threshold

 

추상화 레벨

어떤 내용을 메서드로 추출하는 것은 그 경계를 만든것과 같다.

경계는 코드 블록을 사용하여 블록 바깥은 추상화 레벨이 노고 내부 세계는 구체쪽이기 때문에 추상화 레벨이 낮다.

하나의 블록안에서는 추상화 레벨이 동등해야 한다.

메서드 레벨에서 이야기 할 때 초상화 레벨이 동등하지 않아서 생기는 문제가 아주 많다.

따라서 추상화 레벨이 각각 다를 때 동등한 레벨의 추상화로 시켜야 한다.

 

Early Return

if (a > 3) {
  return ;
} else if (a <= 3 && b > 1) {
  return ;
} else {
  return ;
}
  1. 첫 번째 if문

  2. 두 번째 if문

  3. 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 () {
  
  }
}

 

공백 라인을 대하는 자세

공백 라인도 의미를 가진다.

-> 복잡한 로직의 의미를 나누면서 사용한다.

 

 

댓글을 작성해보세요.

채널톡 아이콘