변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫지만 반드시 숨겨야한다는 법칙도 없다. 하지만 캡슐화를 풀어주는 결정은 언제나 최후의 수단이다.클래스는 작게 또 작게, 매우 작게 만들어야한다.클래스 이름은 해당 클래스의 크기를 결정한다.SRP(Single Respo
TDD 세가지 법칙실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.지저분한 테스트 코드는 테스트를 안하는 것보다 못
오류 코드보다 예외를 사용해라try 블록은 트랜잭션과 비슷하다. try 블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 한다.확인된 예외는 OCP를 위반하고 이것은 하위 단계에서 코드를 변경하면 상위 단계 메서드 선언부 전부를 고쳐야