13장: 나쁜 코드를 식별 가능하게 만들기
13장: 나쁜 코드를 식별 가능하게 만들기 나쁜 코드를 딱 봐도 않좋아 보이게 만들어 품질의 수준을 명확히 표시하는 방법 안티 리팩터링 나쁜 코드에 대처하는 자세 코드를 원하는 수준으로 리팩터링하지 못할 때가 많다 이런 상황에서 끔찍하지만 않게 약깐의 리팩터링을 수행하기도 한다 하지만 이렇게 하는것은 실수다 나쁜 코드를
13 posts
13장: 나쁜 코드를 식별 가능하게 만들기 나쁜 코드를 딱 봐도 않좋아 보이게 만들어 품질의 수준을 명확히 표시하는 방법 안티 리팩터링 나쁜 코드에 대처하는 자세 코드를 원하는 수준으로 리팩터링하지 못할 때가 많다 이런 상황에서 끔찍하지만 않게 약깐의 리팩터링을 수행하기도 한다 하지만 이렇게 하는것은 실수다 나쁜 코드를
12장: 최적화 및 일반화 회피 성능 최적화와 일반화는 프로그래머가 하는 두가지 게임으로 도움이 되기보다 큰 상처를 입히는 경우가 많다 일반화 해야 되는것은 컨텍스트뿐 단순성 추구 단순함을 추구하는것은 소프트웨어 개발의 이상 중 하나 인간의 인지능력은 제한적이기 때문에 단순함이 필수 불변속성을 활용하는 최적화 단순함을 희
11장: 코드 구조 따르기 소프트웨어는 현실 세계의 한 측면에 대한 모델 입니다 범위와 출처에 따른 구조 분류 구조의 분류를 4가지로 나눈다 딤간 팀내 코드에 있는 경우 사람에 있는 경우 매크로 아키텍처는 팀 간 구조에 관한 것 마이크로 아키텍처는 팀 내 구조에 관한것 조직 구성과 그 조직이 만든 시스템 구조는 닮는 경향
10장: 코드 추가에 대한 두려움 떨쳐내기 코드 추가가 두려운 경우는 비현실적인 목표나 코드가 비용을 추가해서이다 불확실성 받아들이기: 위험 감수 겁을 먹으면 효과적으로 일할 수 없다. 지식을 구축하는 가장 효과적인 방법은 실험이지만 거기에는 요기가 필요하다 두려움 극복을 위한 스파이크 사용 스파이크는 자신감과 함께 첫
9장: 코드 삭제의 미학 시간이나 노력을 들였기 때문에 어떤 것에 가치를 부여하는 것을 메몰 비용의 오류(sunk cost fallacy)라고 합니다. 단 한 가지만 말하라면 바로 적은 것이 더 낫다 다음 시대는 코드를 지우는 시대일 것이다 우리는 아직 코드 삭제에 익숙하지 않는다 이것이 다음에 해결해야 할 큰 과제 라고
8장: 주석 자제하기 메서드 내부에 있으면서 javadoc과 같은 외부도구에서 사용하지 않는 주석을 대상으로 함 주석을 없에는것이 좋을수 있는 이유 코드가 명확하고 좋은 타입명과 변수명을 사용하는 경우 주석은 컴파일러가 확인하지 않으므로 특히 코드가 수정된 후에는 주석이 맞다고 보장할 수 없다 주석이 스멜을 가진 코드 위
7장: 컴파일러와의 협업 컴파일러에 익숙해지면 컴파일러와 함께 정확성에 대한 책임을 공유함으로써 컴파일러를 팀원으로 받아들이고 컴파일러가 소프트웨어를 제대로 빌드하는데 도움이 되게 해야 된다 컴파일러에 대해 알아보기 컴파일러는 의심이 가면 물어보라 라는 일번적인 관용구를 따른다 약점: 정지 문제는 컴파일 시 알 수 있는
6장: 데이터 보호 데이터와 기능에 대한 접근을 제한하는 캡슐화에 초점을 맞춰 불변속성이 지역에만 영향을 주게 만드는데 중점 getter 없이 캡슐화하기 규칙: getter와 setter를 사용하지 말 것 부울(Boolean)이 아닌 필드에 setter나 getter를 사용하지 말 것 필드를 비공개로 하는 것의 가장 큰
5장: 유사한 코드 융합하기 유사한 클래스 통합하기 리팩터링 패턴: 유사 클래스 통합 일련의 상수 메서드를 공통으로 가진 두개 이상의 클래스에서 이 일련의 상수 메서드가 클래스에 따라 다른 값을 반환 할 때마다 이 리팩터링 패턴을 사용해 통합할수 있다 단순한 조건 통합하기 단순한 조건은 통합한다 이건 어떠한 판단을 하지
4장: 타입 코드 처리하기 간단한 if 문 리팩터링 규칙: if 문에서 else를 사용하지 말 것 결정은 어렵다 if문은 검사 로 간주 if else 를 사용하면 의사결정으로 간주 규칙 적용 클래스로 타입 코드 대체 한다 리팩터링 패턴: 클래스로 타입 코드 대체 클래스로 타입 코드를 바꾼다 클래스로 코드 이관하기 클래스로
3장: 긴 코드 조각내기 DRY(Don't Repeat Yourself) KISS(Keep it simple, stupid) 위에 지침을 따라도 코드는 쉽게 지저분해지고 혼란스러울수 있다 메서드 추출로 가독성을 올린다 첫 번째 규칙: 왜 다섯 줄인가? 이 지침을 엄수하는것으로 엄청난 개선이다 규칙: 다섯 줄 제한 메서드는
2장: 리팩터링 깊게 들여다보기 가독성 및 유지보수성 향상 리팩터링 더 나은 코드를 만드는것 코드가 하는 일은 변경하지 않는것 코드 개선 가독성 : 의도를 전달하기 위한 코드의 성질 유지보수성 : 코드를 변경하기 쉽게 만드는 성질 함께 변하는건 함께 있어야 된다(localizing ivariants) 취약성의 근원은 전역
이 책에서 소개된 규칙 다섯중 제한 호출 또는 전달 한가지만 할것 if문은 함수의 시작에만 배치 if문은 else를 사용하지 말것 switch를 사용하지 말것 인터페이스에서만 상속 받을것 순수 조건 사용 구현체가 하나뿐인 인터페이스를 만들지 말것 getter/setter를 사용하지 말것 공통 접사를 사용하지 말것 1장: