Clean Code 24/10/07

Hunter Joe·2024년 10월 8일
0
post-custom-banner

p26

  • 컴파일러를 통과할지라도 연속된 숫자를 덧붙이거나 불용어(noise word)를 추가하는 방식은 적절하지 못하다.
public static void copyChars(char a1[], char a2[]) {
	for (int i = 0; i < a1.length; i++) {
    	a2[i] = a1[i];
    }
}
  • 불용어는 중복이다.
  • 불용어를 추가한 이름은 아무런 정보도 제공하지 못한다.

Ex)

  • product라는 클래스가 있다고 가정하자.
    이 때, 다른 클래스를 productInfo, productData라 부른다면 개념을 구분하지 않은 채 이름만 달리한 경우다.
    → 이런 경우 InfoDataa,an, the와 마찬가지로 의미가 불분명하다.

  • getActiveAccount();

  • getActiveAccounts();

  • getActiveAccountInfo();
    이러한 변수명은 나 말고 다른 프로그래머는 차이를 느끼지 못한다.
    구분이 힘든 변수명은 지양하고, 읽는 사람이 차이를 알도록 지어라.

p27<발음하기 쉬운 이름>

  • 발음하기 쉬운 이름은 중요하다.
    → Why? : 프로그래밍은 사회 활동이기 때문이다.

p28<검색하기 쉬운 이름>

  • e라는 문자는 변수 이름으로 적합하지 않다.
    → Why? : 가장 많이 쓰이는 문자이다. 이러한 관점에서 긴 이름이 짧은 이름보다 낫다.

p31

  • 독자가 코드를 읽으면서 변수 이름을 자신이 아는 이름으로 변환해야 한다면 그 변수 이름은 바람직하지 못하다.

  • 똑똑한 프로그래머와 전문가 프로그래머 사이에서 나타는 차이점 하나만 들자면, 전문가는 명료함이 최고라는 사실을 이해한다. 전문가는 남들이 이해하는 코드를 내놓는다.

p32 <클래스, 메서드 이름>

  • <클래스 이름>
    클래스 + 객체 이름은 명사 또는 명사구가 적합하다.
    Ex)
    좋은 예 : Custion, WikiPage, Account, AddressParser
    나쁜 예 : Manager, Processor,Data,Info

  • <메서드 이름>
    동사나 동사구가 적합하다.
    좋은 예 : postPayment, deletePage, save
    접근자, 변경자, 조건자는 javabean 표준에 따라 get, set, is를 붙힌다.

p33<한 개념에 한 단어만 사용하라>

  • 추상적인 개념 하나에 단어 하나를 선택해 이를 고수하라
    Ex)
    똑같은 메서드를 클래스마다 fetch, get, retrieve으로 제각기 부르면 혼란스럽다.

  • 메서드 이름은 독자적이고 일관적이어야 한다.
    그래야 주석을 뒤져보지 않고도 프로그래머가 올바른 메서드를 선택한다.

  • 또한 동일 코드 기반에 controller, manager, driver를 섞어쓰면 혼란 스럽다.

  • 일관성 있는 어휘는 코드를 사용할 프로그래머가 반갑게 여길 선물이다.

profile
두 or 다이 / FE 목표
post-custom-banner

0개의 댓글