일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- RxCocoa
- MVVM
- 리팩토링
- uitableview
- SWIFT
- Refactoring
- collectionview
- clean architecture
- HIG
- 클린 코드
- Clean Code
- swift documentation
- 리펙터링
- Protocol
- 리펙토링
- tableView
- uiscrollview
- UICollectionView
- 스위프트
- Xcode
- swiftUI
- Observable
- rxswift
- 애니메이션
- UITextView
- ribs
- map
- Human interface guide
- combine
- ios
- Today
- Total
목록리펙토링 (45)
김종권의 iOS 앱 개발 알아가기
코드에서 나는 악취 리팩터링을 언제 하는게 좋은지? 켄트 벡에 의하면 리팩터링할 시점은 '냄새'란 표현을 사용 오히려 인스턴스 변수가 몇 개가 적당한지, 메섣가 몇 줄을 안넘어가면 좋은지보다는, 사람의 직관이 더욱 정확하다는 의미 `냄새`에 대한 감각을 키우려면, 앞으로 나오는 리팩터링 내용들을 숙지하고 직접 코드로 표현해보며 사용 기이한 이름 코드를 명료하게 표현하는 데 가장 중요한 요소는 `이름`이므로 함수, 모듈, 변수, 클래스등은 그 이름만 보고도 각각이 무슨 일을 하고 어떻게 사용하는지 명확히 알 수 있도록 엄청나게 신경써서 이름을 지어야 함 이름만 잘 지어도 나중에 문맥을 파악하느라 헤메는 시간을 크게 절약 가능 ex) 함수 이름 바꾸기, 변수 이름 바꾸기 긴 함수 경험에 비춰보면 오랜 기간 ..
리팩터링과 아키텍처, YAGNI(애그니) 리팩터링이 아키텍쳐에 미치는 실질적인 효과는 요구사항 변화에 자연스럽게 대응하도록 코드 베이스를 잘 설계해주는 장점이 존재 점진적 설계 (incremental design), YAGNI(You Aren't Going to Need It) "필요 없을 것이다" 유연성을 위해 현재 필요하지 않고 추후에 사용될 기능까지 구현하는 것보단 리팩터링을 사용할 것 추측하지 않고 그저 현재까지 파악한 요구사항만을 해결하는 소프트웨어를 구축할 것 아키텍쳐도 그에맞게 리팩터링하여 변경 리팩터링과 소프트웨어 개발 프로세스 최초의 애자일 소프트웨어 방법론 중 하나로 등장한, 익스트림 프로그래밍은 일명 TDD(Test Deiven Development) 리팩터링 하면서 쉽게 오류를 확인..
리팩터링 원칙 리펙터링이란? 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법 주의: 리팩터링은 특정한 방식에 따라 코드를 정리하는것이며, 단순히 코드를 정리하는 작업은 리펙터링이 아니고 `재구성(restructuring)`이라고 명칭 목적을 명확히 할 것 기능 추가인지 리펙터링인지 인식하면서 프로그래밍할 것 기능 추가: 기존 코드는 절대 건드리지 않고 새 기능을 추가 (진정성은 테스트를 추가해서 통과하는지 확인하는 방식으로 측정) 리펙토링: 기능 추가는 절대 하지 않기로 다짐한 뒤 오로지 코드 재구성에만 전념 (테스트도 새로 만들지 않을 것) 리팩터링의 목적은 개발 기간을 단축하기 위함 (기능 추가 시간을 줄이고, 버그 수정 시간을 줄이는 것) 리..
* [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..