Swift API DESIGN GUIDELINES 참고
- Promote Clear Usage (명확하게 사용하기)
- Strive for Fluent Usage (자연스러운 사용을 위해 노력하기)
- Use Terminology Well (적절한 기술 용어 사용하기)
✅
extension List {
public mutating func remove(at position: Index) -> Element
}
employees.remove(at: x)
⛔️
employees.remove(x) // unclear: are we removing x?
at
이라는 단어를 생략한다면 x의 쓰임을 분명하게 알 수 없다.
⛔️
public mutating func removeElement(_ member: Element) -> Element?
allViews.removeElement(cancelButton)
✅
public mutating func remove(_ member: Element) -> Element?
allViews.remove(cancelButton) // clearer
분명한 의도를 위해 더 많은 단어가 필요할 수 있지만, 읽는 사람이 이미 알고 있는 중복되는 정보는 생략한다.
⛔️
func setIntToString(setInt: Set<Int>) -> String {
let setInt = setInt
let setString = setInt.map {String($0)}
let string = setString.joined(separator: ", ")
return string
}
✅
func convertToString(from numbers: Set<Int>) -> String {
let result = numbers.map {String($0)}.joined(separator: ", ")
return result
}
특히, 타입 정보만 반복하는 단어는 생략한다.
타입 제약이 아닌 해당 역할에 따라 변수, 매개변수 및 연관 타입을 명명한다.
✅
x.insert(y, at: z) “x, insert y at z”
x.subViews(havingColor: y) “x's subviews having color y”
x.capitalizingNouns() “x, capitalizing nouns”
⛔️
x.insert(y, position: z)
x.subViews(color: y)
x.nounCapitalize()
⛔️
var randomNum: Int
var resultArr: [String]
✅
var randomNumber: Int
var resultArray: [String]
Array
than to use a simplified term such as List
.List
보다는 Array
를 사용하는 것이 좋다.