토비의 스프링 1장
1. 오브젝트와 의존관계 1.1 초난감 DAO 자바빈 디폴트 생성자: 자바빈은 파라미터가 없는 디폴트 생성자를 가지고 있어야 한다. 툴이나 프레임워크에서 리플렉션을 이용해 오브젝트를 생성하기 때문에 필요하다. 프로퍼티: 자바빈이 노출하는 이름을 가진 속성, getter/setter로 수정 또는 조회 가능 ...
1. 오브젝트와 의존관계 1.1 초난감 DAO 자바빈 디폴트 생성자: 자바빈은 파라미터가 없는 디폴트 생성자를 가지고 있어야 한다. 툴이나 프레임워크에서 리플렉션을 이용해 오브젝트를 생성하기 때문에 필요하다. 프로퍼티: 자바빈이 노출하는 이름을 가진 속성, getter/setter로 수정 또는 조회 가능 ...
선택된 주제들 14. 테스트와 가독성 각 테스트의 최상위 수준은 최대한 간결해야 한다. 이상적으로는 각 테스트의 입출력이 한 줄의 코드로 설명될 수 있어야 한다. 테스트에 실패하면, 버그를 추적해서 수정하는 데 도움이 될 만한 에러 메시지를 출력해야 한다. 코드의 구석구석을 철저하게 실행하는 가장 ...
코드 재작성하기 10. 상관없는 하위문제 추출하기 일반적인 목적의 코드를 프로젝트의 특정 코드에서 분리하라 주어진 함수나 코드 블록을 보고, 상위수준에서 본 이 코드의 목적은 무엇인가에 대해 생각하라 코드의 모든 줄에 이 코드는 직접적으로 목적을 위해서 존재하는지 목적을 위해서 필요하긴 하지만 목적...
루프와 논리를 단순화하기 7. 읽기 쉽게 흐름제어 만들기 비교 구문을 작성할 때는, 변화하는 값을 왼쪽에 놓고 안정적인 값을 오른쪽에 놓는 편이 좋다 bytes_received < bytes_expected 일반적으로 긍정적이고, 쉽고, 흥미로운 경우를 앞에 놓는 것이 좋다 ...
표면적 수준에서의 개선 2. 이름에 정보담기 특정한 단어 고르기 매우 구체적인 단어를 선택하여 무의미한 단어를 피한다 ex. getPage 보단 FetchPage 또는 DownloadPage 꼭 그래야 하는 이유가 없다면 tmp나 retval 같은 보편적인 이름 피하기 ...
1. 코드는 이해하기 쉬워야 한다 가독성의 기본 정리 코드는 다른 사람이 그것을 이해하는 데 들이는 시간을 최소화하는 방식으로 작성되어야 한다. 분량이 적다고 항상 좋은 것은 아니다. 이해를 위한 시간은 코드의 효율성, 잘 구성된 아키텍처, 테스트의 용이성 등과 충돌되지 않는다. 오히...