En aquest tema, explorarem les millors pràctiques i convencions d'estil de codi en Kotlin. Seguir aquestes convencions no només fa que el teu codi sigui més llegible i mantenible, sinó que també facilita la col·laboració amb altres desenvolupadors.
- Nomenclatura
1.1. Variables i Funcions
- Variables: Utilitza el format
camelCase
per a les variables.val userName = "John Doe" var age = 30
- Funcions: També utilitza
camelCase
per a les funcions.fun calculateSum(a: Int, b: Int): Int { return a + b }
1.2. Classes i Objectes
- Classes i Objectes: Utilitza el format
PascalCase
per a les classes i objectes.class UserProfile(val name: String, val age: Int) object DatabaseManager { fun connect() { // Connexió a la base de dades } }
1.3. Constants
- Constants: Utilitza
UPPER_SNAKE_CASE
per a les constants.const val MAX_USERS = 100
- Formatació
2.1. Indentació
- Utilitza 4 espais per a la indentació. No utilitzis tabuladors.
fun main() { val message = "Hello, World!" println(message) }
2.2. Espais en Blanc
- Deixa una línia en blanc entre funcions i blocs de codi per millorar la llegibilitat.
fun greetUser(name: String) { println("Hello, $name!") } fun main() { greetUser("Alice") }
2.3. Longitud de Línia
- Mantingues les línies de codi per sota de 100 caràcters sempre que sigui possible.
- Estructura del Codi
3.1. Ordre de Declaracions
-
L'ordre recomanat per a les declaracions dins d'una classe és:
- Propietats
- Constructors
- Mètodes públics
- Mètodes privats
class User(val name: String, val age: Int) { init { // Constructor } fun displayInfo() { println("Name: $name, Age: $age") } private fun calculateYearOfBirth(): Int { return 2023 - age } }
3.2. Ús de Comentaris
- Utilitza comentaris per explicar el "per què" del codi, no el "què".
// Calcula l'any de naixement basat en l'edat private fun calculateYearOfBirth(): Int { return 2023 - age }
- Conventions de Kotlin
4.1. Null Safety
- Utilitza tipus no nullables sempre que sigui possible.
var name: String = "John" // No nullable var address: String? = null // Nullable
4.2. Smart Casts
- Aprofita els smart casts de Kotlin per evitar conversions explícites.
fun printLength(obj: Any) { if (obj is String) { println(obj.length) // Smart cast a String } }
4.3. Expressions When
- Utilitza
when
en lloc de múltiplesif-else
per a una millor llegibilitat.fun getColorName(color: Int): String { return when (color) { 1 -> "Red" 2 -> "Green" 3 -> "Blue" else -> "Unknown" } }
Exercicis Pràctics
Exercici 1: Formatació i Nomenclatura
Revisa el següent codi i corregeix-lo segons les convencions d'estil de Kotlin.
class person(val name: String, val age: Int){ fun displayinfo(){ println("Name: $name, Age: $age") } }
Solució:
class Person(val name: String, val age: Int) { fun displayInfo() { println("Name: $name, Age: $age") } }
Exercici 2: Ús de when
Converteix el següent codi if-else
en una expressió when
.
fun getDayOfWeek(day: Int): String { if (day == 1) { return "Monday" } else if (day == 2) { return "Tuesday" } else if (day == 3) { return "Wednesday" } else if (day == 4) { return "Thursday" } else if (day == 5) { return "Friday" } else if (day == 6) { return "Saturday" } else if (day == 7) { return "Sunday" } else { return "Invalid day" } }
Solució:
fun getDayOfWeek(day: Int): String { return when (day) { 1 -> "Monday" 2 -> "Tuesday" 3 -> "Wednesday" 4 -> "Thursday" 5 -> "Friday" 6 -> "Saturday" 7 -> "Sunday" else -> "Invalid day" } }
Conclusió
Seguir les convencions d'estil de codi en Kotlin és essencial per escriure codi net, llegible i mantenible. Aquestes pràctiques no només milloren la qualitat del teu codi, sinó que també faciliten la col·laboració amb altres desenvolupadors. En el proper tema, explorarem tècniques d'optimització del rendiment per assegurar-nos que el nostre codi no només sigui net, sinó també eficient.
Curs de Programació en Kotlin
Mòdul 1: Introducció a Kotlin
- Introducció a Kotlin
- Configuració de l'Entorn de Desenvolupament
- Conceptes Bàsics de Kotlin: Variables i Tipus de Dades
- Flux de Control: Condicionals i Bucles
- Funcions i Lambdas
Mòdul 2: Programació Orientada a Objectes en Kotlin
- Classes i Objectes
- Herència i Interfícies
- Modificadors de Visibilitat
- Classes de Dades i Classes Segellades
- Declaracions d'Objectes i Objectes Companys
Mòdul 3: Funcions Avançades de Kotlin
- Col·leccions i Genèrics
- Funcions d'Extensió
- Funcions d'Ordre Superior i Programació Funcional
- Coroutines i Programació Asíncrona
- DSL (Llenguatge Específic de Domini) en Kotlin
Mòdul 4: Kotlin per al Desenvolupament d'Android
- Introducció al Desenvolupament d'Android amb Kotlin
- Construcció d'Interfícies d'Usuari
- Gestió de l'Entrada de l'Usuari
- Xarxes i Emmagatzematge de Dades
- Proves i Depuració