En aquest tema, aprendrem com provar i desplegar la nostra aplicació Go. Les proves són una part essencial del desenvolupament de programari, ja que ens ajuden a assegurar-nos que el nostre codi funciona correctament i que no introduïm errors quan fem canvis. El desplegament és el procés de posar la nostra aplicació en producció perquè els usuaris finals puguin accedir-hi.

  1. Proves en Go

1.1 Tipus de Proves

  • Proves Unitàries: Verifiquen la funcionalitat de components individuals del codi.
  • Proves d'Integració: Verifiquen que diferents components del sistema funcionen correctament junts.
  • Proves de Sistema: Verifiquen el sistema complet en un entorn que simula l'ús real.

1.2 Escriptura de Proves Unitàries

Go té un paquet integrat testing que facilita l'escriptura de proves unitàries.

Exemple de Prova Unitària

package main

import (
    "testing"
)

// Funció a provar
func Suma(a int, b int) int {
    return a + b
}

// Prova unitària per a la funció Suma
func TestSuma(t *testing.T) {
    resultat := Suma(2, 3)
    esperat := 5
    if resultat != esperat {
        t.Errorf("Suma(2, 3) = %d; esperat %d", resultat, esperat)
    }
}

Executar Proves

Per executar les proves, utilitza la comanda:

go test

1.3 Proves d'Integració

Les proves d'integració poden requerir la configuració de recursos externs com bases de dades o serveis web.

Exemple de Prova d'Integració

package main

import (
    "database/sql"
    "testing"
    _ "github.com/lib/pq"
)

func TestDatabaseConnection(t *testing.T) {
    db, err := sql.Open("postgres", "user=postgres dbname=test sslmode=disable")
    if err != nil {
        t.Fatal(err)
    }
    defer db.Close()

    err = db.Ping()
    if err != nil {
        t.Fatal(err)
    }
}

  1. Desplegament d'Aplicacions Go

2.1 Construcció de l'Aplicació

Per construir la teva aplicació Go, utilitza la comanda:

go build -o myapp

Això generarà un executable anomenat myapp.

2.2 Desplegament en un Servidor

Hi ha diverses maneres de desplegar una aplicació Go. Aquí veurem com fer-ho en un servidor Linux.

Passos per al Desplegament

  1. Transferir l'Executable: Utilitza scp per transferir l'executable al servidor.
    scp myapp user@server:/path/to/deploy
    
  2. Configurar el Sistema: Assegura't que el servidor tingui totes les dependències necessàries.
  3. Executar l'Aplicació: Inicia l'aplicació en el servidor.
    ./myapp
    

2.3 Utilització de Contenidors

Els contenidors com Docker poden simplificar el desplegament.

Exemple de Dockerfile

FROM golang:1.19-alpine

WORKDIR /app

COPY . .

RUN go build -o myapp

CMD ["./myapp"]

Construir i Executar el Contenidor

docker build -t myapp .
docker run -p 8080:8080 myapp

  1. Millors Pràctiques

3.1 Automatització de Proves i Desplegament

Utilitza eines com CI/CD (Integració Contínua/Desplegament Continu) per automatitzar el procés de proves i desplegament.

3.2 Monitorització i Registre

Implementa eines de monitorització i registre per mantenir la teva aplicació en producció.

3.3 Seguretat

Assegura't que la teva aplicació sigui segura, seguint les millors pràctiques de seguretat.

Conclusió

En aquesta secció, hem après com escriure proves unitàries i d'integració per assegurar-nos que el nostre codi funciona correctament. També hem vist com construir i desplegar la nostra aplicació Go en un servidor, així com utilitzar contenidors per simplificar el procés de desplegament. Finalment, hem revisat algunes millors pràctiques per mantenir la nostra aplicació segura i fiable en producció.

Amb això, hem completat el nostre curs de programació en Go. Ara estàs preparat per desenvolupar, provar i desplegar aplicacions robustes i eficients utilitzant Go. Felicitats!

© Copyright 2024. Tots els drets reservats