-
[클린코드] 깨끗한 코드📚 개발 도서/클린코드 2023. 4. 18. 20:17
코드가 존재하리라
코드는 요구사항을 표현하는 언어이다
- 언어는 요구사항에 가깝게 만들 수 있다.
- 요구사항에서 정형구조를 뽑아낼 수 있는 도구를 만들 수 있다.
나쁜 코드
회사가 망한 원인은 바로 나쁜 코드 탓이었다.
- 버그가 남아있고, 프로그램이 죽는 횟수가 늘고,
- 출시하기에 바빠 코드를 마음대로 짜고, 기능을 추가할수록 엉망이 되어갔다.
고행(wading)
나쁜 코드를 헤쳐나간다.
르블랑의 법칙 나중은 결코 오지 않는다.
나중에 손보겠다고 한 코드와 돌아간다는 사실에 안도감을 느끼며 위로함 → 나중은 결코 오지 않는다.
나쁜 코드로 치르는 대가
나쁜 코드가 쌓일수록 팀 생산성이 떨어진다.
태도
“우리에게”라는 단어가 자주 나온다
좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다.
원초적 난제
나쁜 코드를 양산하면 기한을 맞추지 못한다.
기한을 맞추는 방법 → 빨리 가는 방법 → 언제나 코드를 최대한 깨끗하게 유지하는 습관
그럼에도 기한을 맞추려고 나쁜코드를 짠다 → 빨리 가려고 시간을 들이지 않는다
깨끗한 코드라는 예술?
깨끗한 코드가 무엇인지 모르면 깨끗한 코드를 만들려고 애써봤자 소용이 없다.
깨끗한 코드와 나쁜 코드를 구분할 줄 안다고 깨끗한 코드를 작성할 줄 안다는 뜻은 아니다.
깨끗한 코드: 코드 감각 + 절제와 규율
코드 감각이 있으면 좋은 코드와 나쁜 코드를 구분한다. 또한 나쁜 모듈을 보면 좋은 모듈로 개선할 방안을 떠올린다.
깨끗한 코드란?
- 보기에 즐거운 코드 (by 비야네 스트롭스트룹 (Biarne Stroustrup))
- 나쁜 코드는 나쁜 코드를 유혹한다. 나쁜 코드를 고치면서 오히려 더 나쁜 코드를 만든다.
- 깨끗한 코드는 한 가지에 집중한다.
- 세세한 사항까지 꼼꼼하게 처리하는 코드(메모리 누수, 경쟁 상태, 일관성 없는 명명법)
- 가독성: 잘 쓴 문장처럼 읽힌다. (by 그래디 부치 (Grady Booch))
- 명쾌한 추상화: 코드는 추측이 아니나 사실에 기반해야 한다.
- 다른 사람이 고치기 쉬운 코드 (by '큰(big)' 데이브 토마스 (Dave Thomas))
- 테스트 케이스 존재
- 큰 코드보다 작은 코드에 가치를 둔다. 작을수록 좋다.
- 문학적인 코드: 인간이 읽기 좋은 코드
- 주의 깊게 짜놓은 작품 (by 마이플 페더스 (Michael Feathres))
- 중복이 없는 코드 (by 론 제프리스 (Ron Jeffries))
- 클래스, 메서드, 함수 등을 최대한 줄인 코드
- 집합에서 특정 항목을 찾아 추상메서드나 추상클래스를 만들어 실제 구현을 감싼다.
- 읽으면서 놀랄 일이 없는 코드 (by 워드 커닝햄 (Ward Cunningham))
코드를 독해하느라 머리를 쥐어짤 필요가 없어야 한다. - 언어를 단순하게 만드는 열쇠는 프로그래머이다.
우리들 생각
새 코드를 짜면서 우리는 끊임없이 기존 코드를 읽는다 (읽는 시간 : 짜는 시간 = 10 : 1을 훌쩍 넘는다)
→ 읽기 쉬운 코드가 매우 중요하다.
기존 코드를 읽어야 새 코드를 짜므로 읽기 쉽게 만들면 사실은 짜기도 쉬워진다.
보이스카우트 규칙
코드는 시간이 지나도 언제나 깨끗하게 유지해야 한다. 시간이 지날수록 코드가 좋아지는 프로젝트를 작업한다고 상상하자.
연습해, 연습
반응형'📚 개발 도서 > 클린코드' 카테고리의 다른 글
[클린코드] 객체와 자료구조 (0) 2023.07.16 [클린코드] 시스템 (0) 2023.07.01 [클린코드] 클래스 (0) 2023.06.15 [클린코드] 함수 (0) 2023.05.07 [클린코드] 의미 있는 이름 (0) 2023.04.29