[TIL] 21.04.14.(Wed)

Ryan (Geonhee) Son·2021년 5월 2일
0
post-thumbnail

활동 요약

  • STEP 2 PR Feedback 코멘트
  • STEP 2 PR Merge

활동 상세

만국박람회 프로젝트 Step 2 PR Feedback에 대한 코멘트

야멘께서 신속하게 코드를 리뷰해주셔서 빠르게 검토하고 개선이 필요하다고 판단한 부분을 반영하여 코멘트를 남겼습니다.

  • 일관성 없고 직관적이지 않은 변수 및 메서드명을 변경하였습니다.
    • imageView는 내부적으로 이미 사용하고 있는 프로퍼티명이라 해당 이름으로 변경하지 못하였습니다.
  • ArtworksTableViewController -> DetailArtworkViewController 이동 간 사용되는 custom segue를 TableView Cell -> DetailArtworkViewController로 변경하였습니다.
    • 이처럼 변경하여 타 View Controller의 이동 방식과 동일한 구조로 직관적으로 이해 가능하게끔 구성하였습니다.
  • TableViewController에서 segue를 통해 다음 ViewController으로 이동 시 indexPath.row를 보내어 처리하는 방식에서 해당 ViewController에서 필요한 artwork 인스턴스를 보내는 방식으로 변경하였습니다.
    • 필요한 인스턴스가 있으므로 이동한 ViewController에서 디코딩 작업을 하지 않아도 되는 장점이 있습니다.
  • 디코딩 대상 JSON 파일 이름을 enum 타입에 등록하여 상수처럼 활용하도록 하였습니다 (논리적 에러 방지).
  • enum에 등록한 상수 타입을 case에서 static let으로 변경하여 rawValue 키워드를 생략할 수 있도록 변경하였습니다.
  • ExpoIntroductionAffix 파일에 있던 타입을 ExpoIntroductionViewController로 이동하여 타입 이름을 Affix로 변경하고 접근 수준을 private으로 설정하였습니다.
    • 해당 타입은 ExpoIntroductionViewController 이외에는 이용하지 않기에 이와 같이 변경하였습니다.
  • osLog 모듈의 os_log(_:log:_:) 메서드를 활용하여 고성능 메시지 로깅을 적용해보았습니다.
    • 해당 메서드의 메시지 타입이 StaticString 타입이라 작성한 에러 타입을 활용하지 못한 점이 아쉬웠는데 이는 개별 코멘트에서 내용 다루겠습니다.

Step 2 PR Merge

저녁께 머지해주셨습니다. 인덴트 관련해서는 다음 프로젝트에서 SPM을 활용해서 SwiftLint를 사용해보는 것도 좋겠다는 피드백을 주셨네요. SwiftLint가 무엇인지부터 알아보아야겠습니다!

profile
합리적인 해법 찾기를 좋아합니다.

0개의 댓글