좋은 품질의 코드란?

Groot·2022년 6월 7일
0

TIL

목록 보기
15/153
post-thumbnail
post-custom-banner

TIL

🌱 난 오늘 무엇을 공부했을까?

📌 좋은 품질의 코드?

📍 3가지 가치

  • 단순성
  • 유연성
  • 가독성

📍 3가지 가치를 매기는 기준

  • 이걸 지켜야 회사는 돈을 줄인다
  • 이걸 지켜야 나의 몸값이 올라간다

📍 무조건 지켜야 하는가

  • 상황에 맞게 최선의 방법을 찾는다
  • 하지만, 훈련은 극단적으로 해본다. -> 현재의 나

📍 OOP

  • 객체지향의 사실과 오해 -> 읽으면 좋다.
  • 객체 속성을 가져오지 말고 객체가 일하도록 시켜라.

📌 SOLID (객체 지향 설계)

📍 SOLID란?

  • 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다
  • SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다.

📍 SOLID 5가지 원칙

  • S: SRP
    • 단일 책임 원칙 (Single responsibility principle)
      한 클래스는 하나의 책임만 가져야 한다.
  • O: OCP
    • 개방-폐쇄 원칙 (Open/closed principle)
      “소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.”
    • 확장을 할때는 기존의 코드를 최대한 건드리지않고 확장하자
    • 기존의 코드를 수정하게되면 연쇄적인 수정을 하지 않을 수 있게 하자
  • L: LSP
    • 리스코프 치환 원칙 (Liskov substitution principle)
      “프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.” 계약에 의한 설계를 참고하라.
    • 부모 클래스의 역할을 자식 클래스에서도 할 수 있어야 한다.
  • I: ISP
    • 인터페이스 분리 원칙 (Interface segregation principle)
      “특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.”
  • D: DIP
    • 의존관계 역전 원칙 (Dependency inversion principle)
      프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다.” 의존성 주입은 이 원칙을 따르는 방법 중 하나다.
    • 상위 수준의 모듈은 하위수준의 모듈에 의존해서는 안된다.

원칙은 가치를 지키키 위해 존재한다.
원칙은 극단적으로 연습해본다.

profile
I Am Groot
post-custom-banner

0개의 댓글