Composable – Packageability (Composierbar – Paketierbarkeit)

Abhängigkeitsverwaltungsmuster

Erfahren Sie mehr über Gut entwickelte anpassungsfähige Komponenten → Composable → Packability → Dependency Management

Wohin schauen?
Produktbereich | Standort
Wie sieht gut aus?
Muster
Plattform | Designstandards ✅ Es gibt Standards zum Einführen oder Ändern von Abhängigkeiten
Plattform | Designstandards ✅ Es gibt Standards zum Deklarieren von Abhängigkeiten
Plattform | Pakete ✅ Keine Metadaten werden paketübergreifend dupliziert
Plattform | Pakete ✅ Bei der Paketentwicklung werden alle Entwicklungsarbeiten in der frühen Phase in Testorganisationen durchgeführt
Plattform | Quellcodeverwaltung ✅ Entwickler können Testorganisationen erstellen und Paketmetadaten erfolgreich über die Quellcodeverwaltung bereitstellen
Plattform | Quellcodeverwaltung ✅ Paketversionen für entsperrte Pakete verwenden Aliasnamen (LATEST), um Abhängigkeiten in sfdx-project.json zu deklarieren

Lockeres Kopplungsmuster

Erfahren Sie mehr über Gut entwickelte anpassungsfähige Komponenten → Composable → Packability → Loose Coupling

Wohin schauen?
Produktbereich | Standort
Wie sieht gut aus?
Muster
Platform | Apex ✅ Von dynamischen Laufzeitinformationen abhängige Methoden verweisen auf geeignete benutzerdefinierte Metadatentypen
Platform | Apex ✅ Allgemeine Services und Boilerplate-Code werden mit abstrakten oder virtuellen Apex-Klassen definiert
Plattform | Designstandards ✅ (Optional) Alle genehmigten Anwendungsfälle für benutzerdefinierte Einstellungen sind klar aufgeführt (sofern vorhanden)
Plattform | Designstandards ✅ Benennungskonventionen behandeln, wie Paketeinheiten angegeben werden
Plattform | Designstandards ✅ Es ist möglich, eine Liste aller aktuell definierten Paketeinheiten (und der zugehörigen Benennungskonventionen) zu suchen und zu finden
Plattform | Designstandards ✅ Es gibt Standards zum Vorschlagen von Paketeinheiten-Ergänzungen oder -Änderungen
Plattform | Organisation ✅ Benutzerdefinierte Metadatentypen bieten dynamische Laufzeitinformationen für Code und deklarative Anpassungen
Plattform | Organisation ✅ Es sind keine benutzerdefinierten Objekte vorhanden, um dynamische Laufzeitinformationen für Code oder deklarative Anpassungen bereitzustellen
Plattform | Organisation ✅ Es sind keine benutzerdefinierten Einstellungen vorhanden oder es sind nur wenige benutzerdefinierte Einstellungen vorhanden und keine sind mit Paketfunktionen verbunden
Plattform | Pakete ✅ In Produktions- oder Sandbox-Instanzen sind keine nicht verwalteten Pakete definiert
Plattform | Pakete ✅ Organisationsabhängige entsperrte Pakete werden nur für Experimente in der Frühphase oder zum Nachweis des Konzepts verwendet
Plattform | Quellcodeverwaltung ✅ package.xml werden nur in der frühen Phase oder in Proof-of-Concept-Projektmanifesten angezeigt

Anti-Pattern der Abhängigkeitsverwaltung

Erfahren Sie mehr über Gut entwickelte anpassungsfähige Komponenten → Composable → Packability → Dependency Management

Wohin schauen?
Produktbereich | Standort
Was vermeiden?
Anti-Pattern
Plattform | Designstandards ⚠️ Designstandards sind nicht vorhanden oder befassen sich nicht damit, wie Abhängigkeiten deklariert werden
Plattform | Pakete ⚠️ Abhängigkeiten werden durch Duplizieren von Metadaten in verschiedenen Paketen umgangen
Plattform | Pakete ⚠️ Die frühzeitige Paketentwicklung erfolgt in Entwickler-Sandbox-Instanzen oder die frühzeitige Paketentwicklung kann nicht in Testorganisationen erfolgen
Plattform | Quellcodeverwaltung ⚠️ Entwickler können nicht erfolgreich mit Testorganisationen mit Quellcodeverwaltung arbeiten
Plattform | Quellcodeverwaltung ⚠️ Paketversionen für entsperrte Pakete werden explizit (ohne LATEST) in sfdx-project.json deklariert

Lose Kopplung Anti-Pattern

Erfahren Sie mehr über Gut entwickelte anpassungsfähige Komponenten → Composable → Packability → Loose Coupling

Wohin schauen?
Produktbereich | Standort
Was vermeiden?
Anti-Pattern
Platform | Apex ⚠️ Allgemeine Services und Boilerplate-Code lassen sich nicht einfach von anderen Klassen unterscheiden
Platform | Apex ⚠️ Methoden verwenden keinen konsistenten Ansatz für den Zugriff auf dynamische Informationen, Laufzeitinformationen oder Methoden, die benutzerdefinierte Objekte nach Informationen zum Laufzeitverhalten oder benutzerdefinierten Codeverweisen abfragen
Platform | Apex ⚠️ Interne Verweise über Klassen und Methoden hinweg sind schwer zu befolgen und in der Codebasis inkonsistent
Plattform | Designstandards ⚠️ Designstandards sind nicht vorhanden oder beziehen sich nicht auf Paketeinheiten und Anwendungsfälle
Plattform | Organisation ⚠️ Benutzerdefinierte Einstellungen werden verwendet
Plattform | Organisation ⚠️ Benutzerdefinierte Objekte sind vorhanden, um dynamische Laufzeitinformationen für Code oder deklarative Anpassungen bereitzustellen
Plattform | Organisation ⚠️ Benutzerdefinierte Metadatentypen werden nicht (oder nicht konsistent) verwendet, um dynamische Laufzeitinformationen für Code und deklarative Anpassungen bereitzustellen
Plattform | Pakete ⚠️ Nicht verwaltete Pakete werden in Produktions- oder Sandbox-Instanzen definiert
Plattform | Pakete ⚠️ Alle Pakete sind organisationsabhängige entsperrte Pakete
Plattform | Quellcodeverwaltung ⚠️ package.xml-Dateien werden zum Steuern von Metadatenbereitstellungen verwendet