inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Tái cấu trúc đã học thông qua mã hóa

Tái cấu trúc 4. Hàm trích xuất

함수 추출하기 부분에서 의도와 구현에 대해 질문 있습니다.

Đã giải quyết

202

annjae4676

92 câu hỏi đã được viết

0

의도와 구현이 잘 이해가 가지 않아 예전에 작성 했던 코드를 가져와 아래와 같이 이해를 해볼려고 했는데 맞게 이해를 한건지 궁금합니다.

 

save라는 네이밍으로 저장한다는 의미를 뜻함 -> 의도

코드 내부에는 DTO를 받아와 엔티티 객체로 변환하고 DB에 저장 로직 -> 구현

save 메서드

@Override
public ServerMessageDto save(ServerMessageCreateRequest createRequest) {
    ServerMessage serverMessage = ServerMessage.builder()
            .serverId(createRequest.getServerId())
            .channelId(createRequest.getChannelId())
            .userId(createRequest.getUserId())
            .parentId(createRequest.getParentId())
            .profileImage(createRequest.getProfileImage())
            .content(createRequest.getContent())
            .writer(createRequest.getWriter())
            .chatType(ChatType.SERVER)
            .actionType(ActionType.SEND)
            .files(createRequest.getFiles())
            .build();

    serverMessage.generateSequence(sequenceGenerator.generateSequence(ServerMessage.SEQUENCE_NAME));

    return ServerMessageDto.from(messageRepository.save(serverMessage));
}

postSend 라는 네이밍으로 ~ 후의 전송이라는 의미 -> 의도

코드 내부에는 특정 조건에 따라 함수 호출 로직 -> 구현

postSend 메서드

@Override
public void postSend(Message<?> message, MessageChannel channel, boolean sent) {
    StompHeaderAccessor headerAccessor = StompHeaderAccessor.wrap(message);

    if (StompCommand.CONNECT.equals(headerAccessor.getCommand())) {
        Long userId = sendConnectionStateInfo(headerAccessor);
        sendConnectionStateEvent(userId);
    }

    if (StompCommand.DISCONNECT.equals(headerAccessor.getCommand())) {
        Long userId = saveDisconnectionState(headerAccessor);
        if (userId != null) {
            sendDisConnectionStateEvent(userId);
        }
    }
}

 

java intellij-idea 리팩토링

Câu trả lời 1

0

whiteship

첫번째 메서드는 직관적으로 의도가 이해되는 이름인거 같은데요. 두번째는 잘 모르겠습니다. 내용을 보면 message에 따라 Connect 또는 Disconnect 이벤트를 보내는것 같은데 postSend 라는 이름이 좀 모호하네요.

리팩토링 10. 함수를 명령으로 바꾸기 강의 부분에서 질문있습니다.

0

94

1

레코드에 대해 질문 있습니다.

0

219

2

.github 토큰 등록하는 방법에 대한 질문

0

220

2

깃허브

0

202

1

홈 디렉토리 .github 파일 생성

0

456

1

리팩토링 22. 여러 함수를 변환 함수로 묶기 강의 내용과 소스 코드가 다른 부분 문의

0

554

1

필드를 감추는 것이 중요한 이유?

0

568

1

오타제보. CVS -> CSV

0

375

0

객체의 필드 몇개만 전달할 경우, 통째로 넘기기 vs 여러개로 넘기기

0

510

0

[오탈자제보] 아주 작은 오타

2

401

0

basePrice

0

294

1

4:04 단축키 궁금합니다.

0

435

1

rename 메뉴에 대한 사소한 질문

0

356

1

테스트 코드 예제

0

308

1

Exception 부분

0

338

1

리팩토링 강의 [ 일부 소스 파일 누락 ]

0

331

1

stream으로 변경 시 성능 문제

0

437

2

로컬 변수에 final

0

458

1

Area 밑줄 나온부분

0

404

1

클래스의 상속 vs 네임스페이스 vs nested 클래스

0

322

1

이런 경우도 따로 함수로 빼는게 좋을지 궁금합니다.

0

279

1

질문입니다

2

265

1

파라미터와 이들을 가진 클래스

0

237

1

해당 강의를 실행시 아래와 같은 에러가 발생합니다..!

0

598

2