프로젝트의 가독성, 성능을 높이기 위해 시도해봤던 9가지 노력
2021. 10. 28. 17:06ㆍiOS/iOS
728x90
반응형
안녕하세요 bannavi입니다^ㅅ^
오늘은 프로젝트의 가독성과 성능을 높이기 위해 시도해봤던 리팩토링 기법에 대해 기록해보려고합니다.
더 좋은 리팩토링 방법을 알고계시다면 댓글로 꼭 공유 부탁드립니다. ^ㅅ^
바로 시작해보겠습니다!
1. 불필요한 띄어쓰기 없애기
2. 코드 동작에 불필요한 print문 지워주기
3. 코드 자동정렬하기
command + a를 통해 코드문을 전체 선택하고 control + i를 통해 코드를 자동정렬합니다.
코드예시)
4. 코드 블록 내부 문자열 상단에 빼서 따로 관리하기
유지보수 용이성을 위해 문자열을 상단에 표기
5. ViewController, cell의 명칭을 보다 명확하고 직관적으로 설정
혼자만 알아볼 수 있는 명칭이 아닌, 이름만 봐도 내용을 유추할 수 있도록 변경하는것은 개발 협업시 도움을 줌
ViewController 명칭 변경사항
no | 화면 또는 Cell | 변경 전 | 변경 후 |
1 | 로그인화면 | ViewController | SignInViewController |
2 | 개발자소개 팝업뷰 화면 | BottomPopUpViewController | DeveloperIntroductionViewController |
3 | 결제자정보를 보여주는 화면 | FirstViewController | PayerInformationViewController |
4 | 부자의 종류를 선택하는 화면 | SecondViewController | KindOfRichViewController |
5 | 설정화면 | ThirdViewController | SettingViewController |
6 | 설정화면의 Custom HeaderView | DemoHeaderView | CustomHeaderViewOfSettingView |
7 | 설정화면의 DisclosureCell | ThirdTableViewDisclosureCell | DisclosureCellOfSettingView |
8 | 설정화면의 SelectionCell | ThirdTableViewSelectionCell | SelectionCellOfSettingView |
9 | 결제자 정보가 있는 CustomCell | FirstViewCustomTableViewCell | CustomTableViewCellOfPayerInformationView |
6. 마크업 활용하여 코드 정리하기
extension에서 채택한 프로토콜을 Mark문법으로 표기하면 ViewController의 구성을 보다 시각화할 수 있음
ex. SettingViewController에서 extension으로 처리한곳 위에, 채택했던 프로토콜을 Mark문법으로 적어주어 코드의 구성을 시각화함
7. 접근제한자 활용
ex. private 이용시 아래의 변수들이 SettingViewController에서만 이용되는걸 파악할 수 있고, 성능도 높아짐
8. case의 이름은 enum타입의 rawValue 활용하기
case의 이름을 0, 1, 2, 3이 아닌, enum타입의 rawValue로 하면 더 직관적이고 협업시 코드 파악에도 용이하다
ex. 마이페이지에서 cell을 case별로 분리하였음
case별 역할 | 변경 전 | 변경 후 |
첫번째 cell클릭시 노션페이지 팝업 | case 0 | case IndexPathRowNum.myNotionPopUp.rawValue |
두번째 cell클릭시 메일보내기창 present | case 1 | case IndexPathRowNum.sendingMailToDeveloper.rawValue |
세번째 cell클릭시 개발자소개창 present | case 2 | case IndexPathRowNum.developerIntroductionPopUp.rawValue |
다섯번째 cell클릭시 로그아웃 실행 | case 4 | case IndexPathRowNum.signOut.rawValue |
9. 자주쓰는 UIStoryboard 함수로 빼서 코드 간결하게 하기
9-1. 자주쓰는 instantiateViewController 함수로 빼서 코드 간결하게
728x90
반응형