오늘 5월1일 Five Lines of Code 나홀로 스터디 첫날이다.앞으로 한달동안 매일 야금야금 책 파먹기! 홧팅이 장의 주요 내용리팩터링 구성요소 이해일상 업무에 리팩터링 도입리팩터링에 있어 안전의 중요성1부의 핵심 예제가장 단순한 형태의 리팩터링읜 '기능을 변
이번 장에서 다룰 내용가독성을 통한 의도 전달유지보수성 개선을 위한 불변속성(invariant) 지역화개발 속도 향상을 위한, 추가(addition)를 통해 변경 가능하게 만들기리팩터링의 일상 업무화리팩터링이 무엇이며 그것이 왜 기술적 관점에서 중요한지에 대한 튼튼한
이번 장에서 다룰 내용다섯 줄 제한(Five Lines)으로 지나치게 긴 메서드 식별하기세부 사항을 보지 않고 코드 작업하기메서드 추출(Extract method)로 긴 메서드 분해하기호출 또는 전달, 한 가지만 할것(Either Call Or Pass)으로 추상화 수
이번 장에서 다룰 내용 if 문에서 else를 사용하지 말것 switch를 사용하지 말 것 으로 이른 바인딩 제거하기 클래스로 타입 코드 대체와 클래스로의 코드 이관으로 if문 제거하기 메서드 전문화로 문제가 있는 일반성 제거하기 인터페이스에서만 상속받을 것으로 코드간
이번 장에서 다룰 내용 유사 클래스 통합하기 조건부 산술로 구조 노출하기 간단한 UML 클래스 다이어그램 이해하기 전략 패턴의 도입으로 유사 코드 통합하기 구현체가 하나뿐인 인터페이스를 만들지 말 것으로 어지러움 정리하기 5.1 유사한 클래스 통합하기 이전의 경우와
이번 장에서 다룰 내용 getter와 setter를 사용하지 말 것으로 캡슐화 강제하기 getter와 setter 제거하기로 getter 제거 공통 접사를 사용하지 말 것을 위한 데이터 캡슐화 사용 순서 강제화로 불변속성 제거 클래스는 동일한 데이터에 대한 기능을 결
이번 장에서 다룰 내용 컴파일러의 장단점 이해 컴파일러의 장점을 활용한 불변속성 제거 컴파일러와 책임 분담 컴파일러는 코드를 높은 수준의 언어에서 낮은 수준의 언어로 변환할 뿐만 아니라 여러 속성의 유효성을 검사하고 프로그램을 실행할 때 특정 오류가 발생하지 않도록
이번 장에서 다룰 내용 주석의 위험성 이해하기 가치를 더하는 주석 구별하기 다양한 유형의 주석 처리하기 "코드가 표현할 수 없는 것만 주석으로 처리하십시오" 케블린 헤니 8.1 오래된 주석 제거 오래된 주석은 작성됐을 당시에는 의도된 것이지만 코드베이
이번 장에서 다룰 내용 코드가 개발 속도를 어떻게 늦추는지 이해하기 우발적인 낭비를 방지하기 위한 한계 설정하기 스트랭글러 무화과 패턴으로 전환 처리하기 스파이크 및 스태빌라이즈 패턴으로 낭비 최소화 하기 도움이 되지 않는 모든 것을 제거하기 9.1 다음 시대는 코드
이번 장에서 다룰 내용 코드 추가에 대한 두려움의 증상 코드 추가에 대한 두려움 극복 코드 중복의 장단점 이해 이전 버전과의 호환성 보장 기능 토글로 위험 낮추기 코드를 추가하는 것이 수정하는 것보다 안전하다는 것을 인식하고, 무엇보다도 코드 복제 또는 확장을 통해
11장 너무 이해하기 어렵다... 이번 장에서 다룰 내용 제어 흐름에 행위 인코딩하기 행위를 데이터 구조로 옮기기 데이터에 행위 인코딩하기 코드에서 활용되지 않는 구조 식별 11.1 범위와 출처에 따른 구조 분류 소프트 웨어 개발에서는 여러 유형의 구조(인색 가능
이번 장에서 다룰 내용 일반성을 최소화해서 커플링 최소화하기 불변속성 측면에서 최적화 바라보기 최적화를 통해 취약성 관리하기 성능 최적화와 일반화는 프로그래머가 하는 두 가지 게임으로, 도움이 되기보다 큰 상처를 입히는 경우가 많다. 최적화라고 하면 코드 처리량을 늘