ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Clean Code 2장 - 의미있는 이름
    Book/Clean Code 2023. 9. 23. 17:52



    프로그래밍을 하면 가장 많이 하는게 이름을 짓는 것이다.

    이 장에서는 이름을 잘 짓는 간단한 규칙 소개하고 있다.

     


    의도를 분명하게 밝혀라

    이름은 변수, 함수, 클래스의

    1. 존재 이유
    2. 수행 기능
    3. 사용 방법

    위 세가지에 모두 답할 수 있어야 한다.

     

    public func getThem() -> [[Int]] {
        var list1: [[Int]] = []
        
        for x in theList {
            if x[0] == 4 {
                list1.append(x)
            }
        }
        
        return list1
    }

    이 코드는 코드 자체가 어려운 코드는 아니지만 이해하기 힘들다.

    그 이유는 아래의 정보를 이미 알고 있다고 가정하고 있기때문이다.

    • theList에는 뭐가 들어가 있는지
    • theList에 0번째 값이 무엇인지
    • 4는 무슨 의미인지
    • 리턴하는 list1을 어떻게 사용하는지

     

    public func getFlageedCells() -> [[Int]] {
        var flaggedCells: [[Int]] = []
        
        for cell in gameBoard {
            if cell[statusValue] == flagged {
                flaggedCells.append(cell)
            }
        }
        
        return flaggedCells
    }

    이렇게 이름만 변경해도 코드를 이해하기 한결 더 좋아진다.

     

    public func getFlageedCells() -> [Cell] {
        var flaggedCells: [Cell] = []
        
        for cell in gameBoard {
            if cell.isFlagged() {
                flaggedCells.append(cell)
            }
        }
        
        return flaggedCells
    }

    더 나아가서 [Int]를 Cell이라는 클래스로 만들고 cell의 status를 판별하는 식을 메서드로 빼면 더 보기 좋은 코드가 된다.


    잘못된 정보를 피하라.

     

    코드에 잘못된 단서를 남기면 안된다.

     

    - 널리 쓰이는 의미가 있는 단어는 다른 의미로 사용하면 안된다.

    예를 들어 List라는 접두어가 들어가면 타입이 []인것으로 혼돈될 수 있으므로 되도록 사용하지 않는것이 좋다.

     

    - 서로 흡사한 이름을 사용하지 않도록 주의하자.

    한 모듈에서 XYZControllerForEfficientHandlingOfString 이라는 이름을 사용하고 다른 모듈에서 XYZControllerForEfficientStorageOfString 이라는 이름을 사용하면 서로 같은 단어로 오해하기 쉽다.

     

    - 유사한 개념은 유사한 표기법을 사용하자. 일관성일 떨어지는 표기도 잘못된 정보이다.

     

    - L이나 O 사용에 주의하자.

    뭐가 O인지 0인지 L인지 1인지 구별하기 힘들다.

    백문이 불여일견 직접 보도록하자.

    let a: Int = 1
    if (O == 1) {
        a = O1
    } else {
        l = 01
    }

     

    나머지는 이어서...

    728x90

    'Book > Clean Code' 카테고리의 다른 글

    Clean Code 1장 - 깨끗한 코드  (0) 2023.05.28
Designed by Tistory.