Language/Java
[클린 코드] Ch.1 - 깨끗한 코드
비소_
2022. 8. 1. 15:13
해당 서적을 참고하여 개인 공부용으로 정리한 글입니다.
1. 코드는 왜 중요한가?
- 코드는 그 자체로 요구사항을 상세히 표현하는 수단이다. 따라서 절대 없어질 수 없다.
- 나쁜 코드는 생산성을 떨어트린다.
- 구현에만 신경 쓰고 급급하게 만들면 나쁜 코드가 작성될 확률이 높다.
- 나쁜 코드는 이후에 추가될 코드를 작성하는 프로그래머를 방해한다.
- 기존 버전에서 생긴 버그들이 이후 코드와 맞물려 업데이트를 더디게 한다.
- 르블랑의 법칙(나중은 오지 않는다)에 따라 이후에 수정하려는 생각은 상황을 악화시킬 뿐이다.
- 많은 개발자들이 기한을 맞추기 위해 안좋다는 사실을 알면서도 나쁜 코드를 양산할 수밖에 없다고 느낀다.
- 하지만, 오히려 나쁜 코드로 인해 속도가 늦어지고, 기한을 놓친다.
2. 클린 코드란?
비야네 스트롭스트룹
- 효율적인 코드(자원을 낭비하지 않는 코드)
- 논리가 간단한 코드(읽기 쉬워 보기에 즐거움)
- 오류 처리 등 디테일 한 부분까지 꼼꼼하게 처리한 코드
- 유혹에 빠지지 않는 코드(최적화하겠다고 수정했다가 더 나쁜 코드가 되는 상황을 방지)
- 한 가지에 집중된 코드
그래디 부치
- 단순하고 직접적이어서 가독성이 좋은 코드
- 반드시 필요한 내용만을 담은 코드
데이브 토마스
- 가독성이 좋아 다른 사람도 읽고 고치기 쉬운 코드
- 단위 테스트, 인수 테스트 케이스가 존재하는 코드
- 의미 있는 네이밍(naming)
- 의존성은 최소로
마이클 페더스
- 주의 깊게 작성한 코드(그래서 딱히 손 댈 곳이 없는)
론 제프리스
- 중복이 없는 코드(표현력이 좋아야 한다)
- 간단하게 추상화하기
- 명확히 표현하기
워드 커닝햄
- 코드를 독해하느라 애쓸필요가 없는 코드
- 읽었을 때 이후 상황이 보이는 코드
결론
코드를 작성하는 사람은 저자(Author)다.
즉, 독자와 잘 소통할 책임이 있다.
마음대로 글을 작성하면 시간이 지났을 때 본인도 무슨 의미인지 모른다.
게다가 새 코드를 짜면서 기존 코드를 읽을 수 밖에 없다.
코드를 작성하는 것과 읽는 것의 비율은 무려 1:10이다.
따라서 기존 코드를 읽기 쉽게 만들면 짜기도 쉬워진다.
보이스카우트 규칙 - 캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라
시간이 지나도 언제나 깨끗한 코드를 유지하는 것도 중요하다.
지속적으로 개선하는 것이 전문가 정신이다.
클린 코드와 나쁜 코드를 구분할 줄 안다고 해서 클린 코드를 작성할 수 있는 것은 아니다.
이 책에서는 많은 기교를 알려주고 있지만 연습하지 않는다면 본인 것으로 만들 수 없다.
연습하자!