리액티브 코드 스타일

Jinhan Choi
Dec 24, 2020

--

클린하게 작성하기

  1. 연산자 중심으로 코드 작성
  2. map. flatMap의 함수 간결하게 (복잡하면 분리)
  3. 연산자는 원래 목적에서 벗어나지 않는 범위에서 사용
    map{
    log.info(….)
    it.doSomething()
    } -> bad case
    doOnNext{
    log.info(…)
    }.map { … }
  4. 데이터 클래스에는 Publisher 타입이 아닌것 사용하기
    Mono, Flux는 연산을 추상화 한것이지 데이터 타입이 아니다.
  5. Publisher의 null 타입은 Mono.empty
  6. Mono Flux 가 중첩되면 메서드 레퍼런스를 활용해라
  7. Collection API와 겹치지 않게.. (map,같은 것들 이름이 같아서 혼란을 줄수 있음)
  8. 변수명에 Mono, Flux 명시해주기 — userMono, userFlux
  9. 명시적 subscribe는 신중하게 -> 엔지니어가 모르는 장기간 돌게되는 스레드를 양산할 가능성이 크다.
  10. 높은 동시성은 flatMap을 중심으로 이루어짐. delayElement같은걸 사용하기보단, flatMapSequential, concatMap 등을 확인하고 차이점을 인지하고 사용하라.

누군가 작성한 내용을 보고 공감되고, 규칙처럼 세겨두면 좋을거 같아서 남김.

--

--

No responses yet