Conversation
dev-domo
left a comment
There was a problem hiding this comment.
수고 많으셨습니다! 리뷰가 있긴 하나 수정한 기능은 잘 돌아가는 걸로 보여 어푸 드립니다~
| } | ||
|
|
||
| extension WriteQuestionTypeQuestViewController { | ||
| private func isValidAnswerText(text: String) -> Bool { |
There was a problem hiding this comment.
답변의 유효성을 따로 메서드로 분리한 거 좋네요! 다만 뷰컨트롤러는 UI를 업데이트시키는 데에만 집중하고, 답변의 유효성 검증은 뷰모델 쪽으로 책임을 분리해보면 어떨까요? 답변 유효성을 검증해주는 유스케이스도 만들어 볼 수 있을 것 같아요!
| @@ -6,11 +6,10 @@ | |||
| // | |||
|
|
|||
| protocol QuestCompleteProtocol: AnyObject { | |||
There was a problem hiding this comment.
기존에 만들어두신 EditQuestProtocol에 메서드를 추가하는 대신 QuestCompleteProtocol을 따로 정의한 이유가 있는지 궁금합니다!
There was a problem hiding this comment.
원래 기존에는 QuestCompleteProtocol이 있고 수정기능을 추가하면서 edit protocol을 만들었는데요!
리팩토링을 하다보니 텍스트필드 유효성을 검증해서 완료버튼을 누르기까지의 과정은 수정과 기존 쓰기 버전이 둘이 비슷하다고 생각하여 관련로직은 Complete 프로토콜에 작성했습니다..!! edit protocol에는 처음 수정으로 들어갈 때 관련 정보를 불러오는 것을 수행합니다!
juri123123
left a comment
There was a problem hiding this comment.
승준이가 코멘트 확인해보면 좋을 것 같아요 ~ 고생많으셨습니다 !
| } | ||
| } | ||
|
|
||
| private func isValidText(previousText: String, changingText: String) { |
There was a problem hiding this comment.
저는 if-else문을 최대한 안 쓰는 편이라 아래처럼 해도 괜찮을 것 같아요. 참고만 해주세용!
let isValidText: Bool = isValidQuestAnswerUseCase.execute(previousText: previousText, changingText: changingText)
isValidSubject.send(isValidText)ad8c203 to
e0a6fbc
Compare
🔗 연결된 이슈
📄 작업 내용
💻 주요 코드 설명
기존에 10자 이상 + 공백 제거 관련 조건이 뷰 코드에 있었는데 뷰보다는 뷰컨트롤러에 있는게 좀 더 맞다고 판단되어 뷰컨트롤러로 옮겼습니다.
프로토콜 관련 함수를 리팩토링하면서 질문형 뷰컨에 있던 함수도 같이 리팩토링했습니다.
questmode에 따라 분기처리를 해주면서 버튼타입을 업데이트시켜줍니다.