Kotlin 확장 기능으로 인지 부하를 줄입니다.

80%는 코드를 읽고 20%는 코드를 작성합니다. 그렇기 때문에 코드가 재생산하는 인지 부하에 주의를 기울여야 합니다. 한 가지 방법은 직관적이고 읽기 쉬운 코드를 작성하는 것입니다.

매우 유용한 Kotlin 기능은 확장 기능입니다. 확장 기능이 무엇이고 코드에서 확장 기능을 사용하여 더 읽기 쉽게 만드는 방법을 살펴보겠습니다.

"Kotlin은 클래스에서 상속받지 않고도 새로운 기능으로 클래스 또는 인터페이스를 확장할 수 있는 기능을 제공합니다."

일부 금액이 거래에 유효한지 확인하려면 다음과 같이 부울을 반환하는 간단한 확인 기능을 만들 수 있습니다.

fun isValidAmount(amount: BigDecimal) = amount > ZERO && amount <  PAYMENT_MAX_AMOUNT


또는 화면에서 일부 보기를 비활성화/활성화해야 합니다.

fun hide(amountView: View) {
  amountView.visibility = View.GONE
}

fun show(amountView: View) {
  amountView.visibility = View.VISIBLE

}


이 두 함수는 절대적으로 정확하지만 코드를 좀 더 직관적이고 읽기 쉽게 만들기 위해 Kotlin 확장을 사용하여 더 나아갈 수 있습니다. 이제 이 두 함수가 어떻게 생겼는지 봅시다.

fun BigDecimal.isValidAmount() = this in ZERO..PAYMENT_MAX_AMOUNT

//and applied in code
val amount = BigDecimal(1000)
if(amount.isValidAmount()) {
// make a payment
} else {
 //show message to the user
}


보기 기능을 숨기면 다음과 같습니다.

// Hides the view
fun View.hide() {
  visibility = View.GONE
}

// Shows the view
fun View.show() {
 visibility = View.VISIBLE
}

// Hides or show the view based on the flag
fun shouldShow(show: Boolean) {
  if(show) visibility.VISIBLE else visibility.GONE
}

// when applied 
if(amount.isValidAmount()) {
    amountView.show() 
} else {
    amountView.hide()
}

// or even further with one liner
amountView.shouldShow(amount.isValidAmount())


이것이 코드의 가독성을 어떻게 향상시키는지 확인할 수 있습니다.

후드 아래에는 특별한 것이 없습니다. Kotlin 바이트코드를 Java 소스 파일로 디컴파일하면 전달된 인수가 있는 일반 메서드만 볼 수 있습니다.
따라서 성능상의 이점은 없으며 순수한 Kotlin 합성 설탕일 뿐입니다!

당신은 그것들을 가지고 놀 수 있고 가독성을 향상시키기 위해 필요하다고 생각되는 앱 내부의 모든 곳에서 사용할 수 있습니다. 많은 확인과 유효성 검사가 필요한 유틸리티 클래스에 적합합니다.

좋은 웹페이지 즐겨찾기