로버트 C. 마틴의 Clean Code 라는 책을 읽고, 학습하고 정리하는 글 입니다.
Clean Code 클린 코드 애자일 소프트웨어 장인 정신
- 읽은 날짜 : 23.05.28 ~ 23.05.30
- 읽은 범위 : 1장 깨끗한 코드
- 주요 키워드 :
나쁜코드
깨끗한코드
1장 깨끗한 코드
- 코드를 자동으로 생성하는 시대가 다가온다. 그때가 되면 프로그래머가 필요가 없다. 이런 이야기가 나오고 있다.
- 저자는 언젠가 코드가 사라지리라 하는 생각을 절대로 불가능하다고 말한다.
✅ 나쁜 코드
- 프로그래머라면 누구나 나쁜 코드로 고생한 경험이 있다.
- 왜 나쁜 코드를 짰는가?
- 제대로 짤 시간이 없어서
- 빨리 끝내려고
- 다른 업무가 밀려서
- 나중에 손봐야지..!라고 생각한다. 우리는 그때 르블랑의 법칙을 몰랐다.
나중은 결코 오지 않는다. (르블랑의 법칙)
✅ 나쁜 코드로 치르는 대가
- 나쁜 코드는 개발 속도를 떨어뜨린다.
- 나쁜 코드가 쌓일수록 생산성은 떨어진다.
- 우리는 프로젝트를 계획하는 과정에 깊숙히 관여하므로 프로젝트 실패는 우리에게도 책임이 있고 나쁜 코드로 인한 실패는 더더욱 책임이 크다.
✅ 깨끗한 코드
- 깨끗한 코드와 나쁜 코드를 구분할 줄 안다고 깨끗한 코드를 작성할 줄 아는 것은 아님
- '코드 감각'이 있는 개발자는 좋은 코드와 나쁜 코드를 구분하고 절제와 규율을 적용해 나쁜 코드를 좋은 코드로 개선할 수 있는 방법을 생각한다.
1장에서는 노련한 프로그래머들이 생각하는 깨끗한 코드를 소개하고 저자의 생각을 소개하고 있다.
- 유명하고 노련한 프로그래머들이 생각하는 깨끗한 코드란?
- 비야네 스트롭스트룹
- 보기에 즐거운 코드
- 효율적인 코드(속도, CPU 자원을 낭비하지 않는)
- 세세한 사항까지 꼼꼼하게 처리하는 코드
- 한가지에 집중(너무 많은 일을 하려다가 의도가 뒤섞이고 목적이 흐릿해질 수 있음)
- 그래디 부치
- 가독성 강조
- 명쾌한 추상화
- 코드는 추측이 아니라 사실에 기반해야 한다.
- 반드시 필요한 내용만 담아야 함
- 데이브 토마스
- 가독성 강조
- 다른 사람이 고치기 쉬운 코드
- 테스트 케이스가 없는 코드는 깨끗한 코드가 아니다.
- 마이클 페더스
- 론 제프리스
- 워드 커닝햄
- 읽으면서 짐작한 대로 돌아가는 코드
- 명백하고 단순한 코드
- 저자가 생각하는 깨끗한 코드란?
- 읽기 쉬운 코드
- 우리는 주변 코드를 읽으면서 새 코드를 짠다. 기존 코드를 읽어야 새 코드를 짜기 쉽다.
- 지속적으로 개선해야 함(깨끗한 코드를 유지해야 함)
이 책은 좋은 코드와 나쁜 코드를 소개하고, 나쁜 코드를 좋은 코드로 바꾸는 방법도 소개한다. 다양한 경험적 교훈, 체계, 기법, 예제도 보여준다. 이러한 정보들로 가득하지만 이 책을 읽는다고 뛰어난 프로그래머가 된다는 보장은 없다. 독자에게 달려있다.
이 책을 읽으면서 연습을 해야한다!!