Salta el contingut

Documentació, Sistemes de Control de Versions i d'Integració Contínua

1. Eines col·laboratives per a la generació de documentació

La documentació és essencial per garantir el manteniment, l’evolució i la transmissió del coneixement sobre una aplicació o projecte.

Eines habituals: - Editors en línia col·laboratius com Google Docs, OnlyOffice, Etherpad. - Sistemes de wikis com Confluence, MediaWiki o DokuWiki. - Generadors de documentació estàtica com MkDocs o Docusaurus.

Instal·lació i configuració: - Desplegar un servidor propi (Wiki, OnlyOffice, etc.) o utilitzar serveis al núvol. - Configurar usuaris, permisos i rols d’edició. - Establir estructures de carpetes, plantilles bàsiques i normes d’estil de redacció.

Ús: - Redactar manuals tècnics, guies d’instal·lació i tutorials. - Incorporar captures, diagrames i codis d’exemple. - Gestionar versions i revisions dels documents.


2. Creació i utilització de plantilles

Les plantilles garanteixen coherència, estalvien temps i faciliten l’actualització de la documentació.

Exemples de plantilles habituals: - Guia d’instal·lació de software. - Document d’arquitectura tècnica. - Manual d’usuari. - Fitxa d’incidències o canvis (change log).

Bones pràctiques: - Incloure camps obligatoris (data, autor, versió, revisió). - Definir un estil visual coherent (títols, llistes, taules…). - Emmagatzemar les plantilles en un repositori centralitzat.


3. Instal·lació, configuració i ús de sistemes de control de versions

Els sistemes de control de versions (VCS) permeten registrar els canvis realitzats als fitxers d’un projecte i coordinar el treball entre diversos desenvolupadors.

Exemples populars: Git (el més utilitzat), Subversion (SVN), Mercurial.

Instal·lació: - Instal·lar el programari (git, svn, etc.) al sistema local. - Configurar el nom i correu d’usuari. - Crear un repositori local i/o clonar un repositori remot.

Ús bàsic: - add → afegir canvis a l’índex - commit → confirmar canvis al repositori - push → enviar canvis al servidor remot - pull → descarregar canvis del remot - branch → crear o canviar de branca

Integració amb plataformes remotes: GitHub, GitLab, Bitbucket, etc.


3.1 Git

Git és un sistema de control de versions distribuït que guarda un historial complet de canvis en cada còpia del repositori.
És extremadament ràpid, flexible i escalable.

Conceptes clau: - Repositori local i remot: cada usuari té una còpia completa de l’historial. - Commits: punts de control que registren els canvis realitzats. - Branches (branques): línies paral·leles de desenvolupament. - Merge i rebase: combinació de canvis entre branques. - Staging area (índex): zona intermèdia on es preparen els canvis abans de confirmar-los.

Flux de treball bàsic: 1. git clone <url> → clona un repositori remot. 2. git status → comprova l’estat del repositori local. 3. git add <fitxers> → afegeix canvis a l’índex. 4. git commit -m "Missatge" → crea un nou commit. 5. git push → envia els commits al repositori remot. 6. git pull → baixa els canvis nous del remot i els integra.

Bones pràctiques amb Git: - Fer commits freqüents i amb missatges clars i descriptius. - Treballar en branques de funcionalitat i integrar-les a main o develop amb merge requests. - Resoldre conflictes immediatament i amb cura. - Utilitzar .gitignore per evitar pujar fitxers innecessaris. - Revisar el codi amb pull/merge requests abans d’integrar canvis.


4. Operacions avançades

A mesura que el projecte creix, cal dominar operacions més avançades per gestionar el codi de forma eficient:

  • Gestió de branques i estratègies de flux de treball (Git Flow, Trunk Based Development).
  • Merge i rebase per combinar canvis entre branques.
  • Resolució de conflictes en fitxers modificats per diverses persones.
  • Etiquetes (tags) per marcar versions estables.
  • Hooks per automatitzar accions (tests, format, desplegaments).

5. Seguretat dels sistemes de control de versions

La seguretat és clau per evitar pèrdua de dades i accessos no autoritzats.

Bones pràctiques: - Limitar els permisos d’accés als repositoris (lectura/escriptura). - Utilitzar connexions segures (SSH, HTTPS). - Fer còpies de seguretat periòdiques dels repositoris. - Revisar el codi abans de fer merges a branques principals. - Evitar pujar informació sensible (claus API, contrasenyes, certificats…).

Eines útils: - .gitignore per evitar pujar fitxers confidencials. - Escanejadors de secrets i vulnerabilitats (TruffleHog, GitGuardian…).


6. Instal·lació, configuració i ús de sistemes d'integració contínua del codi

La integració contínua (CI) és el procés d’automatitzar la construcció, proves i validació del codi cada vegada que es fan canvis.

Eines habituals: Jenkins, GitLab CI/CD, GitHub Actions, Travis CI.

Instal·lació i configuració: - Instal·lar el servidor de CI (o usar-lo com a servei al núvol). - Configurar un fitxer de pipeline (.gitlab-ci.yml, .github/workflows/...). - Definir etapes: compilació, tests, anàlisi de codi, desplegament automàtic. - Configurar notificacions d’errors i resultats.

Avantatges: - Detectar errors ràpidament. - Reduir el temps de desplegament. - Augmentar la qualitat i coherència del codi.


7. Monitorització contínua de les mètriques de qualitat de l'aplicació

Per garantir que l’aplicació manté un nivell de qualitat adequat, cal monitoritzar-ne aspectes clau de manera contínua.

Tipus de mètriques: - Cobertura de tests automàtics. - Nombre d’errors o vulnerabilitats detectades. - Compliment d’estàndards de codi i estil. - Rendiment (temps de resposta, ús de memòria/CPU).

Eines comunes: - SonarQube, CodeClimate, Coveralls, Lighthouse.

Bones pràctiques: - Integrar les mètriques dins del pipeline de CI. - Definir objectius mínims (per exemple, 80% de cobertura de tests). - Generar informes periòdics i revisar-los en reunions d’equip.