En aquest tema, explorarem les millors pràctiques i convencions d'estil de codi per a Groovy. Seguir aquestes directrius no només farà que el teu codi sigui més llegible i mantenible, sinó que també facilitarà la col·laboració amb altres desenvolupadors.

  1. Nomenclatura

1.1. Variables i Funcions

  • Variables locals: Utilitza la notació camelCase.
    def userName = "John Doe"
    def totalAmount = 100.50
    
  • Funcions: Utilitza la notació camelCase.
    def calculateTotalPrice(price, tax) {
        return price + tax
    }
    

1.2. Classes i Enums

  • Classes: Utilitza la notació PascalCase.
    class UserProfile {
        String name
        int age
    }
    
  • Enums: Utilitza la notació PascalCase.
    enum UserStatus {
        ACTIVE, INACTIVE, BANNED
    }
    

1.3. Constants

  • Constants: Utilitza majúscules amb guions baixos.
    final int MAX_USERS = 100
    final String DEFAULT_LANGUAGE = "en"
    

  1. Estructura del Codi

2.1. Indentació

  • Utilitza 4 espais per a la indentació. No utilitzis tabuladors.
    class Example {
        def method() {
            if (true) {
                println "Hello, World!"
            }
        }
    }
    

2.2. Espais en Blanc

  • Utilitza espais en blanc per millorar la llegibilitat.
    def sum = a + b
    if (x > y) {
        println "x is greater than y"
    }
    

2.3. Línies en Blanc

  • Utilitza línies en blanc per separar blocs de codi lògicament relacionats.
    def initialize() {
        // Initialization code
    }
    
    def execute() {
        // Execution code
    }
    

  1. Comentaris

3.1. Comentaris de Línia

  • Utilitza comentaris de línia per explicar el codi que no és immediatament evident.
    def calculateDiscount(price) {
        // Si el preu és superior a 100, aplica un descompte del 10%
        if (price > 100) {
            return price * 0.9
        }
        return price
    }
    

3.2. Comentaris de Bloc

  • Utilitza comentaris de bloc per a explicacions més llargues o per a documentar seccions de codi.
    /*
     * Aquesta funció calcula el preu total amb impostos.
     * Paràmetres:
     * - price: El preu base del producte.
     * - tax: El percentatge d'impostos a aplicar.
     * Retorna:
     * - El preu total amb impostos.
     */
    def calculateTotalPrice(price, tax) {
        return price + (price * tax)
    }
    

  1. Estructures de Control

4.1. If-Else

  • Col·loca les claus d'obertura i tancament en la mateixa línia que la condició.
    if (condition) {
        // Codi a executar si la condició és certa
    } else {
        // Codi a executar si la condició és falsa
    }
    

4.2. Bucles

  • Utilitza la mateixa convenció per a bucles for, while i do-while.
    for (int i = 0; i < 10; i++) {
        println i
    }
    
    while (condition) {
        // Codi a executar mentre la condició sigui certa
    }
    
    do {
        // Codi a executar almenys una vegada
    } while (condition)
    

  1. Escriptura de Funcions

5.1. Longitud de les Funcions

  • Mantingues les funcions curtes i enfocades en una sola tasca. Si una funció és massa llarga, considera dividir-la en funcions més petites.

5.2. Paràmetres de Funció

  • Limita el nombre de paràmetres. Si una funció necessita molts paràmetres, considera encapsular-los en un objecte.
    def createUser(String name, int age, String email) {
        // Codi per crear un usuari
    }
    

  1. Exemples Pràctics

6.1. Exemple de Classe Ben Estructurada

class Person {
    String name
    int age

    Person(String name, int age) {
        this.name = name
        this.age = age
    }

    void displayInfo() {
        println "Name: ${name}, Age: ${age}"
    }
}

def person = new Person("Alice", 30)
person.displayInfo()

6.2. Exemple de Funció Ben Estructurada

def calculateArea(double radius) {
    final double PI = 3.14159
    return PI * radius * radius
}

def area = calculateArea(5.0)
println "Area: ${area}"

  1. Exercicis Pràctics

Exercici 1: Refactorització de Codi

Refactoritza el següent codi per seguir les convencions d'estil de codi de Groovy:

def calcArea(r){
    return 3.14*r*r
}
def calcCircumference(r){
    return 2*3.14*r
}
println calcArea(5)
println calcCircumference(5)

Solució:

def calculateArea(double radius) {
    final double PI = 3.14159
    return PI * radius * radius
}

def calculateCircumference(double radius) {
    final double PI = 3.14159
    return 2 * PI * radius
}

println calculateArea(5)
println calculateCircumference(5)

Exercici 2: Creació d'una Classe

Crea una classe Car amb les propietats make, model i year. Afegeix un mètode displayInfo que imprimeixi la informació del cotxe.

Solució:

class Car {
    String make
    String model
    int year

    Car(String make, String model, int year) {
        this.make = make
        this.model = model
        this.year = year
    }

    void displayInfo() {
        println "Make: ${make}, Model: ${model}, Year: ${year}"
    }
}

def car = new Car("Toyota", "Corolla", 2020)
car.displayInfo()

Conclusió

Seguir les convencions d'estil de codi és essencial per mantenir el codi net, llegible i fàcil de mantenir. Aquestes pràctiques no només ajuden a evitar errors, 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 Groovy sigui no només net, sinó també eficient.

© Copyright 2024. Tots els drets reservats