코딩 컨벤션은 Google Java Style Guide를 따른다.
파라미터가 긴 경우,
public ResponseEntity<ResponseDto<BoardResponseDto>> createBoard(
@AuthenticationPrincipal UserDetailsImpl userDetails,
@RequestBody @Valid BoardRequestDto requestDto // 한줄 띄우기!
) {
// 본문 (Body)
}
변수명은 카멜 표기법으로 작성 (userName)
리스트는 변수명 뒤에 List 붙이기
클래스명은 파스칼 표기법으로 작성
DB 컬럼명은 스네이크 표기법으로 작성
DB table 명 : 복수, 소문자
약어 안 쓰기 (불필요하게 줄여쓰지 말기)
@RequiredArgsConstructor로 주입받기
Dto 패키징
폴더 단위 : 도메인 단위로 (user 안에 service, controller, repository ..)
repository
Repository 구조
@Repository
@RequiredArgsConstructor
public class UserRepositoryImpl implements UserRepository {
private final UserJpaRepository userJpaRepository;
@Override
public Optional<User> findByEmail(String email) {
return userJpaRepository.findByEmail(email);
}
@Override
public User save(User save) {
return userJpaRepository.save(save);
}
@Override
public Optional<User> findById(String userId) {
return userJpaRepository.findById(userId);
}
@Override
public void deleteById(String userId) {
userJpaRepository.deleteById(userId);
}
@Override
public List<User> findUsersByEmails(List<String> assigneeEmails) {
return userJpaRepository.findAllByEmailIn(assigneeEmails);
}
}
public interface UserRepository {
//함수정의
Optional<User> findByEmail(String email);
User save(User save);
Optional<User> findById(String userId);
void deleteById(String userId);
List<User> findUsersByEmails(List<String> assigneeEmails);
}