Jeśli chodzi o twoje drugie pytanie, nie znam żadnych opublikowanych badań ani najlepszych praktyk. Jeśli chodzi o pierwsze pytanie, mogę przedstawić pewne spostrzeżenia z własnego doświadczenia z podobnym długowiecznym produktem, w którym czasami nazwy „wewnętrzne” i „zewnętrzne” są czasami różne.
Nazwy, które naprawdę chciałbym naprawić, to „homofony”, w których jedno imię jest używane zarówno wewnętrznie, jak i zewnętrznie do różnych celów . Może to być naprawdę mylące, szczególnie jeśli dwie rzeczy nie są całkowicie różne (takie, że kontekst pomaga jednoznacznie określić). Jednym (abstrakcyjnym) przykładem tego w moim osobistym doświadczeniu jest to, że wewnętrznie masz coś takiego jak Foo
zbiór wielokrotności FooEntity
; zewnętrznie tylko ten ostatni jest widoczny i nazywa się „Foo”. Zajęło mi trochę czasu, aby dowiedzieć się, że kiedy instrukcja obsługi mówiła o wielu „Foo”, w rzeczywistości oznaczało to wiele FooEntity
(w jednym Foo
), jeśli nadal ma to dla ciebie sens.
Po drugie, chciałbym naprawić wszelkie „synonimy”, w których niektóre nazwy zewnętrzne zostały użyte wewnętrznie. Podobnie jak w nazwach zmiennych, częściach nazw metod / funkcji i tak dalej. Dzieje się tak często, gdy programiści implementują coś bezpośrednio z opisu wymagań klienta i zapominają o „tłumaczeniu” nazw. Kiedy to nastąpi, „niewłaściwa” nazwa również się rozprzestrzenia, ponieważ inni programiści kopiują / wklejają część tego kodu, aby na przykład użyć go jako szablonu dla nowego kodu. Te synonimy nie są tak mylące, ale mogą być denerwujące, ponieważ jeśli szukasz kodu w poszukiwaniu jakichkolwiek odniesień, Bar
możesz pamiętać, że niektóre części mogą nazywać goQux
, więc musisz wyszukać dwa razy. (Może być gorzej w językach dynamicznie typowanych niż w językach statycznych, ponieważ trzeba wyszukiwać części nazw zmiennych / funkcji / ... zamiast nazwy ich typu.) Co do odwrotnego przypadku „synonimów” ”, W którym nazwa wewnętrzna została użyta zewnętrznie: zwykle nie zdarza się to tak często, ponieważ pracownicy obsługi klienta i tak dalej są zwykle mniej świadomi wewnętrznych nazw, chociaż zakładam, że jest to mylące dla klientów, kiedy to się dzieje.
Jeśli możesz uniknąć lub naprawić przynajmniej dwie powyższe sytuacje, nie jestem pewien, czy powinieneś posunąć się tak daleko, aby wszystkie wewnętrzne nazwy były takie same jak zewnętrzne. Prawdopodobnie istnieje dobry powód, dla którego nazwy wewnętrzne nie uległy zmianie, gdy nazwa zewnętrzna została w pierwszej kolejności inna niż nazwa wewnętrzna. Z mojego osobistego doświadczenia wynika, że dobrym powodem jest obsługa starszych wersji produktu; może być trudno połączyć poprawkę błędu z wersji czyszczenia przed nazwami do najnowszej wersji, jeśli trzeba zmienić dużo kodu.