inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[워밍업 클럽 2기 BE 클린코드&테스트] - Readable Code 발자국 1주차

Eddy
0

강의 정리

Section 1

쓰기 좋은 코드 << 읽기 좋은 코드

코드를 잘 짠다? 읽기가 좋다~

Section 2

클린 코드의 본질은 : 가독성

프로그램 : 데이터 + 코드

추상과 구체

추상화의 대표적인 행위 : 이름 짓기

적절한 추상화는 코드를 이해하기 쉽게 + 구체를 쉽게 유추

적절한 추상화는 도메인의 문맥 안에서 중요한 정보는 가려내어 남긴다

이름 짓기

단순하지만 고도의 추상화 행위! 굉장히 중요하다!!

1. 단수, 복수 표현하기

2. 이름 줄이지 않기

3. 은어/방언 사용하지 않기

4. 좋은 코드를 보고 습득하기

메서드와 추상화

잘 쓰여진 코드라면, 한 메서드의 주제(기능)는 반드시 하나!

메서드의 이름으로 구체적인 내용을 추상화

메서드 선언부

실습Tip

//cellInputCol로부터 Col을 변환할꺼야
int selectedColIndex = convertColFrom(cellInputCol);

매직넘버, 매직 스트링

Section 3

논리, 사고의 흐름!
범주화를 통한 최소한의 정보로 나타내어 추상화, 가독성을 향상시키자!

Early return

  1. if 문을 메서드로 분리!

  2. if문에 return을 사용 -> 이전 정보를 신경 쓰지 않아도 된다!

  3. Early return을 통해 else의 사용을 지양

depth 줄이기

실습Tip

부정어

추가로 사고를 뒤짚어야 하므로 불편할 수 있다

해피 케이스와 예외처리

  1. 예외 발생 가능성 낮추기

  2. 검증이 필요한 부분은 외부의 데이터 (사용자 데이터는 믿으면 안된다!)

  3. 의도한 예외, 예상하지 못한 예외 구분하기

NULL

Optional

    public T orElse(T other) {
        return value != null ? value : other;
    }
    
    public T orElseGet(Supplier<? extends T> supplier) {
        return value != null ? value : supplier.get();
    }

    public T orElseThrow() {
        if (value == null) {
            throw new NoSuchElementException("No value present");
        }
        return value;
    }

Section 4 객체 지향 패러다임

객체 설계하기

SOLID

1. SRP : Single Responsibility Principle

2. OCP : Open - Closed Principle

3. LSP : Liskov Substiution Principle

4. ISP : Interface Segregation Principle

5. DIP : Dependency Inversion Principle


학습할 도서 목록 정리

백엔드

답변 0