[CleanCode] 클린코드 공부하기 - 2 - 함수

Date:

카테고리:

1. 간결하고 안전한 함수 작성

1. SOLID - 객체지향 설계의 5가지 원칙

  • SRP(단일 책임 원칙)

    • 클래스는 하나의 기능만 가짐
    • 어떤 변화에 의해 클래스 변경하는 이유는 하나
    • 변경에 의한 연쇄작용에서 자유로움
    • 가독성 향상 & 유지보수 용이

    하나의 클래스는 하나의 책임만 가져야한다

  • OCP(개방-패쇄 원칙)

    • 변경 비용 최소화 / 확장 비용 극대화
    • 변경/추가사항 발생 => 기존 요소 수정 없이 쉽게 확장
    • 객체지향의 추상화와 다형성 활용

    소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 함

  • LSP(리스코프 치환 원칙)

    • 서브타입은 기반 타입이 약속한 규약 지켜야 함
    • 클래스/인터페이스 상속을 통해 확장성 획득
    • 다형성/확장성을 위해 인터페이스 사용이 더 좋음

    서브타입은 언제나 기반 타입으로 교체할 수 있어야 함

  • ISP(인터페이스 분리 원칙)

    • 최소한의 인터페이스만 구현
    • 여러 클라이언트가 클래스의 특정 부분만 이용하는 상황이면
    • 여러 인터페이스로 분류하여 클라이언트가 필요한 기능만 전달
    • SRP(클래스의 단일 책임) / ISP(인터페이스의 단일 책임)

    자신이 사용하지 않는 인터페이스는 구현하지 말아야 함

  • DIP(의존성 역전 원칙)

    • 하위 모델의 변경이 상위 모델의 변경을 요구하는 위계관계 끊기
    • 추상화를 매개로 메시지 주고 받아 관계를 느슨하게 만듬(실제 사용관계는 그대로)

    상위 모델은 하위 모델에 의존하면 안된다. 둘 다 추상화에 의존해야 한다.
    추상화는 세부 사항에 의존해서는 안된다. 세부사항은 추상화에 따라 달라진다

2. 간결한 함수 작성하기

  • 함수를 작개 쪼갠다
  • 함수 내 추상화 수준을 동일하게 맞춘다

3. 의미가 분명한 이름 짓기

CleanCode 카테고리 내 다른 글 보러가기

댓글 남기기