calaix[À]gil

www.calaixagil.com
jlmoga@gmail.com

CAT | ESP | EN




Decàleg del treball en equip

CAT

Data publicació: 14/03/2020
Última modificació: 11/11/2022
Quan es treballa en equip, i el projecte va creixent de mida i de complexitat, convé tenir una sèrie de nocions i de normes clares.

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

Com implementa les interfaces el domini

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