Was bedeutet "Auflösen" beim Programmieren? [geschlossen]

12

Ich sehe an vielen Stellen, an denen das Wort Resolveverwendet wird, in Dependency Injection (Auflösen einer Implementierung in eine Schnittstelle), Paketmanagern (Beispiel: Auflösen von Paketabhängigkeiten), Web (Beispiel: Auflösen eines Hostnamens).

So tut , was die Logik des Codes so besonders machen , dass jemand wählen , das Wort macht Resolveüber einen einfachen Convertoder Transformoder sogar ein Get?

anouar.bag
quelle
4
Die Definition und Verwendung eines Wortes in Bezug auf die Softwareentwicklung basiert hauptsächlich auf Meinungen? ... Wow.
Svidgen

Antworten:

14

Der Unterschied ist gering, aber konsistent. Um eine Darstellung in eine andere umzuwandeln, müssen dieselben Daten in einem anderen Format ausgedrückt werden - beispielsweise eine Hexadezimalzahl in eine Dezimalzahl oder Zeichenfolgen in gemischten Groß- und Kleinschreibung in eine Zeichenfolge mit ganz niedrigerer Schreibweise. Normalerweise benötigen Sie nur ein festes Regelwerk, um eine solche Transformation durchzuführen.

Das Auflösen eines Namens umfasst normalerweise das Abfragen eines Repositorys, das Namen mit Informationen verknüpft , die ohne das Repository nicht vorhergesagt werden können. google.comwird möglicherweise in eine bestimmte IP-Adresse aufgelöst (tatsächlich mehrere), aber das ist ein Unfall in der IP-Zuweisungshistorie - es könnte genauso gut eine völlig andere Nummer gewesen sein, und es gibt keine Möglichkeit, diese Übersetzung zu erstellen, die irgendwie nicht funktioniert Sie müssen die gesamte Registrierung speichern oder online abfragen. In ähnlicher Weise erfordert das Auflösen von Paketabhängigkeiten normalerweise die Installation der missig-Pakete. Es reicht nicht aus, die Namen der fehlenden Komponenten zu kennen, sondern muss deren Inhalt tatsächlich erfassenund der Inhalt ist nicht allein anhand des Namens vorhersehbar ("QMail" klingt wie ein E-Mail-Programm, aber Sie können seine genauen Eigenschaften nicht nur anhand des Namens vorhersagen, ohne ihn zu installieren, da der Name weit weniger Informationen transportiert als das kompilierte Programm). .

Daher sollten Sie den Begriff "Auflösen" nicht für etwas verwenden, das lediglich eine kontextfreie Datentransformation ist. Reservieren Sie es für Situationen, in denen eine erhebliche Menge an Informationen durch jeden Namen symbolisiert wird, so dass die einzig vernünftige Regelung darin besteht, ein zentrales Register dafür zu haben.

Kilian Foth
quelle
Irgendeine Idee, woher diese Terminologie kommt (eine Analogie oder etwas)?
anouar.bag
@ anouar.bag So lösen Sie: Finden Sie eine Antwort oder eine Lösung für etwas ( merriam-webster.com/dictionary/resolve[1] ) => Wenn Sie ein Symbol / einen Namen lösen , suchen Sie die Antwort für dieses Symbol / diesen Namen, dh bestimmen Sie, was es ist.
Christophe