주석 C1: 부적절한 정보 C2: 쓸모 없는 주석 C3: 중복된 주석 C4: 성의 없는 주석 C5: 주석 처리된 코드 환경 E1: 여러 단계로 빌드해야 한다 E2: 여러 단계로 테스트해야 한다 함수 F1: 너무 많은 인수 인수는 없는게 가장 좋고, 다음 하나, 그 다음 둘, 그 다음 셋, 넷 이상은 의심 F2: 출력 인수 F3: 플래그 인수 F4: 죽은 함수 일반 G1: 한 소스 파일에 여러 언어를 사용한다 G2: 당연한 동작을 구현하지 않는다 G3: 경계를 올바로 처리하지 않는다 G4: 안전 절차 무시 G5: 중복 G6: 추상화 수준이 올바르지 못하다 어려운 부분이지만 저차원 개념은 파생 클래스에, 고차원 개념은 기초 클래스에 넣는다 세부 구현과 관련된 상수, 변수, 유틸리티 함수는 기초클래스에 넣으면..
cleancode
주석은 나쁜 코드를 보완하지 못한다. 나쁜 코드를 작성하고, 주석으로 이를 설명하는 것은 좋지 않은 방법이다. 나쁜 코드를 작성하고 주석을 작성하는 대신 나쁜 코드를 좋은 코드로 변경하자. 좋은 주석 법적인 주석 정보를 제공하는 주석 의도를 설명하는 주석 의미를 명료하게 밝히는 주석 결과를 경고하는 주석 중요성을 강조하는 주석 공개 API에서 Javadocs 나쁜 주석 주절거리는 주석 같은 이야기를 중복하는 주석 오해할 여지가 있는 주석 의무적으로 다는 주석 이력을 기록하는 주석 있으나 마나 한 주석 저자를 표시하는 주석 주석으로 처리한 코드 과거의 코드를 주석으로 처리하지 말고 삭제하자. 과거 코드는 버전 관리 도구에서 언제든 확인할 수 있다. 주석으로 처리하기보다 커밋 메시지를 더 명확하게 달자. 비..
코드를 작성하면서 변수나 함수, 클래스의 이름을 짓는 것이 쉽지 않음을 매번 느낀다. 전에는 비슷한 일을 함수의 이름을 어떻게 지었지? 이 변수는 복수형인데 그동안 뒤에 s 를 붙였었나? 이전의 클래스랑 비슷한 클래스에서 살짝만 바뀌었는데 이건 어떻게 이름을 짓지? 등과 같은 고민을 수도 없이 했다. 이번 장에서는 이러한 고민들에 조그마한 도움이 될 수 있는 이름 짓는 규칙에 대해 설명을 한다. 의도를 분명히 하라 좋은 이름을 지으려면 시간이 필요하지만, 좋은 이름으로 절약하는 시간이 훨씬 많다. 의도가 명확히 드러나는 코드를 작성해야 한다. 이름만으로도 함수 및 클래스가 하는 일을 더 빨리 파악할 수 있게 도와준다. 개발자들이 코드를 작성하는 시간보다 읽는데 더 많은 시간을 보내므로 이는 개발자의 행복..
나쁜 코드란? 나쁜 코드는 생산성을 크게 낮춘다. 지금 당장 나쁜 코드로 작성하는 것이 더 빠르게 업무를 마칠 수 있을 것이라는 유혹을 줄 수 있지만 이후 유지보수할 시간이 다가오거나 새로운 기능 추가 또는 수정이 필요할 때 나쁜 코드로 인한 대가를 크게 치르게 될 것이다. 실제로 간단한 기능 수정이지만 너무 많은 부분에 의존하고 있어서 쉽게 코드를 건드리지 못하고 아예 새로 만들어야 하는 상황을 겪은 적이 있었다. 이 책에서는 나쁜 코드가 나쁜 코드를 유발한다고 한다. 나쁜 코드는 이후 더 나쁜 코드를 작성하라고 유혹한다. 시간이 없어서 나쁜 코드를 작성했다는 말은 전문가가 아니라는 뜻이다. 진정한 개발자라면, 그리고 전문가라면 최대한 좋은 코드를 작성해야 한다. 그리고 시간이 없다는 것은 핑계다. 가..