일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- Java 8 in action
- 스트림
- spring boot
- SERVLET
- jsp
- spring
- Java in action
- 자바
- AWS101
- facade pattern
- head first
- Java
- Stream
- 자바의 신
- 패스트캠퍼스
- 자바8
- 클린코드
- ddd
- Java8 in action
- Template Method Pattern
- domain
- Clean Code
- 자바8인액션
- Design Pattern
- Was
- Java8
- 디자인 패턴
- web
- CQRS
- spring Batch
- Today
- Total
주난v 개발 성장기
[Clean Code] 1장. 깨끗한 코드 본문
나쁜 코드
우리 모두는 대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼며 그래도 안 돌아가는 프로그램보다 돌아가는 쓰레기가 좋다고 스스로를 위로한다.
다시 돌아와 나중에 정리하겠다고 다짐한다.
물론...그때 그시절 우리는 "르블랑의 법칙"을 몰랐다.
나중은 결코 오지 않는다.
나쁜 코드로 치르는 대가
매번 얽히고 설킨 코드를 '해독'해서 얽히고 설킨 코드를 더한다.
이로 인해 생산성이 바닥나고 결국 재설계를 하게 된다.
비야네 스트롭스트룹
- 효율을 중요하게 여기자. 단순히 속도 뿐만 아니라 CPU 자원을 낭비하는 코드도 우아하지 못한다.
- 오류 처리도 신경써야 한다. (메모리 누수, 경쟁 상태, 일관성 없는 명명법)
- 나쁜 코드는 너무 많은 일을 하려 애쓰다가 의도가 뒤섞이고 목적이 흐려진다.
그래디 부치
- 깨끗한 코드는 잘 쓴 문장처럼 읽힌다. (가독성)
데이브 토마스
- 깨끗한 코드는 작성자가 아닌 사람도 읽기 쉽고 고치기 쉽다. 단위 테스트 케이스와 인수 테스트 케이스가 존재한다.
- 아무리 코드가 우아해도, 아무리 가독성이 높아도, 테스트 케이스가 없으면 깨끗하지 않다.
마이클 페더스
- 깨끗한 코드는 언제나 누군가 주의 깊게 짰다는 느낌을 준다. 고치려고 살펴봐도 딱히 손 댈 곳이 없다.
- 모든 테스트를 통과한다.
- 중복이 없다
- 시스템 내 모든 설계 아이디어를 표현한다.
- 클래스, 메서드, 함수 등을 최대한 줄인다.
- 메서드가 여러 기능을 수행한다면 메서드 추출 리팩터링 기법을 적용
- 중복을 피하라. 한 기능만 수행하라. 제대로 표현하라. 작게 추상화하라.
워드 커닝햄
- 깨끗한 코드는 읽으면서 놀랄 일이 없어야 한다.
- 읽으면서 짐작한 대로 돌아가는 코드가 깨끗한 코드이다.
우리는 저자다.
- 코드를 읽는 시간 vs 코드를 짜는 시간 비율은 10대 1이상이다.
- 새 코드를 짜면서 우리는 끊임없이 기존 코드를 읽는다.
- 비율이 이렇게 높으므로 읽기 쉬운 코드가 매우 중요하다.
보이스카우트 규칙
- "캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라."
한꺼번에 많은 시간과 노력을 투자해 코드를 정리할 필요가 없다. 변수 이름 하나를 개선하고, 함수 하나를 분할하고, 약간의 중복을 제거하고, 복잡한 if문 하나를 정리하면 충분하다.
'개발 성장기 > Clean Code' 카테고리의 다른 글
[Clean Code] 2장.의미 있는 이름 (0) | 2020.09.15 |
---|