한줄코딩 발표 210613
클린 코드 10장 클래스
단일 책임 원칙.
클래스나 모듈을 변경할 이유가 단 하나뿐이어야 한다.
책임 == 변경할 이유
단일 책임 원칙을 무시한 예시
class Animal {
constructor(name: string){ }
getAnimalName() { }
saveAnimal(a: Animal) { }
}
단일 책임 원칙을 지키도록 변경
class Animal {
constructor(name: string){ }
getAnimalName() { }
}
class AnimalDB {
getAnimal(a: Animal) { }
saveAnimal(a: Animal) { }
}
변경으로 부터 격리
인터페이스와 추상 클래스를 사용해 구현이 미치는 영향을 격리해야 한다..!
DIP
자신보다 변하기 쉬운 것에 의존하지 말고 변하기 어려운 것에 의존해라.
적용 전
적용 후
클린 코드 11장 시스템
시스템의 제작과 사용을 분리해라.
아래는 사용과 제작을 분리하는 메커니즘들.
메인 분리
팩토리
의존성 주입
ex) 스프링 프레임 워크 : 자바 DI 컨테이너를 제공.
확장.
- 생략.
클린 코드 12장 창발성
창발성 : 하위 계층(구성 요소)에는 없는 특성이나 행동이 상위 계층(전체 구조)에서 자발적으로 돌연히 출현하는 현상
아래 나열은 중요도 순서.
모든 테스트를 실행하라
- 테스트 케이스를 만들고 계속 돌려라.
- 설계 품질이 높아짐.
중복을 없애라
- 중복은 추가 작업, 추가 위험, 불필요한 복잡도를 의미한다.
의도를 표현하라
- 좋은 이름을 선택한다.
- 함수와 클래스 크기를 가능한 줄인다.
- 표준 명칭을 사용한다.
- 단위 테스트 케이스(예제로 보여주는 문서)를 꼼꼼히 작성한다.
클래스와 메소드 수를 최소로 줄여라
- SRP 를 극단으로 적용하면 득보다 실이 많음.
- 목표 : 함수와 클래스의 크기를 작게 유지 & 시스템의 크기도(복잡성) 작게 유지.
- 실용적인 방식을 택해라.
참고자료
10장 참고자료
https://doublem.org/SOLID_SRP_OCP/
https://server-engineer.tistory.com/228
11장 참고자료
https://velog.io/@jwkim/Clean-Code-11%EC%9E%A5-%EC%8B%9C%EC%8A%A4%ED%85%9C
https://tech-interview.tistory.com/119
- 추상팩토리, 팩토리 패턴 관련 자료
https://victorydntmd.tistory.com/300
https://victorydntmd.tistory.com/299
12장 참고자료
https://velog.io/@jwkim/Clean-Code-12%EC%9E%A5-%EC%B0%BD%EB%B0%9C%EC%84%B1
Author And Source
이 문제에 관하여(한줄코딩 발표 210613), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@blueskyi/한줄코딩-발표-210613저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)