좋은 코드와 나쁜 코드를 구분하는 방법좋은 코드를 작성하는 방법과 나쁜 코드를 좋은 코드로 바꾸는 방법좋은 이름, 좋은 함수, 좋은 객체, 좋은 클래스를 작성하는 방법가독성이 높아지도록 코드 형식을 맞추는 방법코드 논리를 흩뜨리지 않고서 오류 처리를 완벽하게 구현하는
코드를 적을 때도 장인 정신을 가져야 한다.장인 정신을 익히는 과정은 두 단계로 나뉜다. 바로 이론과 실전이다. 첫째, 장인에게 필요한 원칙, 패턴, 기법, 경험이라는 지식을 습득해야 한다. 둘째, 열심히 일하고 연습해 지식을 몸과 마음으로 체득해야 한다.깨끗한 코드를
맥락이 코드 자체에 명시적으로 드러나도록 이름에 정보를 함축하라.이름은 다음 정보를 모두 담아야 한다. 변수(혹은 함수나 클래스)의 존재 이유는? 수행 기능은? 사용 방법은?이름 d는 아무 의미도 드러나지 않는다. 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이
"함수를 만드는 첫째 규칙은 '작게!'다. 함수를 만드는 둘째 규칙은 '더 작게!'다." 각 함수가 너무나도 명백하게 이야기 하나를 표현하고, 다음 무대를 준비 해야 한다.if문, else문, while문 등에 들어가는 블록은 한 줄 이어야 한다. ⇒ 여기서 함수 호출
나쁜 코드에 주석을 달지 마라. 새로 짜라. 주석은 기껏해야 필요악이다.우리는 코드로 의도를 표현하지 못해 주석을 사용한다. 주석은 언제나 실패를 의미한다.주석은 오래될수록 코드에서 멀어진다.부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. 진실은 한곳에만 존재한다
뚜껑을 열었을 때 독자들이 코드가 깔끔하고, 일관적이며, 꼼꼼하다고 감탄하면 좋겠다.질서 정연하다고 탄복하면 좋겠다. 모듈을 읽으며 두 눈이 휘둥그래 놀라면 좋겠다.전문가가 짰다는 인상을 심어주면 좋겠다.프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. 코드 형식
객체는 동작을 공개하고 자료를 숨긴다. 그래서 기존 동작을 변경하지 않으면서 새 객체 타입을 추가하기 쉬운 반면, 기존 객체에 새 동작을 추가하기는 어렵다.자료 구조는 별다른 동작 없이 자료를 노출한다. 그래서 기존 자료 구조에 새 동작을 추가하기는 쉬우나, 기존 함수
깨끗한 코드와 오류 처리는 확실히 연관성이 있다. 상당 수 코드 기반은 여기저기 흩어진 오류 처리 코드 때문에 실제 코드가 하는 일을 파악하기가 거의 불가능하다.오류 처리는 중요하지만, 오류 처리 코드로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드가 아니다.
시스템에 들어가는 모든 소프트웨어를 직접 개발하는 경우는 드물다. 때로는 패키지를 사고, 때로는 오픈 소스를 이용한다. 때로는 사내 다른 팀이 제공하는 컴포넌트를 사용한다. 어떤 식으로든 이 외부 코드를 우리 코드에 깔끔하게 통합해야만 한다.이 장에서는 소프트웨어 경
실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.테스트 코드는 실제 코드 못지 않게 중요하다. 깨끗한 단위 테스트가
표준 자바 관례순차적으로 내려가는 추상화 단계1\. static, public 상수2\. private 변수3\. private 인스턴스 변수4\. public 함수5\. private 함수캡슐화 변수와 유틸리티 함수는 가능한 private으로 하는 것이 낫다.캡슐화
깨끗한 코드를 구현하면 낮은 추상화 수준에서 관심사를 분리하기 쉬워진다.높은 추상화 수준, 즉 시스템 수준에서도 깨끗함을 유지하는 방법을 살펴본다.SW 시스템은 애플리케이션 객체를 제작하고 의존성을 서로 '연결'하는 준비 과정과준비 과정 이후에 이어지는 런타임 로직을
우수한 설계의 창발성을 촉진하는 단순한 설계 규칙 네 가지모든 테스트를 실행한다.중복을 없앤다.프로그래머 의도를 표현한다.클래스와 메서드 수를 최소로 줄인다.위의 네 가지를 착실하게 따르기만 우수한 설계가 나오며, 코드 구조와 설계를 파악하기 쉬워진다.테스트 케이스를
객체는 처리의 추상화다. 스레드는 일정의 추상화다.동시성과 깔끔한 코드는 양립하기 어렵다. 동시성은 결합(coupling)을 없애는 전략이다. 즉, 무엇(what)과 언제(when)을 분리하는 전략이다.무엇과 언제를 분리하면 애플리케이션 구조와 효율이 극적으로 나아진다
깨끗하고 우아한 프로그램을 한 방에 뚝딱 내놓을 수 없다. 프로그래밍은 과학보다 공예에 가깝다.깨끗한 코드를 짜려면 먼저 지저분한 코드를 짠 뒤에 정리해야 한다.먼저 1차 초안을 쓰고, 그 초안을 고쳐 2차 초안을 만들고, 계속 고쳐 최종안을 만들어야 한다.깔끔한 작품