Movimento 0deps: Dipendenze locali e contratti immutabili

Gli sviluppatori software spesso installano centinaia di librerie esterne in ogni progetto. I framework moderni si affidano a migliaia di dipendenze transitive. Ciò significa che la tua applicazione esegue codice proveniente da centinaia di contributori sconosciuti.

Questa velocità crea un rischio enorme per la catena di approvvigionamento del software (software supply chain).

Il movimento 0deps pone una domanda semplice: E se la tua applicazione eseguisse solo codice che controlli effettivamente?

Ogni dipendenza aumenta la tua superficie di attacco. Può introdurre falle di sicurezza, essere abbandonata o rompere il tuo codice con un nuovo aggiornamento. Perdi il controllo sul codice in esecuzione nel tuo ambiente di produzione.

Nel modello 0deps, porti tutte le dipendenze direttamente nel repository del tuo progetto. Non le scarichi dinamicamente durante l'installazione. Tutto ciò che è necessario per compilare ed eseguire la tua app è già presente.

Questo approccio offre diversi vantaggi:

  • Build riproducibili
  • Minore dipendenza dai registry di pacchetti esterni
  • Audit di sicurezza centralizzati
  • Maggiore prevedibilità
  • Minore rischio per la supply chain del software

Il principio fondamentale non è impedire che il codice cambi. Gli algoritmi e le correzioni di sicurezza devono evolversi. Ciò che rimane stabile è il contratto pubblico.

Ogni libreria espone un'interfaccia progettata con cura.

  • authenticate()
  • createSession()
  • verifyPasskey()

Queste funzioni definiscono un contratto. Quel contratto non cambia mai. Puoi riscrivere il codice sottostante o sostituire interamente la libreria. Il resto della tua applicazione rimane invariato perché comunica solo con il contratto.

Quando appare una vulnerabilità, la correggi internamente. Aggiorni l'implementazione dietro l'interfaccia. L'API pubblica rimane identica. La tua applicazione continua a funzionare senza modifiche al codice.

Questa struttura utilizza un adapter interno per isolare il codice esterno: Applicazione ↓ Interfaccia pubblica ↓ Adapter ↓ Implementazione

Se una libreria esterna scompare, devi solo aggiornare l'adapter. Nessun'altra parte della tua app si rompe.

Il movimento 0deps non combatte l'open source. Cambia il modo in cui lo utilizzi. Le librerie diventano componenti integrati che auditi e versioni tu stesso.

Questo crea software che dura per decenni. Le implementazioni cambiano, ma i tuoi contratti rimangono. Questa stabilità rende il tuo software prevedibile e resiliente.

Fonte: https://dev.to/fullagenticstack/mouvement-0deps-dependances-locales-contrats-immuables-et-securite-par-conception-24c2