Rekursives Abhängigkeitsmanagement: Intelligenter, tiefer, sicherer

Automatisch übersetzt von Deepl

Nach der Einführung der Follow 4D Version Rule freuen wir uns, in 4D 20 R10 eine neue Stufe der Automatisierung und Zuverlässigkeit einzuführen: die vollständig rekursive Auflösung von Abhängigkeiten.

Egal, ob Sie eine Komponente hinzufügen, aktualisieren oder entfernen, der Dependency Manager arbeitet jetzt rekursiv und stellt sicher, dass jede Aktion, die Sie durchführen, in Ihrem gesamten Abhängigkeitsbaum korrekt wiedergegeben wird.

Eine Aktion, alle Abhängigkeiten

Wenn Sie eine primäre Abhängigkeit hinzufügen, sei es von GitHub oder einem lokalen Ordner, lädt 4D:

  • Lädt rekursiv alle benötigten Abhängigkeiten
  • Wendet die Versionseinschränkungen an, die in Ihrer dependencies.json definiert sind.

Sie brauchen sich keine Gedanken über fehlende Teile oder inkompatible Versionen zu machen, denn Ihr vollständiger Abhängigkeitsbaum wird automatisch aufgelöst und geladen.

Rekursive Versionsbehandlung

Wenn mehrere Komponenten unterschiedliche Versionen der gleichen Abhängigkeit erfordern:

  • Der Dependency Manager prüft die erforderlichen Bereiche und wählt eine Version aus, die nach Möglichkeit alle Einschränkungen erfüllt
  • Wenn eine Version direkt als primäre Abhängigkeit deklariert wird, hat diese Version Vorrang vor indirekt benötigten Versionen.

Mit diesem Ansatz bleibt Ihre Umgebung stabil und konsistent, auch wenn Ihr Projekt wächst.

Eine Benutzeroberfläche, die die gesamte Struktur widerspiegelt

Die Oberfläche der Projektabhängigkeiten wurde aktualisiert, um die rekursive Natur der Abhängigkeiten Ihres Projekts zu verdeutlichen:

  • Registerkarte „Alle“: Zeigt eine flache Liste aller Abhängigkeiten (sowohl primäre als auch sekundäre), die in Ihrem Projekt verwendet werden.
  • Registerkarte „Deklariert“: Ein neuer Abschnitt zwischen „Alle“ und „Aktiv“, der nur die Abhängigkeiten auflistet, die Sie explizit in dependencies.json deklariert haben.
  • Sekundäre Abhängigkeiten sind deutlich gekennzeichnet, und wenn Sie mit dem Mauszeiger über eine Abhängigkeit fahren, zeigt ein Tooltip an, welche Komponente(n) sie benötigen. Alles ist transparent.

Eine Aktion – 4D erledigt den Rest

Jede Änderung, die Sie vornehmen, sei es das Hinzufügen, Entfernen oder Aktualisieren einer Komponente, wird nun rekursiv durch Ihren gesamten Abhängigkeitsgraphen propagiert.

Sie profitieren davon:

  • Automatisches Laden der erforderlichen Unterabhängigkeiten
  • Intelligente Versionsauflösung mit klaren Vorrangregeln
  • Sicheres Entfernen mit Bewusstsein für die Auswirkungen
  • Eine Benutzeroberfläche, die die tatsächliche Struktur Ihres Projekts widerspiegelt

FÜR KOMPONENTENENTWICKLER

Wenn Sie Ihre eigenen Komponenten entwickeln, fragen Sie sich vielleicht: Wie deklariere ich meine Abhängigkeiten? Jede Komponente muss ihre eigene dependencies.json-Datei enthalten. Diese Datei spezifiziert die Abhängigkeiten, die für das ordnungsgemäße Funktionieren der Komponente erforderlich sind, zusammen mit ihren Versionsbeschränkungen.

Dieser Mechanismus funktioniert sowohl mit lokalen Abhängigkeiten als auch mit Abhängigkeiten, die auf GitHub gehostet werden. Für eine bessere Portabilität und gemeinsame Nutzung wird jedoch die Verwendung von GitHub als beste Praxis angesehen. Wenn Sie eine Komponente erstellen, stellen Sie sicher, dass die Datei dependencies.json im endgültigen Paket enthalten ist. Die volle Unterstützung für diese Funktion ist ab 4D 20 R10 verfügbar. Wenn Sie mit älteren Komponenten arbeiten, müssen Sie diese neu erstellen, um die Vorteile der automatischen rekursiven Auflösung zu nutzen.

Probieren Sie es jetzt aus und erleben Sie eine intelligentere, zeitsparende Art, Ihre Abhängigkeiten zu verwalten und weniger Zeit mit der Fehlersuche zu verbringen.

David Azancot
4D for iOS Product Owner - David Azancot kam 2017 als Product Owner zum 4D Produktteam. Er ist verantwortlich für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen. Zu seinen Aufgaben gehört es auch, dafür zu sorgen, dass die Implementierungen der Funktionen den Bedürfnissen der Kunden entsprechen. David hat einen MBA-Abschluss in Marketing, Internet und Mobilität vom Leonard De Vinci Institute und begann seine Karriere 2011 bei einem mobilen Start-up-Unternehmen, das später von Madvertise (einer mobilen Marketinggruppe) übernommen wurde. Da er sich leidenschaftlich für mobile Schnittstellen interessiert, war er die erste Wahl, um 2015 interaktive mobile Werbeformate für die Gruppe zu entwickeln. Parallel dazu entwickelt David seit 2012 seine eigenen iOS- und Android-Applikationen.