반응형
제목 : 클린 코드
저자 : 로버트 C. 마틴
범위 : 1장 깨끗한 코드
기억하고 싶은 것
- 궁극적으로 코드는 요구사항을 표현하는 언어라는 사실을 명심한다.
- 우리 모두는 좋은 코드가 중요하다는 사실을 안다. 왜? 오랫동안 나쁜 코드에 시달려왔으니까.
- 회사가 망한 원인은 바로 나쁜 코드 탓이었다.
- 나중에 손보겠다고 생각한 경험이 있다. (중략) 나중은 결코 오지 않는다.
- 나쁜 코드가 쌓일수록 팀 생산성은 떨어진다. 그러다가 마침내 0에 근접한다.
- 좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다.
- 나쁜 코드의 위험을 이해하지 못하는 관리자 말을 그대로 따르는 행동은 전문가답지 못하다.
- 그러니까 빨리 가는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다.
- 깨끗한 코드는 한 가지를 제대로 한다.
- 깨끗한 코드는 의존성을 최소화 한다.
- 깨끗한 코드는 의도를 숨기지 않는다.
- 깨끗한 코드는 다른 사람도 고치기 쉽다.
- 깨끗한 코드는 중복되지 않는다.
- 깨끗한 코드는 짐작한 대로 동작한다.
- 프로그램을 단순하게 보이도록 만드는 열쇠는 언어가 아니라 프로그래머다.
- 코드를 읽는 시간 대 코드를 짜는 시간 비율이 10대 1을 훌쩍 넘는다.
비율이 이렇게 높으므로 읽기 쉬운 코드가 매우 중요하다. - 그러므로 급하다면, 서둘러 끝내려면, 쉽게 짜려면, 읽기 쉽게 만들면 된다.
- 한꺼번에 많은 시간과 노력을 투자해 코드를 정리할 필요가 없다.
변수 이름 하나를 개선, 조금 긴 함수 하나를 분할, 약간의 중복을 제거, if 문 하나 정리하면 충분하다.
떠오르는 생각
- 주체적으로 일하는 전문가라면 좋은 코드를 사수할 수 있어야 한다.
- 깨끗한 코드야말로 더 빨리 가는 유일한 방법이라는 말이 인상 깊다.
(그냥 돌아가게 만드는 것이 가장 빠른 거라고 생각했다.) - 작정하고 리팩토링할 필요는 없다는 것을 알게 되었다.
클린 코드는 그저 습관처럼 눈에 보일 때마다 정리를 하면 된다!
궁금한 것
- '메모리 누수', '경쟁 상태'는 무엇을 뜻하는가?
메모리 누수 : 컴퓨터 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상
경쟁 상태 : 둘 이상의 입력 또는 조작의 타이밍이나 순서 등이 결과값에 영향을 줄 수 있는 상태 - 테스트 케이스는 무엇이고 어떻게 만드는가?
테스트 케이스 : 입력값, 실행조건, 기대 결과로 구성되어 있는 테스트 항목의 명세서 - 작게 추상화한다는 것은 무엇인가?
추상화 : 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것
깨끗한 코드 체크리스트
✅ 한 가지 기능만 수행하는가?
✅ 의존성을 줄여 유지보수가 쉬운가?
✅ 의도가 분명히 보이는가?
✅ 다른 사람도 고치기 쉬운가?
✅ 중복되지 않는가?
✅ 짐작한 대로 동작하는가?
레퍼런스
반응형
'나는 이렇게 본다 > Clean Code' 카테고리의 다른 글
원활한 소통을 장려하는 코드 형식은 무엇일까? (0) | 2022.02.01 |
---|---|
주석은 언제나 실패를 의미한다. (0) | 2022.01.31 |
함수를 어떻게 짜죠? (0) | 2022.01.28 |
의미 있는 이름 (0) | 2022.01.26 |
소프트웨어는 80% 이상이 '유지보수'다 (0) | 2022.01.22 |