이유와 솔루션으로 정리하는 객체지향 생활체조 원칙
객체지향 생활체조 원칙 소트웍스 앤솔러지 표지 "어떤 멍청이라도 컴퓨터가 이해할 수 있는 코드는 작성할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 작성한다. (Any fool can write
hudi.blog
마틴 파울러의 책 소트웍스 앤솔러지에 나온 9가지 원칙
응집도(cohension), 느슨한 결합(loose coupling), 무중복(zero duplication), 캡슐화(encapsulation), 테스트 가능성(testability), 가독성(readability), 초점(focus)
⭐️ 1. 한 메서드에 오직 한 단계의 들여 쓰기만 한다 ⭐️
" 함수는 한 가지만 하기!!! 한 가지를 잘 하기!!"
while에 if 정도? 2번까지만 허용
" 메소드 추출 " 기법
코드의 일부분을 메소드로 분리하는 것
⭐️ 2. else 예약어(keyword)를 쓰지 않는다.⭐️
조건 else 쓰지 말기!
depth 가 깊어질 수 있기 때문!!
if 절이 중첩되면 코드가 비선형적으로 흐름else 문 내에서 다시 중첩된 코드를 만들 가능성 존재
대신 return 쓰기!
< Early Return 패턴 >
( if else 문도 사용 자체 )
보호 절 ( gaurd clause )
전략 패턴 ( strategy pattern )
널 객체 패턴 ( null object pattern )
switch- case 문 사용 도 똑같은 문제!!
⭐️ 3. 모든 원시값과 문자열을 포장(wrap)한다. ⭐️
원시 타입에 대한 집착 (안티 패턴) ❌
원시타입을 객체로 만들기잘못된 타입 전달 시 컴파일 에러 방지 가능함
⭐️4. 한 줄에 점을 하나만 찍는다. ⭐️
디미터 원칙 : 낯선 이와 이야기하지 말라 / 최소 지식 원칙많은 점 사용 -> 객체가 다른 객체에 깊숙히 관여하고 있음 -> 캡슐화가 깨져있다는 것
"결합도"에 관련한 이야기!
⭐️ 5. 줄여쓰지 않는다(축약 금지). ⭐️
단일 책임 원칙(SRP 원칙)을 위배하지 말기! 많은 일을 하지 않게 -> 그리고 메소드명을 축약하지 않아도 적당한 길이로 만들기.
⭐️ 6. 모든 엔티티(entity)를 작게 유지한다.⭐️
50줄이 넘는 클래스와 파일이 10개 이상인 패키지를 지양
(단일 책임 원칙)SRP 원칙 : 나의 객체는 반드시 하나의 기능만을 수행하는 책임을 갖는다는 원칙
⭐️ 7. 2개를 초과하는 인스턴스 변수를 가진 클래스를 쓰지 않는다.⭐️
⭐️ 8. 제일 클래스(first-class) 콜렉션을 쓴다⭐️
🛸 일급 컬렉션 (First Class Collection) ..ing
junggoldchae-coding.tistory.com
⭐️ 9. 게터(getter)/세터(setter)/프로퍼티(property)를 쓰지 않는다.⭐️
으허엉 1주차 엄청 썼는데요
묻지 말고 시켜라 원칙 : 객체에게 책임이 있는 작업은 객체에게 직접 시키기
Getter/Setter/Property를 남발하면, 불필요한 객체 내부 구현의 노출로 이어지며 이는 곧 응집도 하락과, 캡슐화의 위반으로 이어짐
앞으로 잘 적용해봐야겠다!!!
띠용하는 게 너무 많다...
'💾 Backend > 우아한 테크코스-프리코스' 카테고리의 다른 글
🛸 커밋 메세지 컨벤션 (0) | 2023.11.01 |
---|---|
🛸 Java 코드 컨벤션 ..ing (0) | 2023.10.31 |
🛸 MVC 패턴 (0) | 2023.10.27 |
🛸 Enum (0) | 2023.10.27 |
🪐우테코 프리코스🪐 - 2주차 과제🔭 (0) | 2023.10.26 |