Backend

Readable Code

seung_soos 2024. 10. 2. 00:01

시작하며

Readable Code: 읽기 좋은 코드를 작성하는 사고법 강의를 보고 정리한내용으로,

회사의 서비스 개선을 준비하는 단계에서 우리팀에 적용해보면 좋겠다. 라는 생각이 들어 정리한 내용입니다.

 

이름짓기

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

  • ~(e)s를 붙여 변수, 클래스 등 단수인지, 복수인지 구분

2. 이름줄이지 않기

  • 관용어처럼 많은 사람들이 자주사용하는 줄임말 정도만 사용하고, 무분별한 줄임말은 자제 또한, 줄임말이 이해될 수 있는 것은 문맥때문이기에 문맥을 잘 활용
  • ex) column -> col, latitude -> lat, longitude -> lon

 

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

  • 일부 팀원 / 현재의 우리팀만 아는 용어금지
    • 새로운 사람이 팀에 합류했을때 용어를 이해하기 힘들다.
  • 도메인 용어 사용하기
    • 팀단위의 도메인 용어를 먼저 정의하는 과정이 필요하다.

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

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

메서드와 추상화

하나의 메서드는 하나의 주제만을 가져야한다.

예시로 메서드의 이름은 추상적이며, 내용은 구체화하여 작성하여야한다.

왼쪽은 좋은예시로 메서드 이름은 추상적이며 내용은 구체적이지만, 반면 오른쪽은 하나의 메서드내에 여러개의 구체적인 내용이 포함되어

내용을 유추하기가 힘들다.

만약 이럴경우 여러개의 메서드로 분리하여 메서드당 하나의책임으로 추상화할 수 있다.

매직 넘버, 매직 스트링

  • 의미를 갖고 있으나, 상수로 추출되지 않은 숫자, 문자열 등
  • 상수 추출로 이름을 짓고 의미를 부여함으로써 가독성, 유지보수성이 향상된다.

사고의 Depth 줄이기: 중첩 분기문, 중첩 반복문

  • 보이는 Depth를 줄이는데에 급급한것이 아니라, 추상화를 통한 사고 과정의 Depth를 줄이는것이 중요
  • 2중 중첩구조로 표현하는것이 사고하는데에 더 도움이 된다고 판단한다면, 메서드 분리보다 그대로 놔두는것이 더나은 선택일 수 있다.
  • 때로는 메서드를 분리하는것이 더 혼선을 줄 수도 있다.