Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- 키클락
- Serial GC
- Java
- Resilinece4j
- thread
- 디자인패턴
- JPA
- 디자인 패턴
- 배치
- Spring Cloud Netfilx Eureka
- java 정렬
- 스프링 배치
- 멀티스레드
- The law of Demeter
- MSA
- Action Pattern
- 타입스크립트
- 스레드
- Spring Boot Actuator
- TypeScript
- saga pattern
- 알고리즘
- 체인 패턴
- Transaction Pattern
- spring batch
- 생산자 소비자 패턴
- zipkin
- spring cloud
- 사가 패턴
- Parallel Old GC
Archives
- Today
- Total
PSD( Private-Self-Development )
최소 지식 원칙( 데메테르의 법칙 ) 본문
최소 지식
복잡하게 얽혀 있는 서브 시스템의 어떤 부분을 수정할 경우 관련된 다른 부분도 수정해야 하는 경우가 있다.
이때, 어느 하나를 수정하기 위해서 관련된 많은 정보를 알고 있어야 한다.
이처럼 어떤 작업을 할 때 많은 지식이 있어야 한다면 코드를 수정하기 힘들어진다.
이는 곧 진입 장벽이 되며, 이전 회사의 코드 또한 같은 문제를 가지고 있었다.
때문에 최소 지식만 적용해 객체의 사용 작용을 설정해야 한다.
HOW
1. 객체의 메서드 호출 시 단순화하자.
불필요한 객체의 생성 루틴과 재호출을 코드에 삽입하여 코드의 비가독성과 복잡성을 증가시키지 말자.
2. 4가지 규칙을 잘 지키는 객체를 만들자
- 자기 자신만의 객체 사용
- 메서드에 전달된 매개변수 사용
- 메서드에서 생성된 객체 사용
- 객체에 속하는 메서드 사용
예시
@AllArgsConstructor
public class Test {
private Member member; // 이 클래스의 멤버 변수 => 메서드 호출 가능
public call(Key key){
// 메서드 내부 생성 객체 => 메서드 호출 가능
Home home = new Home();
home.call();
// 매개변수 => 메서드 호출 가능
key.call();
// 이 클래스의 멤버 변수 => 메서드 호출 가능
member.call();
// 이 클래스의 구성 요소 => 메서드 호출 가능
this.test();
}
public void test(){}
}
'Backend > 기타' 카테고리의 다른 글
헥사고날 아키텍처(Hexagonal Architecture) (0) | 2024.07.15 |
---|---|
도커( Doker ) (0) | 2024.04.29 |
Nginx 란? (0) | 2023.01.19 |
DDD(Domain Driven Design) (0) | 2022.12.01 |
단위테스트( Unit Test ) 와 테스트 주도 개발( TDD ) (0) | 2022.11.14 |