이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
CHAPTER 1 클린 코드_1.1 코드 스멜이란 무엇인가요?_1.2 리팩터링은 무엇인가요?_1.3 레시피는 무엇인가요?_1.4 왜 클린 코드인가요?_1.5 가독성, 성능 혹은 둘 다_1.6 소프트웨어 유형_1.7 기계 생성 코드_1.8 이 책에서 사용하는 표현_1.9 디자인 패턴_1.10 프로그래밍 언어 패러다임_1.11 객체 vs. 클래스_1.12 변경성CHAPTER 2 공리 설정_2.0 소개_2.1 왜 모델인가요?_2.2 왜 추상적인가요?_2.3 왜 프로그래밍이 가능해야 하나요?_2.4 왜 부분적인가요?_2.5 왜 설명 가능해야 하나요?_2.6 왜 현실에 관한 것인가요?_2.7 규칙 유추하기_2.8 유일무이한 소프트웨어 설계 원칙CHAPTER 3 빈약한 모델_3.0 소개_3.1 빈약한 객체를 풍성한 객체로 변환하기_3.2 객체의 본질 파악하기_3.3 객체에서 세터 제거하기_3.4 빈약한 코드 생성기 제거하기_3.5 자동으로 구현된 속성 제거하기_3.6 DTO 제거하기_3.7 빈 생성자 완성하기_3.8 게터 제거하기_3.9 객체의 난장판 방지하기_3.10 동적 속성 제거하기CHAPTER 4 기본형 집착_4.0 소개_4.1 작은 객체 생성하기_4.2 기본형 데이터 구체화하기_4.3 연관 배열 재구성하기_4.4 문자열 남용 제거하기_4.5 타임스탬프 구체화하기_4.6 하위 집합을 객체로 구체화하기_4.7 문자열 유효성 검증 구체화하기_4.8 불필요한 속성 제거하기_4.9 날짜 구간 생성하기CHAPTER 5 가변성_5.0 소개_5.1 var를 const로 변경하기_5.2 변수를 가변적이게 선언하기_5.3 본질 변경 금지하기_5.4 변경 가능한 상수 배열 피하기_5.5 지연된 초기화 제거하기_5.6 변경 가능한 상수 고정하기_5.7 부작용 제거하기_5.8 호이스팅 방지하기CHAPTER 6 선언적 코드_6.0 소개_6.1 재사용 변수 범위 좁히기_6.2 빈 줄 제거하기_6.3 버전이 지정된 메서드 제거하기_6.4 이중 부정 제거하기_6.5 잘못 배치된 책임 변경하기_6.6 명시적 반복 대체하기_6.7 설계 결정 기록하기_6.8 매직 넘버를 상수로 바꾸기_6.9 ‘무엇’과 ‘어떻게’ 분리하기_6.10 정규 표현식 문서화하기_6.11 괴상한 조건문 재작성하기_6.12 저급한 메서드 제거하기_6.13 콜백 지옥에서 벗어나기_6.14 올바른 오류 메시지 생성하기_6.15 마법 변환 피하기CHAPTER 7 명명_7.0 소개_7.1 약어 확장하기_7.2 도우미와 유틸리티 이름 변경 및 분리하기_7.3 my-객체 이름 변경하기_7.4 result 변수 이름 변경하기_7.5 타입이 포함된 변수 이름 변경하기_7.6 긴 이름 변경하기_7.7 추상적인 이름 변경하기_7.8 맞춤법 오류 수정하기_7.9 속성에서 클래스명 제거하기_7.10 클래스와 인터페이스에서 첫 글자 제거하기_7.11 basic/do 함수 이름 바꾸기_7.12 복수형 클래스를 단수로 변환하기_7.13 이름에서 Collection 제거하기_7.14 클래스 이름에서 Impl 접두사/접미사 제거하기_7.15 역할에 따라 인수 이름 변경하기_7.16 중복된 매개변수 이름 제거하기_7.17 이름에서 불필요한 컨텍스트 제거하기_7.18 data 명칭 피하기CHAPTER 8 주석_8.0 소개_8.1 주석 처리된 코드 제거하기_8.2 더 이상 사용하지 않는 주석 제거하기_8.3 논리적인 주석 제거하기_8.4 게터 주석 제거하기_8.5 주석을 함수명으로 변환하기_8.6 메서드 내부 주석 제거하기_8.7 주석을 테스트로 대체하기CHAPTER 9 표준_9.0 소개_9.1 코딩 표준 준수하기_9.2 들여쓰기 표준화하기_9.3 대소문자 규칙 통일하기_9.4 영어로 코드 작성하기_9.5 매개변수 순서 통일하기_9.6 깨진 유리창 수정하기CHAPTER 10 복잡성_10.0 소개_10.1 반복되는 코드 제거하기_10.2 설정/구성 및 기능 토글 제거하기_10.3 속성으로 상태 변경하기_10.4 코드에서 교묘함 제거하기_10.5 다중 프라미스 끊기_10.6 긴 협업 체인 끊기_10.7 메서드를 객체로 추출하기_10.8 배열 생성자 관리하기_10.9 폴터가이스트 객체 제거하기CHAPTER 11 블로터_11.0 소개_11.1 너무 긴 메서드 나누기_11.2 과도한 인수 줄이기_11.3 과도한 변수 줄이기_11.4 과도한 괄호 제거하기_11.5 과도한 메서드 제거하기_11.6 너무 많은 속성 나누기_11.7 import 목록 줄이기_11.8 and 함수 나누기_11.9 뚱뚱한 인터페이스 분리하기CHAPTER 12 YAGNI 원칙_12.0 소개_12.1 불필요한 코드 제거하기_12.2 다이어그램 대신 코드 사용하기_12.3 하나의 하위 클래스를 가진 클래스 리팩터링하기_12.4 일회성 인터페이스 제거하기_12.5 디자인 패턴 남용 제거하기_12.6 비즈니스 컬렉션 대체하기CHAPTER 13 빠른 실패_13.0 소개_13.1 재할당 변수 리팩터링하기_13.2 전제 조건 적용하기_13.3 더 엄격한 매개변수 사용하기_13.4 switch 문에서 기본값 제거하기_13.5 순회하는 동안 컬렉션 수정 방지하기_13.6 해시와 동등성 재정의하기_13.7 기능 변경 없이 리팩터링하기CHAPTER 14 if 문_14.0 소개_14.1 우발적 if 문을 다형성으로 대체하기_14.2 이벤트의 플래그 변수 이름 변경하기_14.3 boolean 변수 재구성하기_14.4 switch/case/else if 문 대체하기_14.5 하드코딩된 if 조건문을 컬렉션으로 대체하기_14.6 boolean을 단락 평가 조건으로 변경하기_14.7 암시적 else 추가하기_14.8 조건부 화살표 코드 재작성하기_14.9 무분별한 단락 평가 방지하기_14.10 중첩된 화살표 코드 재작성하기_14.11 조건 검사를 위한 boolean 값 반환 방지하기_14.12 boolean 비교 변경하기_14.13 긴 삼항식에서 추출하기_14.14 비다형성 함수를 다형성으로 변환하기_14.15 동등 비교 변경하기_14.16 하드코딩된 비즈니스 조건 재정의하기_14.17 불필요한 boolean 제거하기_14.18 중첩된 삼항식 재작성하기CHAPTER 15 null_15.0 소개_15.1 null 객체 생성하기_15.2 선택적 체이닝 제거하기_15.3 선택적 속성을 컬렉션으로 변환하기_15.4 실제 객체로 null 대체하기_15.5 null을 사용하지 않고 알려지지 않은 위치 표현하기CHAPTER 16 섣부른 최적화_16.0 소개_16.1 객체 ID 피하기_16.2 섣부른 최적화 제거하기_16.3 비트 단위의 섣부른 최적화 제거하기_16.4 과도한 일반화 줄이기_16.5 구조적 최적화 변경하기_16.6 앵커 보트 제거하기_16.7 도메인 객체에서 캐시 추출하기_16.8 구현에 기반한 콜백 이벤트 제거하기_16.9 생성자에서 쿼리 제거하기_16.10 소멸자에서 코드 제거하기CHAPTER 17 결합도_17.0 소개_17.1 숨겨진 가정을 명시적으로 표현하기_17.2 싱글턴 대체하기_17.3 신 객체 나누기_17.4 확산적 변경 나누기_17.5 특수 플래그 값을 일반값으로 변환하기_17.6 산탄총 수술 제거하기_17.7 선택적 인수 제거하기_17.8 기능에 대한 욕심 방지하기_17.9 중간자 제거하기_17.10 기본 인수를 맨 끝으로 이동하기_17.11 파급 효과 피하기_17.12 비즈니스 객체에서 우발적 메서드 제거하기_17.13 사용자 인터페이스에서 비즈니스 코드 제거하기_17.14 결합을 클래스로 대체하기_17.15 데이터 덩어리 리팩터링하기_17.16 부적절한 친밀성 분리하기_17.17 대체 가능한 객체 대체하기CHAPTER 18 전역_18.0 소개_18.1 전역 함수 구체화하기_18.2 정적 함수 구체화하기_18.3 goto를 구조화된 코드로 대체하기_18.4 전역 클래스 제거하기_18.5 전역 날짜 생성 변경하기CHAPTER 19 계층_19.0 소개_19.1 깊은 상속 끊기_19.2 요요 계층 분리하기_19.3 코드 재사용을 위한 하위 분류 나누기_19.4 is-a 관계를 동작으로 변경하기_19.5 중첩 클래스 제거하기_19.6 격리된 클래스 이름 변경하기_19.7 구상 클래스를 final로 만들기_19.8 클래스 상속 명시적으로 정의하기_19.9 비어 있는 클래스 마이그레이션하기_19.10 섣부른 분류 지연하기_19.11 protected 속성 제거하기_19.12 비어 있는 구현 완성시키기CHAPTER 20 테스트_20.0 소개_20.1 private 메서드 테스트하기_20.2 어서션에 설명 추가하기_20.3 assertTrue를 특정 어서션으로 마이그레이션하기_20.4 모의 객체를 실제 객체로 대체하기_20.5 일반 어서션 다듬기_20.6 불규칙한 테스트 제거하기_20.7 부동 소수점에 대한 어서션 변경하기_20.8 테스트 데이터를 실제 데이터로 변경하기_20.9 캡슐화를 위반하는 테스트 보호하기_20.10 관련 없는 테스트 정보 제거하기_20.11 모든 병합 요청에 대해 커버리지 추가하기_20.12 날짜에 의존하는 테스트 재작성하기_20.13 새로운 프로그래밍 언어 배우기CHAPTER 21 기술 부채_21.0 소개_21.1 프로덕션 종속 코드 제거하기_21.2 결함 목록 제거하기_21.3 경고/엄격 모드 해제 제거하기_21.4 TODO와 FIXME 방지 및 제거하기CHAPTER 22 예외_22.0 소개_22.1 비어 있는 예외 블록 제거하기_22.2 불필요한 예외 제거하기_22.3 예상 가능한 상황을 위한 예외 재작성하기_22.4 중첩된 try/catch 재작성하기_22.5 반환 코드를 예외로 대체하기_22.6 예외 화살표 코드 재작성하기_22.7 최종 사용자로부터 저수준 오류 숨기기_22.8 예외 시도 범위 좁히기CHAPTER 23 메타프로그래밍_23.0 소개_23.1 메타프로그래밍 사용처 제거하기_23.2 익명 함수 재정의하기_23.3 전처리 제거하기_23.4 동적 메서드 제거하기CHAPTER 24 타입_24.0 소개_24.1 타입 검사 제거하기_24.2 참 같은 값 다루기_24.3 부동 소수점을 십진수로 변경하기CHAPTER 25 보안_25.0 소개_25.1 입력값 검열하기_25.2 순차적 ID 변경하기_25.3 패키지 의존성 제거하기_25.4 악의적인 정규 표현식 대체하기_25.5 객체 역직렬화 방지하기
|
Maximiliano Contieri
|
클린 코드를 실무에 어떻게 적용해야 할지 고민하고 있다면,깔끔하게 작성한 코드로 훌륭하게 협업하고 싶다면,개발자라면 꼭 읽어야 할 클린 코드 실습서코드를 작성하는 것은 예술과도 같습니다. 클린 코드를 통해 여러분의 프로그래밍 작품을 더 아름답게 만들어보세요. 이 책은 개발자가 실제 업무에서 직면하는 다양한 문제를 클린 코드의 원칙을 통해 해결하는 방법을 소개합니다. 단순히 좋은 코드와 나쁜 코드를 구분하는 것을 넘어, 실제 개발 환경에서 클린 코드를 구현하고 유지하는 구체적인 방법론을 제공합니다. 자바, 파이썬, PHP, C, 자바스크립트 등 다양한 언어의 예제를 통해 클린 코드의 원칙을 실제로 적용해보고, 가독성이 높고 유지 보수하기 용이한 코드를 작성하는 방법을 배워보세요.누가 이 책을 읽어야 할까요?● 클린 코드를 구현하고 싶은 프로그래머, 소프트웨어 개발자, 아키텍트 등 현업 개발자● 이제 막 개발자의 길에 들어선 초보 개발자, 관련 학부생, 개발자 취업 준비생어떤 내용을 배우나요?● 클린 코드가 개발자에게 왜 필요한지, 실제 업무에 어떻게 적용할 수 있는지 설명합니다.● 구체적인 예제와 실습을 통해 클린 코드의 원칙을 직관적으로 이해할 수 있습니다.● 리팩터링의 기술을 단계별로 터득하고, 코드 스멜을 식별하고 해결하는 방법을 알아봅니다. ● 개발자로서의 성장과 더 나은 코드 작성을 위한 실질적인 지침을 얻을 수 있습니다.이 책은 실무에 바로 적용 가능한 클린 코드 비법을 소개하는 실습서입니다. 이론적인 설명과 실제 예제 코드를 통해 클린 코드 개념을 명확하게 이해해보세요. 이 개념을 여러분의 코드에 직접 적용해보면 클린 코드를 작성하는 스킬이 차근차근 향상될 것입니다. 코드의 품질을 높이고, 유지 보수를 용이하게 하며, 개발자로서의 경쟁력을 강화하고 싶다면 이 책을 통해 클린 코드의 세계로 첫발을 내딛을 차례입니다.
|