En aquest tema, explorarem les millors pràctiques i consells per escriure codi Dart de manera eficient, llegible i mantenible. Aquestes recomanacions estan basades en l'experiència de la comunitat i en les guies oficials de Dart.

Objectius del Tema

  • Entendre la importància de seguir les millors pràctiques en la programació.
  • Aprendre consells específics per millorar la qualitat del codi Dart.
  • Aplicar aquestes pràctiques en exemples pràctics.

Contingut

Estil i Format del Codi

Seguir un estil consistent fa que el codi sigui més fàcil de llegir i mantenir. Dart té una eina anomenada dartfmt que ajuda a formatar el codi automàticament.

Exemples de Formatació

Abans de formatar:

void main(){print('Hola, món!');}

Després de formatar:

void main() {
  print('Hola, món!');
}

Consells de Formatació

  • Utilitza espais en lloc de tabulacions.
  • Mantén les línies de codi curtes (màxim 80 caràcters).
  • Utilitza salts de línia per separar blocs de codi lògicament diferents.

Nomenclatura

Seguir una convenció de nomenclatura consistent ajuda a entendre el propòsit de les variables, funcions i classes.

Regles de Nomenclatura

  • Variables i funcions: camelCase
  • Classes i enums: PascalCase
  • Constants: SCREAMING_SNAKE_CASE

Exemples

// Variable
int userAge = 25;

// Funció
void calculateAge() {
  // ...
}

// Classe
class UserProfile {
  // ...
}

// Constant
const int MAX_USERS = 100;

Estructura del Codi

Organitzar el codi de manera lògica facilita la seva comprensió i manteniment.

Consells d'Estructura

  • Divideix el codi en funcions petites i específiques.
  • Utilitza fitxers separats per a classes i funcions relacionades.
  • Agrupa les funcions i variables relacionades.

Exemple

// fitxer: user.dart
class User {
  String name;
  int age;

  User(this.name, this.age);

  void displayUser() {
    print('Nom: $name, Edat: $age');
  }
}

// fitxer: main.dart
import 'user.dart';

void main() {
  User user = User('Joan', 30);
  user.displayUser();
}

Optimització del Rendiment

Escriure codi eficient és crucial per a aplicacions de gran escala.

Consells d'Optimització

  • Evita la creació innecessària d'objectes.
  • Utilitza col·leccions adequades per a cada cas.
  • Prefereix les operacions asíncrones per a tasques de llarga durada.

Exemple

// Evita això
List<int> numbers = [];
for (int i = 0; i < 1000; i++) {
  numbers.add(i);
}

// Prefereix això
List<int> numbers = List.generate(1000, (i) => i);

Consells Addicionals

Documentació

  • Escriu comentaris clars i concisos.
  • Utilitza la documentació de Dart (///) per a funcions i classes.

Exemple de Documentació

/// Aquesta funció calcula la suma de dos nombres.
int suma(int a, int b) {
  return a + b;
}

Gestió d'Errors

  • Utilitza excepcions per gestionar errors.
  • Proporciona missatges d'error clars.

Exemple de Gestió d'Errors

int divide(int a, int b) {
  if (b == 0) {
    throw ArgumentError('El divisor no pot ser zero');
  }
  return a ~/ b;
}

Exercicis Pràctics

Exercici 1: Formatació

Formatar el següent codi utilitzant dartfmt:

void main(){int a=5;int b=10;print('La suma és: ${a+b}');}

Exercici 2: Nomenclatura

Canvia els noms de les següents variables i funcions per seguir les convencions de nomenclatura:

int UserAge = 25;
void CalculateAge() {
  // ...
}

Exercici 3: Estructura

Reorganitza el següent codi en fitxers separats:

class Product {
  String name;
  double price;

  Product(this.name, this.price);
}

void main() {
  Product product = Product('Llibre', 15.99);
  print('Producte: ${product.name}, Preu: ${product.price}');
}

Solucions

Solució Exercici 1

void main() {
  int a = 5;
  int b = 10;
  print('La suma és: ${a + b}');
}

Solució Exercici 2

int userAge = 25;
void calculateAge() {
  // ...
}

Solució Exercici 3

product.dart

class Product {
  String name;
  double price;

  Product(this.name, this.price);
}

main.dart

import 'product.dart';

void main() {
  Product product = Product('Llibre', 15.99);
  print('Producte: ${product.name}, Preu: ${product.price}');
}

Conclusió

Seguir les millors pràctiques en la programació amb Dart no només millora la qualitat del codi, sinó que també facilita la seva mantenibilitat i llegibilitat. Aplicar aquestes pràctiques des del principi del desenvolupament pot estalviar temps i esforç a llarg termini. Ara que has après aquests consells, estàs preparat per escriure codi Dart més efectiu i professional.

© Copyright 2024. Tots els drets reservats