본문 바로가기

리팩토링

리팩토링-01

728x90
반응형
SMALL

DDD iOS 모임에서 책을 추천 받았습니다. 마침 CS관련 공부를 하던 모임 중 여러 사람이 직장인이 되고 바쁘다 보니 잠시 쉬자는 의견이 나와서 잠시 휴식기를 갖은 상태였던터라.. 혼자서 뭐라도 할 건덕지가 생겨서 행복하기 그지없습니다. :) 좋은 코드를 쓰고 싶어요.

https://www.yes24.com/Product/Goods/90428435

 

리팩터링 2판 - YES24

개발자가 선택한 프로그램 가치를 높이는 최고의 코드 관리 기술마틴 파울러의 『리팩터링』이 새롭게 돌아왔다.지난 20년간 전 세계 프로그래머에게 리팩터링의 교본이었던 『리팩토링』은,

www.yes24.com

 

컴파일러가 읽기 편한 코드 VS 사람이 읽기 편한 코드

 

둘이 충돌이 발생하는 경우의 예시

  1. 변수 함수 이름 축약
    컴파일러가 읽기 편한 코드의 관점에서는 변수나 함수 이름을 축약하여 짧게 작성하는 것이 효율적일 있습니다. 예를 들어, "numberOfItems" 대신 "itemCount"라는 변수 이름을 사용하는 것입니다. 하지만 사람이 읽기 편한 코드의 관점에서는 변수나 함수 이름이 명확하고 의미를 전달하는 것이 중요합니다. 따라서 "numberOfItems"라는 변수 이름이 가독성이 좋을 있습니다.
  2. 복잡한 조건문
    컴파일러가 읽기 편한 코드의 관점에서는 복잡한 조건문을 사용하여 성능을 최적화할 있습니다. 예를 들어, 여러 개의 조건을 함께 검사하는 대신 단축 평가(short-circuit evaluation) 이용하여 번째 조건이 거짓인 경우 추가적인 조건 검사를 하지 않는 것입니다. 하지만 사람이 읽기 편한 코드의 관점에서는 복잡한 조건문이 가독성을 저해할 있습니다. 조건문을 단순하고 명확하게 작성하여 코드의 의도를 분명히 전달하는 것이 중요합니다.
  3. 약식 표기법 사용
    컴파일러가 읽기 편한 코드의 관점에서는 약식 표기법을 사용하여 코드를 간결하게 작성할 있습니다. 예를 들어, 배열의 요소를 반복하면서 처리하는 경우에 "for-in" 루프 대신에 고차 함수인 "map", "filter", "reduce" 등을 사용하는 것입니다. 하지만 사람이 읽기 편한 코드의 관점에서는 루프의 명시적인 표현이 가독성이 좋을 있습니다

개인적인 생각

물론 적절하게 섞어 사용하는 것이 중요합니다 :-0...  그리고 chatGPT 등 대화형 ai의 성장으로 학습의 폭도 넓어지고 코드 생산성도 높아졌습니다만 여전히 한계점이 존재하고 결국은 사람의 손을 거쳐야 한다고 생각하기 때문에 저는 사람이 읽기 편한 코드를 쓰고 싶습니다.

 

 

리펙토링은 프로그램 수정을 작은 단계로 나눠 진행합니다. ( 중간에 실수하더라도 쉽게 찾을 수 있기 때문 )

 

함수추출하기 

+ 함수, 메서드 extract기능을 아래 처럼 사용할 수도 있습니다. :0...

  func calculateTotalPrice() {
        let price = 1000
        let quantity = 5
        let totalPrice = price * quantity
        print("Total Price: \(totalPrice)")
        // 다른 로직들...
    }

->

fileprivate func extractedFunc(_ price: Int, _ quantity: Int) {
    let totalPrice = price * quantity
    print("Total Price: \(totalPrice)")
}

func calculateTotalPrice() {
    let price = 1000
    let quantity = 5
    extractedFunc(price, quantity)
    // 다른 로직들...
}

 

 

728x90
반응형
LIST

'리팩토링' 카테고리의 다른 글

리팩토링-03  (0) 2023.05.23
리팩토링-02  (0) 2023.05.23