Du siehst unsere Seite gerade im Ecomodus.

sda - Sandstorm Dependency Analysis

Um einen Überblick über ein Software System zu vermitteln, wird häufig auf Schichten zurückgegriffen. Die Module des Systems werden in Schichten dargestellt und gestapelt. Obere Schichten dürfen untere Schichten benutzen, aber nicht umgekehrt:

  • Features bauen auf anderen Features auf
  • REST APIs benutzen Datenbankschichten
Abhänigkeiten in Sandstorm Dependenc Analysis
Bild laden
Graph mit Kästchen und Pfeilen, Pfeile zeigen nur von oben nach unten

Oft werden die Schichten zum Projektstart entworfen und der Quellcode entsprechend strukturiert. Das Problem: mit der Zeit kann der Überblick schnell verloren gehen, die initialen Schichten sind nicht mehr aktuell und die momentanen Schichten existieren nur in den Köpfen einiger Entwickler. Schnell ist ein Aufruf auf eine Komponente hinzugefügt, die "in die falsche Richtung" zeigt und es entstehen zyklische Abhängigkeiten.

Die Struktur des Systems und die Struktur des Quellcodes passen nicht mehr zusammen, oder gehen langsam verloren.

Der Quellcode spiegelt die Struktur nicht mehr wider
Bild laden
Viele Kästchen mit Pfeilen wild durcheinander

Sandstorm Dependency Analysis (kurz sda) ist ein Open-Source CLI Tool um die Top-Level Struktur im Quellcode darzustellen und zu überwachen.

Das Tool befindet sich auf github.com/sandstorm/dependency-analysis