-
Clean Code 2장 - 의미있는 이름Book/Clean Code 2023. 9. 23. 17:52
프로그래밍을 하면 가장 많이 하는게 이름을 짓는 것이다.이 장에서는 이름을 잘 짓는 간단한 규칙 소개하고 있다.
의도를 분명하게 밝혀라
이름은 변수, 함수, 클래스의
- 존재 이유
- 수행 기능
- 사용 방법
위 세가지에 모두 답할 수 있어야 한다.
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