Clean Code 1

Tadap·2023년 10월 5일

CleanCode

목록 보기
1/4

사진 참조

클린코드 정리

1장

  1. 효율적인코드 - by 비야네 스트롭스트룹
  2. 단순하고 잘 읽히는 코드 - 그래디 부치
  3. 읽고 고치기 쉬운 코드 - 데이브 토마스
  4. 고칠곳이 없는 코드 - 마이클 페더스
  5. 중복이 적은 코드 - 론 제프리스
  6. 그대로 작동하는 코드 - 워드 커닝햄

코드를 명료하게 짜는게 중요한 이유
-> 코드 작성시 대부분의 시간은 모듈을 살펴보는데 사용한다.

보이스카우트 법칙
-> 코드 commit시 조금 더 깨끗하게 코드를 작성해서 넣는다면 더러워질 일이 없다

2장 - 의도를 밝혀라

  1. 의도를 밝혀라
    • 이름이 ddate는 의미가 다르다
    • 단순하게 짜되 함축성을 고려해야한다.
  2. cd 처럼 명령어 같은것은 사용하지 않는다 - 잘못된 정보
    • ex) list 를 변수명으로 하기에는 자료형이니까 앞에 부연설명을 붙이거나 사용하지 않는다.
    • ex) testController , testControllerForA 이런식으로 비슷한 이름도 부적절 하다.
    • ex) l, O 의 경우 1과0 으로 헷갈릴 수 있다.
  3. a1, d2 와 같이 단순 구분을 위한 변수명은 사용하지 않는다. 불용어 사용시 정보 제공이 불가능 하다.
    • ex) getAccounts(), getAccount(), getAccountInfo() 등등
  4. 발음하기 쉬운 이름을 사용하라
  5. 검색하기 쉬운 이름을 사용하라 - 중복이 되는 짧은 단어로 이루어진다면 검색이 어렵다. 특히 중요한 변수, 함수 명일수록 더
  6. 인코딩을 피하라(약어, 단축어 사용 피하라) - 개발자가 외워야 하는것이 늘어날 뿐이다.
  7. 기억력을 자랑하지마라 - ex) h - host, p - protocol, r - url 이라고 정했다면 나는 이해하지만 누군가는 이해 못한다.
  8. 클래스 이름은 명사나 명사구로
  9. 매서드 이름은 동사나 동사구로
    • 위 두개는 클래스는 나타내고 매서드는 행하기 때문으로 추측(결국 하는대로 짓기)
  10. 기발한 이름은 피하라
  11. 하나의 개념에 하나의 단어 - fetch, get, 등등 같은 개념에 여러가지 단어는 혼동을 일으킨다.
  12. 말장난을 하지 마라(일관성을 지켜라) - 하나의 기능 (get)이 가져오는 기능만 가지는게 아니라 부가적인 기능, 다른 기능을 가진다면 헷갈린다.
  13. 해법영역에서 가져온 이름을 사용하라 - 기술 개념은 익숙하니 이 부분에서 단어를 가져오는것은 바람직하다
  14. 문제영역에서 가져온 이름을 사용하라 - 13번이 불가능할때 대체로 그 분야 보수 프로그래머에게 의미를 물어 볼 수 있다.
  15. 의미있는 맥락을 추가하라 - 주소라면 street, houseNumber, city, state, zipcode 등을 사용하면 맥락이 있다. 이해가 편해진다
    • 예시로 if문 안에서 작동하는 매서드를 분리한다. 만약 데이터가 없어서 예외처리라면 isNoData()같은 매서드를 만들고 isSingleData(), isMutilpleData() 같이 내부를 분리해 준다면 이해가 더 편할 것이다.
  16. 불필요한 맥락은 추가하지 마라 - 오히려 찾기 어려워지고 불분명해진다.

결국 목표는 명확하게 사용하자 인데 그 세부 디테일 내용이다.
맥락을 추가하거나 자주 사용하는 언어, 알아듣기 쉬운 언어를 통해 복잡성을 줄여주고
적당한 정보를 이름에 추가하여 파악을 용이하게 하며
문제가 생겼을 때를 검색을 대비하여 검색을 쉽게 한다.
그리고
필요없거나, 혼자 또는 일부만 알아듣거나, 관용적이지 못한것은 없애고
의미가 없는것은 피하며
해석에 방해가 되는 정보는 없앤다.

0개의 댓글