티스토리 뷰
1. 나쁜 코드
성능이 나쁜 코드
불필요한 연산이 들어가서 개선의 여지가 있는 코드
의미가 모호한 코드
이해하기 어려운 코드
네이밍과 그 내용이 다른 코드
중복된 코드
비슷한 내용인데 중복되는 코드들은 버그를 낳는다.
2. 나쁜 코드가 나쁜 이유
깨진 유리창 법칙
나쁜 코드는 계속해서 주변에 나쁜 코드가 생기도록 한다.
생산성 저하
나쁜 코드가 점점 많아 지면서 개발속도를 떨어뜨리고 팀의 생산성이 저하된다.
새로운 시스템을 만들어야 한다.
결국 현 시스템을 유지보수 하며 대체할 새로운 시스템을 개발해야 하지만 현실적으로 어렵다.
급해서... 서두르느라... 시간이 부족하다고 생각해서...
여러가지 이유로 나쁜 코드를 만들어 내고 자신이 짠 코드를 쳐다보며 나중에 손보겠다고 생각한다.
대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼며 안 안 돌아가는 프로그램보다 돌아가는 쓰레기가 좋다고 스스로를 위로한다. 하지만 르블랑의 법칙처럼 나중은 결코 오지 않는다.
시간이 지나면서 쓰레기 더미는 점점 높아지고 깊어지고 커진다.
이런 나쁜 코드는 개발 속도를 크게 떨어뜨리고 팀의 생산성 또한 떨어진다.
나쁜 코드를 만들 수 밖에 없다고 생각되는 여러 이유(관리자의 압박 등...)가 있지만
프로그래머라는 전문가로서의 태도를 갖고 언제나 코드를 깨끗하게 유지하는 습관을 가져야 한다.
3. 깨끗한 코드
깨끗한 코드에 대한 정의는 다음과 같이 다양하다.
1) 의존성이 낮다.
2) 성능을 최적으로 유지한다.
3) 한가지 일을 제대로 한다.
4) 가독성이 높다.
5) 테스트 케이스가 있으며 모든 테스트를 통과한다.
6) 중복이 없다.
7) 클래스, 메서드, 함수 등을 최대한 줄인다.
앞으로 이런 정의를 깨끗한 변수 이름, 메소드, 클래스 등 코드로 구현하는 방법들을 공부한다.
4. 우리는 저자다.
다음에 코드를 짤 때는 독자가 내가 만든 코드를 읽는다.
자신의 노력을 보고 판단을 내릴 독자가 있다는 사실을 기억해야 한다.
우리는 새 코드를 짜면서 끊임없이 기존 코드를 읽는다.
주변 코드가 읽기 쉬우면 새 코드를 짜기도 쉽고 다음 새 코드를 쉽게 짜려면 지금 짜는 코드를 읽기 쉽게 만들면 된다.
체크아웃할 때보다 좀 더 깨끗한 코드를 만들어 지속적인 개선을 이뤄내자.
출처
Clean Code(클린 코드) 애자일 소프트웨어 장인 정신
로버트 C. 마틴 지음
'책 내용 정리 > 클린코드(clean code)' 카테고리의 다른 글
[클린코드] 5. 형식 맞추기 (0) | 2022.03.03 |
---|---|
[클린코드] 4. 주석 (0) | 2022.01.17 |
[클린코드] 9. 단위 테스트 (0) | 2021.12.14 |
[클린코드] 3. 함수 (0) | 2021.12.01 |
[클린코드] 2. 의미있는 이름 (0) | 2021.11.29 |
- Total
- Today
- Yesterday
- 학습 테스트
- 스프링 예외 추상화
- ATDD
- Git
- TDD
- MySQL
- 마이크로서비스 패턴
- Spring Boot
- http
- 스프링 카프카 컨슈머
- 트랜잭셔널 아웃박스 패턴
- java8
- clean code
- 이벤트 스토밍
- HTTP 헤더
- named query
- JPA
- Stream
- Ubiquitous Language
- Spring
- 폴링 발행기 패턴
- 클린코드
- mockito
- spring rest docs
- H2
- 도메인 모델링
- 계층형 아키텍처
- kafka
- 육각형 아키텍처
- Spring Data JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |