728x90
반응형
SMALL
리팩토링 기법과 예시코드
1. 반복문 쪼개기: 코드 내에 반복되는 부분을 분리하여 여러 개의 반복문으로 나누는 것을 의미합니다. 이를 통해 코드의 가독성을 높이고 유지보수를 용이하게 만들 수 있습니다.
2. 문장 슬라이드하기: 조건문이나 반복문 안에서 발생하는 부작용을 최소화하기 위해 문장을 이동시키는 기법입니다. 이를 통해 코드의 의도를 명확히 전달하고 코드의 가독성을 향상시킬 수 있습니다.
3. 함수 추출하기: 반복되는 코드 블록을 함수로 분리하는 기법입니다. 이를 통해 코드의 재사용성을 높이고 코드 중복을 줄일 수 있으며, 함수의 역할과 책임을 명확히 분리하여 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.
4. 변수 인라인하기: 불필요한 중간 변수를 제거하고 해당 변수의 값을 직접 사용하는 기법입니다. 이를 통해 코드의 가독성을 높이고 메모리 사용을 최적화할 수 있으며, 코드의 복잡도를 감소시켜 유지보수를 용이하게 만듭니다.
반복문쪼개기
// 반복문 쪼개기 전
for i in 1...10 {
print("현재 값: \(i)")
print("값의 제곱: \(i * i)")
}
// 반복문 쪼개기 후
for i in 1...10 {
print("현재 값: \(i)")
}
for i in 1...10 {
print("값의 제곱: \(i * i)")
}
문장 슬라이드하기
// 문장 슬라이드하기 전
func calculateSum(a: Int, b: Int, c: Int) -> Int {
let sum = a + b
let multipliedSum = sum * c
return multipliedSum
}
// 문장 슬라이드하기 후
func calculateSum(a: Int, b: Int, c: Int) -> Int {
let sum = a + b
return sum * c
}
함수 추출하기
// 함수 추출하기 전
func calculateSumAndMultiply(a: Int, b: Int, c: Int) -> Int {
var sum = 0
for i in 1...a {
sum += i
}
var multipliedSum = 0
for j in 1...b {
multipliedSum += sum * j
}
return multipliedSum * c
}
// 함수 추출하기 후
func calculateSum(a: Int) -> Int {
var sum = 0
for i in 1...a {
sum += i
}
return sum
}
func calculateSumAndMultiply(a: Int, b: Int, c: Int) -> Int {
let sum = calculateSum(a: a)
var multipliedSum = 0
for j in 1...b {
multipliedSum += sum * j
}
return multipliedSum * c
}
변수 인라인하기
// 변수 인라인하기 전
func calculateArea(length: Double, width: Double) -> Double {
let area = length * width
return area
}
// 변수 인라인하기 후
func calculateArea(length: Double, width: Double) -> Double {
return length * width
}
코드가 길어지더라도 건강한 코드를 작성해야한다 :)
728x90
반응형
LIST