본문 바로가기
728x90
반응형

DIP2

클린코드(Clean code) 12장 - 창발성 0. 창발성 : 하위 계층에는 없는 특성이나 행동이 상위 계층/전체 구조에서 자발적으로 돌연히 나타나는 현상. emergence. ex) 개미들의 상호작용 => 개미집 1. 창발적 설계 by 켄트 백 1) 모든 테스트를 실행한다. 모든 테스트를 통과하는 시스템/예측 가능한 시스템을 만들어야 설계 품질이 높아지고, 결합도를 낮추고&응집도를 높일 수 있음 테스트가 안되는 시스템은 검증이 불가능하니 출시해서는 안됨. 2) 중복을 없앤다. 기존 코드 최대한 재활용 하기 (아 찔리는 코드 하나 생각남...) *Template method 패턴 : 알고리즘의 구조를 상위 클래스 메서드에서 정의하고, 하위 클래스에서 세부 알고리즘을 정의 3) 프로그래머의 의도를 표현한다. 이름 잘 짓기 함수/클래스 사이즈를 줄이기 .. 2022. 9. 22. 22:12
객체지향 설계에서 꼭 필요한 SOLID 5대원칙(SRP/OCP/LSP/ISP/DIP) SRP : Single Responsibility Principle, 단일책임 원칙 OCP : Open Closed Principle, 개방-폐쇄 원칙 LSP : Liskov Subtitution Principle, 리스코프 치환원칙 ISP : Interface Segregation Principle, 인터페이스 분리 원칙 DIP : Dependency Inversion Principle, 의존 역전 원칙 의 앞글자를 따서 SOLID 원칙이라고 말한다. 객체지향을 공부하면서 꼭 알아야할 원칙이라고 할 수 있다. 스프링을 공부하면서, 자바 밑단까지 파고 들어가려고 보니 현업에서 정말 안 지켜지고 있는 원칙이 많구나 싶다. 이러니 매년 제도 바뀔때마다 개정 하면서, 매달 마감하면서 코드가 누더기가 되는 걸까.. 2021. 9. 22. 21:49
728x90
반응형