Was macht pfad-typen?
Wenden Sie diese Richtlinien an, wenn Sie neue Typen definieren. Ändern Sie vorhandenen Code nur auf explizite Anfrage und halten Sie Änderungen minimal und verhältnismäßig. Behandeln Sie diese Regeln als den Zielzustand einer laufenden Migration; wenn die Einhaltung schwierig ist, fragen Sie den Benutzer, wie weiter vorgegangen werden soll.
- Verwenden Sie in App-Server-Protokolltypen
LegacyAppPathStringfür die Abwärtskompatibilität während der URI-Migration. An der Protokollgrenze konvertieren Sie es inPathUriund verwenden SiePathUriintern. Für host-lokale Logik, wie einige Konfigurationswerte, verwenden Sie stattdessenAbsolutePathBufoderPathBuf. - Verwenden Sie in Exec-Server-Protokolltypen
PathUri. Intern verwenden SiePathUrioderAbsolutePathBufje nach Bedarf. - Verwenden Sie in Abhängigkeiten, die von beiden Servern gemeinsam genutzt werden,
PathUrioder separate APIs, die ihre Anwendungsfälle entkoppeln. - Tool-Aufrufargumente, die das Modell generieren soll, sollten als reguläre
Strings mit funktionsspezifischem Pfadverarbeitungscode deserialisiert werden.
Migrationsanforderungen
Behalten Sie diese Anforderungen beim Migrieren von Code zur Einhaltung der obigen Richtlinien im Hinterkopf:
- bestehende App-Server-Clients senden und empfangen weiterhin native Legacy-Pfad-Strings
- App-Server kann plattformfremde Pfad-URIs speichern und manipulieren
- Exec-Server-APIs verwenden file:// URIs
- lokal-only Betrieb darf keine modellsichtbaren Texte ändern
- Modell-Tool-Argumente können rohe relative oder absolute Pfade für jedes Betriebssystem enthalten
- Pfadlogik muss funktionieren, bevor die zugehörige Umgebung online ist
- URIs können die Pfadkonvention oder das Betriebssystem des Executors nicht explizit kodieren
- Benutzer dürfen die OS/Pfadkonvention der Umgebung nicht explizit konfigurieren
- URIs sollten noch nicht in Rollouts, Datenbanken oder anderen persistenten Speichern gespeichert werden
- Pfadkonvertierungsfehler: Fail-Closed für sicherheitsrelevante Pfade, Fail-Open für UI/Diagnose
- bevorzugen Sie kleine fokussierte Methoden auf
PathUrioderLegacyAppPathStringgegenüber lokalen Hilfsfunktionen - stellen Sie
PathUri-Werte als URIs in Diagnosen dar
Es ist in Ordnung, wenn die Konvertierung zwischen Pfaden und URIs etwas verlustbehaftet ist, solange sie das Richtige für echte Benutzer tut.
Die Migration zu URIs sollte keine signifikanten neuen Fehlermodi hinzufügen. Wir müssen in einigen Bereichen, die zuvor unfehlbar waren, Fehler anzeigen, aber dies sollte minimal gehalten werden.