domains / / JetBrains/kotlin
Keep code clearly organized
Maintain code readability and organization by extracting focused, well-named functions and using appropriate scoping. Break down complex logic into smaller, focused functions and utilize extension functions when appropriate to improve code clarity.
Maintain code readability and organization by extracting focused, well-named functions and using appropriate scoping. Break down complex logic into smaller, focused functions and utilize extension functions when appropriate to improve code clarity.
Key guidelines:
- Extract complex or repeated logic into separate functions
- Use extension functions for operations that logically belong to a type
- Keep function responsibilities focused and single-purpose
- Place related code together for better context
Example - Before:
fun isValidFloat(s: String): Boolean {
var start = 0
var end = s.length - 1
while (start <= end && s[start].code <= 0x20) start++
if (start > end) return false
while (end > start && s[end].code <= 0x20) end--
if (s[start] == '+' || s[start] == '-') start++
if (start > end) return false
// ... more complex logic
}
After:
fun isValidFloat(s: String): Boolean {
val (start, end) = s.findContentBounds() ?: return false
val (newStart, hasSign) = s.parseSign(start)
if (newStart > end) return false
// ... more focused logic
}
private fun String.findContentBounds(): Pair<Int, Int>? {
var start = 0
var end = length - 1
while (start <= end && this[start].code <= 0x20) start++
if (start > end) return null
while (end > start && this[end].code <= 0x20) end--
return start to end
}
private fun String.parseSign(start: Int): Pair<Int, Boolean> {
return when (this[start]) {
'+', '-' -> (start + 1) to true
else -> start to false
}
}