클린코드_깨끗한 코드와 의미있는 이름

송수용·2022년 6월 2일
0

clean code

목록 보기
1/4

깨끗한 코드

  1. 코드는 요구사항을 상세히 표현하는 수단이다.
  2. 추상화도 불가능하다.
    1. 정확히 명시하는 수 밖에 없다.
  3. 나쁜 코드는 개발 속도를 크게 떨어뜨린다.
    1. 나쁜 코드가 쌓일수록 팀 생산성은 떨어진다.
      1. 점점 생산성이 0가 되는 것을 볼 수 있다.
  4. 깨끗한 코드를 작성하는 프로그래머는 빈 캔퍼스를 우아한 작품으로 바꿔가는 화가와 같다.
  5. 비야네 스트롭스트룹
    1. 우아한 코드 ⇒ ‘보기에 즐거운’
      1. 데이브토마스 & 앤디 헌트 (깨진 창문 비유)
    2. 효율을 강조
    3. 깨끗한 코드는 한가지에 ‘집중한다.’
  6. 그래디 부치
    1. ‘가독성을 강조’
    2. 코드를 읽는 사람에게 프로그래머가 단호하다는 인상을 줘야한다.
  7. 큰데이브 토마스
    1. ‘가독성’과 함께 깨끗한 코드란 다른 사람이 고치기 쉬워야 한다.
    2. 코드가 ‘문학적’ 이어야한다. ⇒인간이 읽기 좋은 코드를 작성하라!
  8. 마이클 페더스
    1. ‘주의’ ⇒깨끗한 코드는 주의 깊게 작성 코드! 시간을 들여 깔끔하고 단정하게 정리한 코드
  9. 론 제프리스
    1. 모든 테스트를 통과한다.
    2. 중복이 없다. ⇒ 중복을 피하고 한 기능만 수행. 제대로 표현하고 작게 추상화해라
    3. 시스템 내 모든 설계 아이디어를 표현한다.
    4. 클래스, 메서드, 함수 등을 최대한 줄인다.
  10. 워드 커닝햄
    1. 코드를 읽으면서 짐작했던 기능들이 그대로 수행한다면 께끗한 코드라 부를 수 있겠다. 코드가 그 문제를 풀기 위한 언어처럼 보인다면 아름다운 코드라 불러도 되겠다.
    2. 코드를 독해하느라 머리를 쥐어짤 필요가 없어야 한다.

의미 있는 이름

  1. 의도를 분명히 밝혀라
    1. 변수(혹은 함수나 클래스)의 존재 이유는? 수행 기능은? 사용 방법은? 등의 따로 주석이 필요하다면 의도를 분명히 드러내지 못한 것이다.
  2. 그릇된 정보를 피하라
    1. 프로그래머는 코드에 그릇된 단서를 남겨서는 안된다.
  3. 의미 있게 구분
    1. 불용어는 중복이다.
      1. 변수이름에 variable은 당연히 금지된다.
      2. 표 이름에 table도 마찬가지.
      3. NameString 과 Name의 차이는 ? Name이 부동소수가 될 가능성은 없다.
  4. 발음하기 쉬운 이름
    1. 예시로 날짜의 변수로 genymdhms 표현했다. (generatedate,year,month,day,hour,minute,second)를 간단히 하면 generationTimestamp로 지을 수 있다.
  5. 검색하기 쉬운 이름
  6. 인코딩을 피하라
  7. 자신의 기억력을 자랑하지마라
    1. 전문가 프로그래머는 명료함이 최고라는 사실을 이해한다.
    2. 프로그래머는 자신의 능력을 좋은 방향으로 사용해 남들이 이해하는 코드를 내놓는다.
  8. 클래스 이름
    1. 명사나 명사구가 적합하다.
  9. 메서드 이름
    1. 동사나 동사구 사용
      1. 접근자 변경자 조건자 javabean 표준에 따라 값 앞에 get set is를 붙인다.
  10. 기발은 이름은 지양
    1. 의도를 분명하게 하고 솔직하게 표현
  11. 한 개념에 한 단어를 사용
    1. 메서드 이름은 독자적이고, 일관적이어야 한다.
  12. 말장난하지마라
  13. 해법 영역에서 가져온 이름을 사용
  14. 의미 있는 맥락을 추가하라
  15. 불필요한 맥락을 없애라
    1. 일반적으로 짧은 이름이 긴 이름보다 좋다.
      단, 의미가 분명한 경우에 한해
  16. 깨끗한 코드와 의미 있는 이름은 단기적인 효과는 물론 장기적인 이익도 보장한다.
profile
#공부중 #협업 #소통중시 #백엔드개발자 #능동적 #워커홀릭 #스파르타코딩 #항해99 #미니튜터 #Nudge #ENTJ #브레인스토밍 #아이디어뱅크

0개의 댓글