나쁜 코드 > 나쁜 코드는 고행(wading)이라 부른다. 80년대 후반 킬러 앱 하나를 구현한 회사가 있었는데, 제품 출시 주기가 점점 늘어지더니 얼마 못가 망했다. 회사가 망한 원인은 바로 나쁜 코드 탓이었다. 출시에 바빠 코드를 마구 짰음 기능을 추가할수록 코드는 엉망이됨 결국 감당 불가능해짐 리팩토링을 나중으로 미루고 쓰레기 코드를 작성하면 ...
의도를 분명히 밝혀라 위 변수 d의 의미는 무엇일까? - 유추하기 힘들 것이다. 사실 d의 의미는 단위가 날짜인 경과한 시간이다. 그렇다면 위의 변수명은 어떤가? 해당 변수는 경과한 날짜라는 것이 명확해졌다. 위 90점이 무슨 의미일까? 이제 조건문의 정체가 명확해졌다. 위 함수의 역할은 무엇인가? 플래그 칸들을 가져오는 함수구나! 이처럼 ...
작게 만들어라! 함수는 작을수록 좋다. 첫째 규칙은 '작게!', 둘째 규칙은 '더 작게!'다. 블록과 들여쓰기 if 문, else 문, while 문 등에 들어가는 블록은 한 줄이면 좋다. (대부분 한 줄은 함수 호출) 바깥을 감싸는 함수가 작아질 뿐 아니라, 호출하는 함수의 이름을 적절히 지으면 코드를 이해하기 쉬워진다. 중첩 구조가 생길만큼 ...
주석은 나쁜 코드를 보완하지 못한다 코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. 우리가 할 일은 주석으로 해결하려는 것이 아닌, 근본적으로 코드가 알아보기 힘들다는 것을 고쳐야한다. 코드로 의도를 표현하라! 확실히 코드만으로 의도를 설명하기 어려운 경우가 존재한다. 하지만 몇 초만 더 생각하면 코드로 대다수 의도를 표현할 ...
형식을 맞추는 목적 오랜 시간이 지나 원래 코드의 흔적을 더 이상 찾아보기 어려워도, 맨 처음 잡아놓은 구현 스타일과 가독성은 유지보수 용이성과 확장성에 계속 영향을 미친다. 원래 코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다. 적절한 행 길이를 유지하라 일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다. 독자는 위에서 아래로 읽으므...