En aquesta secció, implementarem el projecte final utilitzant els coneixements adquirits al llarg del curs. Aquest projecte servirà com a culminació de tot el que has après fins ara, des de la configuració de l'entorn fins a les millors pràctiques i temes avançats.
Objectius del Projecte
- Crear una aplicació web bàsica amb Groovy i Grails.
- Implementar funcionalitats CRUD (Crear, Llegir, Actualitzar, Eliminar) per a una entitat de dades.
- Utilitzar bases de dades per emmagatzemar i recuperar informació.
- Provar i depurar l'aplicació per assegurar-ne el correcte funcionament.
Passos per a la Implementació
- Configuració del Projecte
Abans de començar amb la implementació, assegura't que el teu entorn de desenvolupament estigui correctament configurat. Si no ho has fet encara, revisa la secció Configuració del Projecte.
- Creació de l'Aplicació Grails
-
Crear un nou projecte Grails:
grails create-app my-groovy-app cd my-groovy-app
-
Executar l'aplicació per assegurar-te que tot està configurat correctament:
grails run-app
Hauries de veure l'aplicació en execució a
http://localhost:8080
.
- Definició de l'Entitat de Dades
-
Crear un domini per a l'entitat
Producte
:grails create-domain-class Producte
-
Definir els atributs de l'entitat
Producte
en el fitxergrails-app/domain/com/example/Producte.groovy
:package com.example class Producte { String nom String descripcio BigDecimal preu Integer estoc static constraints = { nom blank: false, size: 1..255 descripcio nullable: true, maxSize: 1000 preu min: 0.0 estoc min: 0 } }
- Implementació de Funcionalitats CRUD
-
Crear un controlador per a l'entitat
Producte
:grails create-controller Producte
-
Implementar les accions CRUD en el controlador
grails-app/controllers/com/example/ProducteController.groovy
:package com.example class ProducteController { def index() { respond Producte.list() } def show(Long id) { respond Producte.get(id) } def create() { respond new Producte(params) } def save(Producte producte) { if (producte.save(flush: true)) { redirect action: "show", id: producte.id } else { render view: "create", model: [producte: producte] } } def edit(Long id) { respond Producte.get(id) } def update(Producte producte) { if (producte.save(flush: true)) { redirect action: "show", id: producte.id } else { render view: "edit", model: [producte: producte] } } def delete(Long id) { Producte.get(id)?.delete(flush: true) redirect action: "index" } }
- Creació de Vistes
-
Crear vistes per a les accions CRUD en
grails-app/views/producte/
:index.gsp
show.gsp
create.gsp
edit.gsp
-
Exemple de la vista
index.gsp
:<h1>Llista de Productes</h1> <table> <thead> <tr> <th>Nom</th> <th>Descripció</th> <th>Preu</th> <th>Estoc</th> <th>Accions</th> </tr> </thead> <tbody> <g:each in="${producteList}" var="producte"> <tr> <td>${producte.nom}</td> <td>${producte.descripcio}</td> <td>${producte.preu}</td> <td>${producte.estoc}</td> <td> <g:link action="show" id="${producte.id}">Veure</g:link> <g:link action="edit" id="${producte.id}">Editar</g:link> <g:link action="delete" id="${producte.id}" method="DELETE">Eliminar</g:link> </td> </tr> </g:each> </tbody> </table> <g:link action="create">Crear Nou Producte</g:link>
- Proves i Depuració
-
Executar les proves unitàries per assegurar-te que tot funciona correctament:
grails test-app
-
Depurar qualsevol error que pugui sorgir durant les proves o l'execució de l'aplicació.
- Desplegament
-
Preparar l'aplicació per al desplegament:
grails war
-
Desplegar l'arxiu WAR en un servidor d'aplicacions com Tomcat.
Resum
En aquesta secció, hem implementat una aplicació web bàsica utilitzant Groovy i Grails. Hem creat una entitat de dades, implementat funcionalitats CRUD, creat vistes per a les accions, i provat i depurat l'aplicació. Aquest projecte final t'ha permès aplicar tots els coneixements adquirits al llarg del curs i preparar-te per a projectes més complexos en el futur.
Curs de Programació Groovy
Mòdul 1: Introducció a Groovy
Mòdul 2: Sintaxi i Característiques del Llenguatge Groovy
Mòdul 3: Programació Orientada a Objectes en Groovy
Mòdul 4: Característiques Avançades de Groovy
Mòdul 5: Groovy en la Pràctica
- Entrada/Sortida de Fitxers
- Treballant amb XML i JSON
- Accés a Bases de Dades
- Desenvolupament Web amb Groovy
Mòdul 6: Proves i Depuració
Mòdul 7: Ecosistema i Eines de Groovy
- Eina de Construcció Gradle
- Framework de Proves Spock
- Framework Grails
- Altres Llibreries i Eines de Groovy
Mòdul 8: Millors Pràctiques i Temes Avançats
- Estil de Codi i Convencions
- Optimització del Rendiment
- Consideracions de Seguretat
- Concurrència en Groovy