반응형
깨끗한 코드
태도
- 나쁜 코드는 생산성을 떨어트리고 갈수록 생산성 0로 수렴하게 만든다.
- 일정에 쫓겨서 만든 나쁜 코드를 나중에 고치려는 습관은 버려라. 르블랑의 법칙 대로 나중은 결코 오지 않는다.
- 핑계될 것 없다 모두 개발자 탓이다.
- 시간이 없어서 만든 잘못된 코드는 결국 일정을 빠르게 앞당기는 것이 아니라 결국 그 잘못된 코드로 일정을 지연시킨다.
깨끗한 코드란?
- 논리가 간단해야 한다.
- 의존성이 줄어 유지보수가 쉬워야 한다.
- 성능이 최적화 되어 있어야 한다.
- 오류는 확힐 하게 처리해야 한다.
- 많은 일을 하지말고 한가지 잘하는 일을 잘하는 코드를 만들어라.
- 테스트 케이스가 없는 코드는 깨끗한 코드가 아니다.
- 중복이 없다.
- 코드를 최대한 줄인다.
- 지속적으로 나빠지는 코드를 개선한다.
결론
- 백날 좋은 코드에 대한 이론만 공부해서는 도움이 되지 않는다. 남의 코드를 지켜보고 개선하면서 꾸준히 연습하자.
의미 있는 이름
- 의미있는 이름을 지어라.
- 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다.
- 약어를 사용하지 말고 명확한 이름을 기재하라. 비슷한 이름을 사용하지마라. ex) studentAccont, studentAccountNum 두 개 의미가 어떤건지 모호해진다.
- Info, Data는 a, an과 같은 불용어로써 불분명하니 사용하지 마라.
- 불용어를 계속 사용하면 중복을 만들게 된다. ex) AccountInfo는 Account와 헷갈리고 BankAccoutData는 BankAccount와 헷갈리게 된다.
- 단축시키려 하지말고 읽기 좋게 명확하게 코드를 작성하라 ex) genymdhms → generationTimestamp;
- 상수는 변수로 선언해서 의미를 부여하라.
- 인터페이스에 I 접두어를 붙이지 말아라. ex ) IShapeFactory → ShapeFactory, 구현 클래스 ShapeFactoryImpl
- 클래스 이름은 명사나 명사구가 좋고 Data, Info 같은 명사구는 피하고 동사는 사용하지 마라
- 메소드 이름은 동사나 동사구를 사용하라
- 의도를 분명하게 솔직한 이름을 사용하라
- 하나의 개념에 단어는 하나의 이름을 사용하라ex) fetch, retrieve, get 필요 시 마다 제각각 다른 단어를 선택 하지말고 하나로 통일해서 사용하라.
- 행동이 다르다면 굳이 동일한 이름을 사용하지 말고 다른 이름을 사용하라
- 클래스이름으로 너무 범용적인 이름을 사용하게 된다면 동일한 기능을 하는 다른 클래스가 생길 때 이름을 정하기 어려워진다. ex) CustomerAddress를 고객 주소관리 클래스로 썼다면 고객 주소가 하나 더 늘거나 관리 데이터가 변경된다면?
결론
개발하다보면 진짜 어려운게 이름 규칙이다. 근데 하다보면 위에 써있는 대로 동일한 이름의 클래스들이 많이 만들어진다. 중복되는 불용어들을 줄이고 명확한 의미가 있는 클래스를 만들 수 있도록 노력해보자. 말 그대로 이름을 짓는 시간보다 잘못된 이름을 만들어 드는 시간이 더 크다는 걸 잊지말자.
반응형
'JAVA > 클린코드' 카테고리의 다른 글
클린코드 9장 (클래스), 10장 (시스템), 11장(창발성), 12장(동시성) (0) | 2020.07.10 |
---|---|
클린코드 7장(경계), 8장 (단위 테스트) (0) | 2020.07.01 |
클린코드 5장(객체와 자료구조), 6장 (오류처리) (0) | 2020.06.29 |
클린코드 3장 (함수), 4장 (주석) (0) | 2020.06.20 |