
클린코드_발자국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)
↪ 무언가에 의존할 때 구체화된 클래스가 아닌 추상 클래스나 인터페이스에 의존해야한다.
강의 참고함
댓글을 작성해보세요.