TIL

아이템 31 문서로 규약을 정의하라아이템 31 문서로 규약을 정의하라

/**
* 프로젝트에서 짧은 메시지를 사용자에게
* 출력할 때 사용하는 기본적인 방식
* @param message 사용자에게 보여줄 메시지
* @param length 메시지 길이를 나타내는 enum 값
*/
fun Context.showMessage(/*...*/) { /*...*/ }

규약

규약 정의하기

주석을 써야 할까?

fun List<Int>.product() = fold(1) { acc, i -> acc * i }
// 주석으로 표현하기
fun update() {
	// 사용자를 업데이트 합니다.
	for (user in users) {
		user.update()
	}
	
	// 책을 업데이트 합니다.
	for (book in books) {
		updateBook(book)
	}
}
fun update() {
	updateUsers()
	updateBooks()
}

private fun updateUsers() { /*...*/ }

private fun updateUsers() { /*...*/ }

KDoc 형식

타입 시스템과 예측

interface Car {
	fun setWheelPosition(angle: Float)
	fun setBreakPedal(presuure: Double)
	fun setGasPedal(pressure: Double)
}
interface Car {
	/**
	* Change car direction
	*
	* @param angle 바퀴 측 각도를 지정합니다.
	* ...
	*/
	fun setWheelPosition(angle: Float)
	// ...
}