La gestió de dependències és un aspecte crucial en el desenvolupament de programari modern. Les dependències són biblioteques, frameworks o altres components que el teu projecte necessita per funcionar correctament. Una gestió adequada de les dependències garanteix que el teu projecte sigui estable, segur i fàcil de mantenir.
Conceptes Clau
- Què són les Dependències?
 
Les dependències són components externs que el teu projecte necessita per funcionar. Poden ser biblioteques de tercers, frameworks, o altres mòduls de programari.
- Tipus de Dependències
 
- Dependències de Compilació: Necessàries per compilar el codi.
 - Dependències de Runtime: Necessàries per executar el codi.
 - Dependències de Desenvolupament: Necessàries només durant el desenvolupament, com eines de prova o compiladors.
 
- Gestors de Paquets
 
Els gestors de paquets són eines que automatitzen el procés d'instal·lació, actualització, configuració i eliminació de dependències. Alguns exemples inclouen:
- npm per a JavaScript
 - pip per a Python
 - Maven per a Java
 
Eines Populars per a la Gestió de Dependències
npm (Node Package Manager)
npm és el gestor de paquets per a Node.js. Permet instal·lar, actualitzar i gestionar les dependències del teu projecte.
Exemple de package.json
{
  "name": "my-project",
  "version": "1.0.0",
  "dependencies": {
    "express": "^4.17.1",
    "mongoose": "^5.10.9"
  },
  "devDependencies": {
    "jest": "^26.6.3"
  }
}pip (Python Package Installer)
pip és el gestor de paquets per a Python. Permet instal·lar i gestionar paquets de Python.
Exemple de requirements.txt
Maven
Maven és una eina de gestió de projectes i comprensió per a Java. Utilitza un fitxer pom.xml per gestionar les dependències.
Exemple de pom.xml
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>my-project</artifactId>
  <version>1.0.0</version>
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>5.2.9.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>Bones Pràctiques en la Gestió de Dependències
- Utilitza Versions Específiques
 
Sempre que sigui possible, especifica versions concretes de les teves dependències per evitar problemes de compatibilitat.
- Actualitza Regularment
 
Mantén les teves dependències actualitzades per aprofitar les millores de seguretat i funcionalitats noves.
- Utilitza Entorns Virtuals
 
Per a llenguatges com Python, utilitza entorns virtuals per aïllar les dependències del teu projecte.
- Revisa les Dependències
 
Revisa regularment les teves dependències per detectar vulnerabilitats de seguretat.
Exercici Pràctic
Objectiu
Configurar i gestionar les dependències d'un projecte utilitzant npm.
Passos
- 
Inicialitza un Projecte Node.js
npm init -y - 
Instal·la Dependències
npm install express mongoose - 
Instal·la Dependències de Desenvolupament
npm install --save-dev jest - 
Revisa el Fitxer
package.jsonVerifica que les dependències s'han afegit correctament. 
Solució
El fitxer package.json hauria de semblar-se a això:
{
  "name": "my-project",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "jest"
  },
  "dependencies": {
    "express": "^4.17.1",
    "mongoose": "^5.10.9"
  },
  "devDependencies": {
    "jest": "^26.6.3"
  }
}Resum
En aquesta secció, hem après què són les dependències, els diferents tipus de dependències, i com gestionar-les utilitzant diferents eines com npm, pip i Maven. També hem revisat algunes bones pràctiques per a la gestió de dependències i hem realitzat un exercici pràctic per consolidar els conceptes apresos. La gestió adequada de les dependències és essencial per mantenir la qualitat i la seguretat del teu projecte de programari.
Curs de CI/CD: Integració i Desplegament Continu
Mòdul 1: Introducció a CI/CD
Mòdul 2: Integració Contínua (CI)
- Introducció a la Integració Contínua
 - Configuració d'un Entorn de CI
 - Automatització de la Construcció
 - Proves Automatitzades
 - Integració amb Control de Versions
 
Mòdul 3: Desplegament Continu (CD)
- Introducció al Desplegament Continu
 - Automatització del Desplegament
 - Estratègies de Desplegament
 - Monitoratge i Retroalimentació
 
Mòdul 4: Pràctiques Avançades de CI/CD
Mòdul 5: Implementació de CI/CD en Projectes Reals
Mòdul 6: Eines i Tecnologies
Mòdul 7: Exercicis Pràctics
- Exercici 1: Configuració d'un Pipeline Bàsic
 - Exercici 2: Integració de Proves Automatitzades
 - Exercici 3: Desplegament en un Entorn de Producció
 - Exercici 4: Monitoratge i Retroalimentació
 
