클린코드_발자국1

클린코드_발자국1

이름 짓기 포인트

  • 단수, 복수 구분하기

  • 이름 줄이지 않기

    • cnt(x) -> count(O)

    • 단, 관용어처럼 많은 사람들이 사용하는 것 정도는 ok

  • 은어, 방언 사용하지 않기

  • 좋은 코드를 보고 습득하기

    • 비슷한 상황에서 자주 사용하는 단어, 개념 습득(ex. pool, candidate, threshold etc,,)

 

매직넘버, 매직스트링

: 의미를 갖고 있지만, 상수로 추출되지 않은 숫자, 문자열 등을 뜻한다.

=> 상수 추출로 이름을 짓고 의미를 부여함으로써 가독성과 유지보수성이 좋아진다.

ex) 2147483647 => IntegerMaxValue (자바)

 

depth 줄이기 - 중첩 분기문, 중첩 반복문

  • 추상화를 통한 사고 과정의 depth를 줄이는 것이 중요

 

Optional

  • 꼭 필요한 상황에서 반환 타입에 사용

  • Optional을 파라미터로 받지 않도록 하기

  • Optional을 반환받았을 시 최대한 빠르게 해소하기

Optional 해소 방법

  • 분기문을 만드는 isPresent()-get 대신 풍부한 API 사용

  • orElse(), orElseGet(), orElseThrow()의 차이 숙지

 

SOLID

단일 책임 원칙(Single Responsibility, SRP)

  하나의 클래스는 한개의 기능만 가지고 있어야 한다.

개방-폐쇄 원칙(Open-Closed Principle, OCP)

  기능을 수정하거나 추가할 때 기존 코드를 변경하면 안된다. 즉, 한 기능을 수정하거나 추가할 때 다른 코드를 줄줄이 변경하는 경우가 없어야 한다.

리스코프 치환 원칙(Liskov Substitution, LSP)

  상속되는 객체는 반드시 부모 객체를 완전히 대체할 수 있어야 한다.

인터페이스 분리 원칙(Interface Segregation, ISP)

  여러개의 구체적인 인터페이스를 사용하더라도 자신이 사용하지 않는 인터페이스로부터 영향받지 않게 자신이 사용하는 메서드에만 의존해야한다.

의존 역전 원칙(Dependency Inversion, DIP)

  무언가에 의존할 때 구체화된 클래스가 아닌 추상 클래스나 인터페이스에 의존해야한다.

 

 

 

 

 

 

 

 

 

 

 

 


강의 참고함

댓글을 작성해보세요.

채널톡 아이콘