In Bezug auf Ihre zweite Frage sind mir keine veröffentlichten Studien oder Best Practices bekannt. In Bezug auf die erste Frage kann ich einige Beobachtungen aus persönlicher Erfahrung mit einem ähnlichen langlebigen Produkt machen, bei denen die Namen "intern" und "extern" manchmal unterschiedlich sind.
Die Namen, die ich wirklich gerne reparieren würde, sind die "Homophone", bei denen ein Name sowohl intern als auch extern für verschiedene Dinge verwendet wird. Dies kann sehr verwirrend sein, insbesondere wenn die beiden Dinge nicht völlig verschieden sind (so dass der Kontext die Begriffsklärung erleichtert). Ein (abstrahiertes) Beispiel dafür ist meiner persönlichen Erfahrung nach, dass Sie intern so etwas wie Foo
eine Sammlung von Mehrfachen haben FooEntity
; äußerlich ist nur letzteres sichtbar und wird als "Foo" bezeichnet. Ich habe eine Weile gebraucht, um herauszufinden, dass das Kundenhandbuch, als es von mehreren "Foo" sprach, tatsächlich mehrere FooEntity
(in einem einzigen Foo
) bedeutete, wenn das für Sie noch Sinn macht.
Zweitens möchte ich alle "Synonyme" korrigieren, bei denen intern ein externer Name verwendet wurde. Wie bei Variablennamen, Teilen von Methoden- / Funktionsnamen usw. Dies passiert häufig, wenn Entwickler etwas direkt aus einer Kundenanforderungsbeschreibung implementieren und vergessen, die Namen zu "übersetzen". Sobald dies passiert, wird der „falsche“ Name ebenfalls verbreitet, da andere Entwickler zufällig einen Teil des Codes kopieren / einfügen, um ihn beispielsweise als Vorlage für neuen Code zu verwenden. Diese Synonyme sind nicht so verwirrend, aber sie können ärgerlich sein, da Sie beim Durchsuchen des Codes nach Verweisen Bar
möglicherweise bedenken müssen, dass einige Teile darauf verweisen könnenQux
Sie müssen also zweimal suchen. (Dies kann jedoch in dynamisch getippten Sprachen schlimmer sein als in statischen, da Sie nach Teilen des Namens von Variablen / Funktionen / ... suchen müssen, anstatt nach dem Namen ihres Typs.) Wie im umgekehrten Fall von „Synonymen“ “, Bei dem ein interner Name extern verwendet wurde: Dies kommt in der Regel nicht so häufig vor, da die Mitarbeiter des Kundensupports die internen Namen in der Regel weniger kennen, obwohl ich davon ausgehe, dass dies für die Kunden verwirrend ist.
Wenn Sie zumindest die beiden oben genannten Situationen vermeiden oder beheben können, bin ich mir nicht sicher, ob Sie so weit gehen sollten, dass alle internen Namen mit den externen Namen identisch sind. Es gibt wahrscheinlich einen guten Grund, warum die internen Namen auch nicht geändert wurden, als der externe von dem internen Namen abweichend gemacht wurde. Meiner persönlichen Erfahrung nach ist dies ein guter Grund, ältere Versionen des Produkts zu unterstützen. Es könnte schwierig werden, eine Fehlerbehebung von einer Version vor der Namensbereinigung auf die neueste Version zusammenzuführen, wenn viel Code geändert werden muss.