Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- fp
- 함수형프로그래밍
- 디자인패턴
- iOS프로그래밍
- 인터페이스
- 아이폰프로그래밍
- OOP
- 의도
- 고차함수
- 클린소프트웨어
- 의존성
- 개발자
- protocol
- 협업
- 문법
- SWIFT
- IOS
- 부스트코스
- Solid
- 객체지향프로그래밍
- interface
- CleanCode
- 함수형패러다임
- POP
- 클린코드
- DesignPattern
- Swfit
- 개발
- 이름
- 네이밍
Archives
- Today
- Total
밤에 쓴 코드
Clean Code) 의미있는 이름 본문
의미있는 이름
의도를 분명히 밝혀라
명확한 이름이 좋다
짐작하기 쉽게
함축성을 가진 코드는 의도를 숨긴 코드이다.
단순성과 함축성은 다르다.
// 함축적 -> 무슨 일을 하는지 구체적으로 드러나지 않은 이름 func getList() -> [String] { } // 짐작하기 쉬운 이름 func getNameOfFriendsList()->[String]{ }
올바른 정보
유사한 개념은 유사한 표기법을 사용한다.
func add(_ item:Int ){ // 배열에 추가하는 로직 } func append(_ item:Int ){ // 배열에 추가하는 로직 }
같은 기능을 수행하나 표기가 다른 건 잘못된 정보전달의 예 이다.
널리쓰이는 단어를 다른 의미로 사용하는 것도 옳지않다
func getFriendList() -> [String:Friend]{ }
List는 프로그래머에게는 []의 의미를 내포하고 있다 . 딕셔너리 로의 반환은 예상 밖의 기능을 하는 것이다..
불용어(noise word)를 사용하지 마라
의미가 불분명한 이름 - Info,Data,연속적인 숫자
너무 추상화되어있는 이름
중복
let friend : Any // 이후의 추가될 비슷한 변수를 고려하지 않은 네이밍 let friendObj : Any // 두개의 변수의 차이를 이름으로 파악하기 어렵다
검색하기 쉬운 이름
프로그램 전역에서 사용할 이름은 자주 검색해야한다.
짧은 네이밍은 검색에서 여러 결과를 반환한다.
사용할 범위와 이름의 길이는 비례하는 것이 바람직하다.
for i in array{ // 반복문 내부에서만 쓰는 변수는 i 면 충분하다 } static func a{} // 검색에서 나오는 결과가 많다. static func abcdefg{} // 검색에서 더 용이하다.
- 인코딩을 피해라
- 부호화는 해독을 방해한다.
- 멤버변수 접두어는 구닥다리다.
맥락을 추가하라
여러의미를 가지는 단어를 이름으로 선택시 의도가 불분명해진다.
let state: String
상태?? 주? 파악이 어려워진다.
let addrState
맥락의 추가는 조금 더 의도가 분명해진다
class Address{ let state : String }
클래스를 분할하는 건 컴파일러에게 까지 의도가 전달된다.
- 불필요한 맥락은 제거한다
- 이름은 짧을 수록 좋다 . 단 의미가 분명할 때
- 즉 , 의미가 분명할 경우 맥락을 추가하는건 가독성을 해친다.
- 이름은 짧을 수록 좋다 . 단 의미가 분명할 때
'Clean Code' 카테고리의 다른 글
Clean Code) 단위테스트 (0) | 2019.07.10 |
---|---|
Clean Code ) 객체와 자료구조 (0) | 2019.06.23 |
Clean Code) 형식 맞추기 (0) | 2019.06.08 |
Clean Code) 주석 (0) | 2019.06.08 |
Clean Code) 함수 (0) | 2019.05.02 |
Comments