일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- swiftUI
- Refactoring
- combine
- uiscrollview
- 리펙토링
- swift documentation
- RxCocoa
- 리펙터링
- tableView
- map
- 리팩토링
- UICollectionView
- collectionview
- Xcode
- 클린 코드
- UITextView
- 애니메이션
- Protocol
- clean architecture
- MVVM
- Human interface guide
- rxswift
- ios
- uitableview
- SWIFT
- Observable
- ribs
- HIG
- 스위프트
- Clean Code
- Today
- Total
목록리펙터링 (12)
김종권의 iOS 앱 개발 알아가기
테스트 코드가 개발 효율을 높여주는 이유? 테스트 코드는 디버깅하는데 시간을 줄여줌 개발자는 보통 실제로 코드를 작성, 설계하는 시간의 비중은 그리 크지 않고, 대부분의 시간은 디버깅에 소요 버그 자체를 수정하는데는 오랜 시간이 걸리지 않지만, 버그를 찾는데 오랜 시간이 소요 테스트 코드를 짠 경우 > 버그를 찾을려고 일일이 디버깅하지 않아도, 테스트 코드에 걸리게 되어 쉽게 잘못된 곳이 어디인지 파악이 가능 테스트 코드가 시간이 걸린다는 주장의 이유? 테스트 코드를 작성하려면 부가적인 코드를 상당량 작성해야 하는데, 실제로 테스트가 프로그래밍 속도를 높여주는 경험을 하지 않았기 때문에 시간이 걸린다고 느낄 수 있음 테스트 코드의 목적은 디버깅하는 시간을 줄여주는 것이므로, 그 관점에서 생각한다면 테스트..
중복 코드 똑같은 코드 구조가 여러곳에서 반복되는 주는 단점 코드가 중복되면 각각을 볼 때마다 서로 차이점은 없는지 주의 깊게 살펴야하는 부담이 존재 한 클래스에 딸린 두 개의 메소드가 똑같은 표현식 사용? -> 함수 추출하기를 사용 (6절에서 계속) 코드가 비슷한데 완전히 같지 않다면? -> 문장 슬라이드 (8절에서 계속) 긴 함수 오랜 기간 잘 활용되는 프로그램들은 짧은 함수로 구성 짧은 함수로 작성한다는 의미? 코드는 끝없이 위임하는 방식으로 작성되기 때문에 코드를 이해하고, 공유하고, 선택하기 쉬우려면 함수의 이름이 짧은 구성이 많을때 재 역할을 수행 예전 언어는 서브루틴을 호출하는 비용이 컸기 때문에 함수 호출을 없애는 방향이었지만 지금은 별 차이가 없으므로 함수를 적극 이용 장황한 네이밍보다는..
* [Refactoring] 1-1. 리펙토링이란?, 리펙토링의 예시 먼저 참고 Refactoring - 함수 쪼개기 getInvoiceInfo 함수 쪼개기 전체 동작을 각각의 부분으로 나눌 수 있는 지점을 탐색 -> switch 문 확인 func getInvoiceInfo(customer: Customer) -> String { var totalAmount = 0 // 토탈 비용 var volumnCredits = 0 // 포인트 적립 var result = "청구 내역 (고객명: \(customer.name))\n" for performance in customer.requestPerformance { var thisAmount = 0 switch performance.playId.genre { ca..
리펙토링이랑? 겉으로 드러나는 코드의 기능은 바꾸지 않으면서 내부 구조를 개선하는 방식 코드를 작성하고 난 뒤에 설계를 개선하는 일 보통 소프트웨어 개발 시 설계 후 코드를 작성하지만, 시간이 흐르면서 설계에 맞춘 구조는 점차 뒤죽박죽이 되어가므로 리펙토링이 필요 리펙토링이란 기존 흐름과 반대의 작업: 엉망이 되어가는 코드 또는 엉망인 설계를 가져다가 체계적으로 설계된 코드로 탈바꿈이 가능 처음부터 완벽한 설계를 갖추기보다 개발을 진행하면서 지속적으로 설계하는 일이며 시스템을 구축하는 과정에서 더 나은 설계가 무엇인지 배우는 것(= 우수한 설계를 유지하게 되는 효과) 리펙토링 예시 연극의 장르, 관객수 데이터를 받아서 계산하여 영수증을 출력하는 프로그램 데이터 모델 Customer: 연극 의뢰자 Cont..