CleanCode TIL (2022.01.24)

2870 단어 TIL노개북TIL

DAY 4

🔖 오늘 읽은 범위 : 2장 의미 있는 이름 (22~31p)


🤓 책에서 기억하고 싶은 내용

의도를 분명히 밝혀라

  • 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다.
  • 따로 주석이 필요하다면 의도를 분명히 드러내지 못한 것

질문에 답하라

  • 변수의 존재 이유는?
  • 수행 기능은?
  • 사용 방법은?

개념에 이름을 붙여라

public List<Cell> getFlaggedCells() {
    List<Cell> flaggedCells = new ArrayList<Cell>();
    for (Cell cell : gameBoard)
        if (cell.isFlagged())
        flaggedCells.add(cell);
    return flaggedCells; 
}

그릇된 정보를 피하라

  • 자신에게만 편한 약어 ❌
  • type과 일치하지않는 suffix ❌ (일치해도 왠만하면 생략)
  • 소문자 ‘l’ 이나 대문자 ‘O’ 를 약어로 쓰기 ❌

의미 있게 구분하라

  • 연속적인 숫자를 덧붙인 이름 ❌
  • Info, Data, a, an, The, var, table, string, amount, message 같은의미 없는 불용어추가 ❌

발음하기 쉬운 이름을 사용하라

  • 프로그래밍은 사회활동이다 → 젠야무다힘즈genymdhms ❌

검색하기 쉬운 이름을 사용하라

  • 간단한 메서드에서 로컬 변수만 한 문자를 사용하자
  • 이름 길이는 범위 크기에 비례해야 한다.
    • 여러 곳에서 사용할거면 찾기 쉬운 긴 이름이 좋다.

인코딩을 피하라

멤버 변수 접두어

  • m_ 같은 접두어 ❌ → 다른 색상 IDE면 충분

인터페이스 클래스와 구현 클래스

  • 인터페이스가 아니라 구현 클래스에 인코딩을 하자 인터페이스: ShapeFactory 구현 클래스: CShapeFactory or ShapeFactoryImp

🤔 떠오르는 생각

  • 코드를 작성 할때마다 항상 이건 너무 verbose한가? 고민하던 시기가 있었다. 하지만 변수가 길면 오히려 검색하기 쉽다는 신선한 충격이 그 고민에서 나를 해방 시켜주었다!

🔎 질문

  • 하지만 너무나도 긴 변수는 줄이긴해야하는데 그런 노하우도 알고싶다. 예를 들어 Oracle의 Object명은 30자로 제한 되어있어 때로는 일관성을 깨고 session을 sess 라고 쓰는 등의 축약을 한다.

📝 소감 3줄 요약

  • 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다.
  • 변수가 길면 오히려 검색하기 쉽다.
  • 젠야무다힘즈 금지.

좋은 웹페이지 즐겨찾기