stream을 사용하자
for문 보다 가독성 좋은 stream위주로 사용하자.
데드코드 금지
예를 들어 if else 의 경우 필요없는 부분이므로 사용하지 않는다.
JpaRepository에서 get()만 사용하지 않는다.
sometingRepository.get()을 사용하면 정확하게 내가 사용하려는 데이터가 무엇인지 알기 어렵기 때문에 get()보다 ifPresents, orElseThrow 등을 사용한다.
단 sometingRepository.get().getId() 처럼 하나를 꺼내는 경우는 괜찮다.
// 좋지 않다.
somethingRepository.get();
// 좋다.
somethingRepository.get().getId;
Controller의 리턴값이 무엇인지 정확하게 명시하자
내가 리턴해서 endpoint로 보내주는 값이 무엇인지 쉽게 알 수 있도록 표현한다.
// 리턴에 직접 service를 호출해서, 리턴하는게 무엇인지 한 눈에 알기 어렵다.
// BAD!
@PostMapping
public ResponseEntity<PostResponse> newPost(@RequestBody PostCreateRequest request, Authentication authentication) {
return ResponseEntity.ok().body(postService.createPost(request, authentication));
}
// 어떤걸 리턴하는지 한눈에 알 수 있다.
// GOOD~
@PostMapping
public ResponseEntity<PostResponse> newPost(@RequestBody PostCreateRequest request, Authentication authentication) {
PostResponse newPostResponse = postService.createPost(request, authentication);
return ResponseEntity.ok().body(newPostResponse);
}
Controller는 5 - 6줄 이하가 되도록
정말 간단한 로직만 사용하고 프론트에서 값을 넘겨주는 용도로만 사용한다.
// 간단하게 null 인가? 정도의 로직만..
// 더 복잡해지면 서비스에서 비즈니스로직으로 구현
@PostMapping
public ResponseEntity<PostResponse> newPost(@RequestBody PostCreateRequest request, Authentication authentication) {
if (request == null) {
throw new AppException(ErrorCode.INPUT_NOT_FOUND);
}
PostResponse newPostResponse = postService.createPost(request, authentication);
return ResponseEntity.ok().body(newPostResponse);
}
'프로젝트 > 팁' 카테고리의 다른 글
프로젝트 실행시 8080 포트 사용중 해결방법 (0) | 2022.12.27 |
---|---|
프로젝트 작업 시 commit 단계 (0) | 2022.12.21 |