Primeres decisions
Documenta les decisions
Es molt important deixar constància escrita de les decisions que organitzen i normalitzen el projecte. S’ha de crear un document de “decàleg”, on l’equip acorda certes normes bàsiques de tractament del codi, dels arxius que es generen, de l’organització del repositori, etc.
Estructura del projecte
Sigui quina sigui l’estructura del projecte finalment triada, un cop triada no es pot canviar i tothom l’ha de seguir.
Proposta d’organització:
- Projecte
- BBDD: Scripts de la BBDD i generadors de script
- Controladors: Controladors del model MVC
- Documentació: Documentació i diagrames
- Excepcions
- Interfaces
- Model: Classes del model MVC
- Utils: Utilitats que fan ús des de MVC
- Vista: Vistes del model MVC
Decideix els noms i crea document
Obliga i obliga’t a emprar sempre la mateixa nomenclatura
- Nom de carpetes i paquets
- Nom de classes. Sobre tot: Ús de prefixos i idioma
- Normes per a l’ús de Interfícies. Una classe de domini: Que està obligada a implementar?
- Ús de herència: Certes classes hereten obligatòriament d’una altra abstracta que ja implementa funcionalitats comunes
- Nom de mètodes
- Norma de sobrecàrrega de mètodes
- Nomenclatura de paràmetres, (ús de prefixos)
- Nomenclatura de propietats i variables privades de propietat, (ús de prefixos, ús de get/set, etc)
Model MVC
- Controladors
- DBManager
- CtrlClasseModel1
- CtrlClasseModel2
- Model
- Model
- ClasseModel1
- ClasseModel2
- Vista
- FrmFuncionalitat1
- FrmFuncionalitat2
Sigui com sigui: Sempre de la mateixa manera. Un cop decidida l’estructura, aquesta s’ha de respectar. Tant en les carpetes, com en els noms de classes, mètodes, ús de interfaces, etc
Material
Descarregar article
La BBDD està sotmesa al control de codi
No programis directament el SGBD
Crea scripts
Automatitza la creació del script general
Manté tots els scripts en el repositori de codi
A partir d’un cert punt, (quan es determini en l’equip, però sobre tot quan l’aplicatiu ja es troba parcialment en producció), està prohibit substituir taules, i has de crear ALTERs. Els alters s’afegeixen al script.de la taula. Cada taula te el seu script
Les dades de migració i de “punt 0” també es mantenen al script
Cada cert temps, si és possible, els ALTERs es consoliden i es torna a crear taula.
Empra procediments emmagatzemats sempre que sigui possible
Estructura de la carpeta BBDD
- BBDD: Scripts de la BBDD i generadors de script
- Creació: Scripts generals per a crear la BD, passar dades inicials, etc.
- Procediments: Scripts dels procediments emmagatzemats
- Taules: Scripts de definició de taules i alers
- Relacions: Scripts de definició de les relacions entre taules
- Vistes: Scripts de definició de les vistes
Per a cada entitat del Model hauries de tenir:
- Un script per la definició de la persistència en BBDD, (la taula o taules).
- Un script per la selecció a partir de PK i per a les cerques i filtres, (model_load.sql). Generalment en el mateix script, però poden estar en dos, depenent del que els filtres i cerques necessitin retornar.
- Un script per a l’alta i edició, (model_save.sql). Si és possible, empra cursors per al INSERT/UPDATE, i fes que el PROCEDURE tingui un únic paràmetre XML. Automatitza el INSERT/UPDATE fent un SELECT previ per comprovar si el registre existeix
- Un script per a l’esborrar, (model_erase.sql)
- Inclou a cada script la conveniència o no de verificar si existeix, i l’acció a fer, (no fer res, esborrar, …).
Altres qüestions sobre els procediments emmagatzemats
- Res de instruccions SQL en codi, excepte en casos molt concrets
- El nom dels procediments han de seguir una estructura determinada i sempre la mateixa. Per exemple:
PEEntitatX[CARREGA | ESBORRA | SALVA]
- Es millor precedir d’un prefix tots els procediments, de forma que apareguin agrupats a la BBDD. Vigileu amb prefixos del tipus “SP” o altres que puguin tenir un ús especial al SGBD
- En el que a qüestions de càrrega i salvatatge es refereix. Aprofitar les possibilitats d’scripting per portar la lògica al script. SQL permet moltes eines per a seleccionar registres mitjançant filtres. En la messura del possible, no fem scripts que retornen tot i després fem filtres sobre codi
Model MVC
descarrega l’article complet
Empra Interfaces
descarrega l’article complet
Comprovacions bàsiques sobre el Model
Els constructors del model
Sobrecàrrega de mètodes
descarrega l’article complet
Els controladors
Els controladors de la BBDD
Els controladors del Model
descarrega l’article complet
Tractar en tot moment les excepcions
Excepcions a nivell de mètode
Centralitzar la canalització de les excepcions
Emprar excepcions pròpies
Gestionar les excepcions a partir d’un gestor
descarrega l’article complet
descarrega el document