일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- java
- 토비의스프링3.1
- DispatcherServlet
- FunctionalInterfaces
- 컴퓨터시스템
- Immutable
- 클린코드
- 프록시
- ApplicationContext
- springboot
- 링커
- ORM
- hibernate
- String
- lambda
- Kotlin for Java Developers
- exception
- springwebmvc
- 토비의스프링
- DesignPattern
- 메이븐
- gradle
- AutoConfiguration
- 자바
- beanfactory
- JPA
- 링킹
- Spring
- IOC
- 빌드툴
- Today
- Total
목록프로그래밍/리팩터링 (2)
엔지니어로 가는 길
속 디미터 법칙에 대한 내용을 정리한 글이다. 디미터 법칙 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙이다. 구체적으로 예를 들자면 어떤 클래스 C의 메서드 M에서는 아래와 같은 메서드만 호출해야 한다. 클래스 C의 메서드 클래스 C의 인스턴스 변수로 저장된 객체의 메서드 메서드 M 안에서 생성한 객체의 메서드 메서드 M의 인자로 넘어온 객체의 메서드 아래의 코드를 살펴보자. ctxt.getOptions().getScratchDir().getAbsolutePath(); // 아파치 프레임워크 속 코드 만약 위의 코드에서 ctxt가 객체라면(자료 구조가 아니라) 이는 디미터 법칙을 어긴 것이다. 메서드 체이닝이 중요한 것이 아니다. 디미터 법칙을 어겼는지를 결정하는 요소는 ctxt, Opti..
클린 코드에 쌓인 먼지를 털어낸 뒤 다시 읽기 시작했다. 저자가 서문에서 이 책은 가볍게 읽을 책이 아니고 앞으로 갔다가 뒤로 갔다가 하면서, 많은 노력을 들여 코드를 최대한 이해하려고 해야 한다고 신신당부했다. 그렇게 읽어보려고 한다. 90p에 보면 GeneratePrimes 클래스가 나쁜 버전으로 주어지고, 이를 리팩터링 한 결과를 다음 페이지에 보여주고 있다. 그냥 보는 것보다는 나라면 어떻게 고칠지 생각해보고, 실제로 고쳐보고, 정답(?)과 비교해보는 게 더 좋을 것 같아서 한 번 리팩터링을 해보았다. 먼저 나쁜 버전 원본이다. public class GeneratePrimes { public static int[] generatePrimes(int maxValue) { if (maxValue >..