1장. 단위 테스트 목표
1장. 단위 테스트 목표단위 테스트를 배우는 것은 테스트 프레임워크나 목 라이브러리등과 같은 기술적인 부분을 익히는 것에 그치지 않는다 단위 테스트를 매우 많이 작성하더라도 많은 버그와 유지비로 프로젝트 진행이 느려지게 된다 단위 테스트 현황대부분의 프로그래머는 단위 ...
Read more
13장: 나쁜 코드를 식별 가능하게 만들기
13장: 나쁜 코드를 식별 가능하게 만들기나쁜 코드를 딱 봐도 않좋아 보이게 만들어 품질의 수준을 명확히 표시하는 방법 -> 안티 리팩터링 나쁜 코드에 대처하는 자세코드를 원하는 수준으로 리팩터링하지 못할 때가 많다 이런 상황에서 끔찍하지만 않게 약깐의 리팩터링을 ...
Read more
12장: 최적화 및 일반화 회피
12장: 최적화 및 일반화 회피성능 최적화와 일반화는 프로그래머가 하는 두가지 게임으로 도움이 되기보다 큰 상처를 입히는 경우가 많다 일반화 해야 되는것은 컨텍스트뿐 단순성 추구단순함을 추구하는것은 소프트웨어 개발의 이상 중 하나 인간의 인지능력은 제한적이기 때문에 단 ...
Read more
11장: 코드 구조 따르기
11장: 코드 구조 따르기소프트웨어는 현실 세계의 한 측면에 대한 모델 입니다 범위와 출처에 따른 구조 분류구조의 분류를 4가지로 나눈다 딤간 팀내 코드에 있는 경우 사람에 있는 경우 매크로 아키텍처는 팀 간 구조에 관한 것마이크로 아키텍처는 팀 내 구조에 관한것 ...
Read more
10장: 코드 추가에 대한 두려움 떨쳐내기
10장: 코드 추가에 대한 두려움 떨쳐내기코드 추가가 두려운 경우는 비현실적인 목표나 코드가 비용을 추가해서이다 불확실성 받아들이기: 위험 감수겁을 먹으면 효과적으로 일할 수 없다. 지식을 구축하는 가장 효과적인 방법은 실험이지만 거기에는 요기가 필요하다 두려움 극복을 ...
Read more
9장: 코드 삭제의 미학
9장: 코드 삭제의 미학시간이나 노력을 들였기 때문에 어떤 것에 가치를 부여하는 것을 메몰 비용의 오류(sunk-cost fallacy)라고 합니다. 단 한 가지만 말하라면 바로 적은 것이 더 낫다 다음 시대는 코드를 지우는 시대일 것이다우리는 아직 코드 삭제에 익숙하 ...
Read more
8장: 주석 자제하기
8장: 주석 자제하기메서드 내부에 있으면서 javadoc과 같은 외부도구에서 사용하지 않는 주석을 대상으로 함 주석을 없에는것이 좋을수 있는 이유 코드가 명확하고 좋은 타입명과 변수명을 사용하는 경우 주석은 컴파일러가 확인하지 않으므로 특히 코드가 수정된 후에는 주석 ...
Read more
7장: 컴파일러와의 협업
7장: 컴파일러와의 협업컴파일러에 익숙해지면 컴파일러와 함께 정확성에 대한 책임을 공유함으로써 컴파일러를 팀원으로 받아들이고 컴파일러가 소프트웨어를 제대로 빌드하는데 도움이 되게 해야 된다 컴파일러에 대해 알아보기컴파일러는 의심이 가면 물어보라 라는 일번적인 관용구를 ...
Read more
6장: 데이터 보호
6장: 데이터 보호데이터와 기능에 대한 접근을 제한하는 캡슐화에 초점을 맞춰 불변속성이 지역에만 영향을 주게 만드는데 중점 getter 없이 캡슐화하기규칙: getter와 setter를 사용하지 말 것부울(Boolean)이 아닌 필드에 setter나 getter를 사용 ...
Read more
5장: 유사한 코드 융합하기
5장: 유사한 코드 융합하기유사한 클래스 통합하기리팩터링 패턴: 유사 클래스 통합일련의 상수 메서드를 공통으로 가진 두개 이상의 클래스에서 이 일련의 상수 메서드가 클래스에 따라 다른 값을 반환 할 때마다이 리팩터링 패턴을 사용해 통합할수 있다 단순한 조건 통합하기단순 ...
Read more