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