po pierwsze
Zadaj sobie pytanie „jaki jest jedyny cel tej klasy?”. Bez przestrzegania zasady pojedynczej odpowiedzialności nazewnictwo klas i metod staje się bardzo trudne. Jeśli nie potrafisz odpowiedzieć na to pytanie, być może będziesz musiał przemyśleć, co chcesz zrobić w klasie, i rozważyć rozdzielenie obaw. Ułatwi to nazwanie
Po drugie
Czy masz wzór nazywania swoich klas? Być może spróbuj spojrzeć na niektóre typowe wzorce nazewnictwa, na przykład wzorzec, który staje się o wiele łatwiejszy do naśladowania, gdy omówisz powyżej SRP. Czy twoja klasa analizuje XML? Wypróbuj XMLParser. Czy analizuje XML, tworzy modele domen reprezentujące dane wejściowe, utrwala je w bazie danych, a następnie publikuje komunikat o sukcesie na Twitterze? Spróbuj refaktoryzować.
Po trzecie
Rozumiem skąd pochodzisz i już wcześniej byłeś w podobnej sytuacji. Być może spróbuj rozwinąć swoją klasę z pewną funkcjonalnością, z tymczasową nazwą na początek. Z każdym dobrym IDE lub asystentem refaktoryzującym zmiana nazwy klasy powinna być działaniem jednym kliknięciem, więc to, jak nazywasz swoją klasę na początku, nie musi być trwałe! Pomoże to zarówno ominąć blok OCD, jak i da twojej podświadomości czas na przetworzenie go nieco dalej.
Wreszcie i nieco nie na temat
Miałem chwilę żarówka w pracy, którą wykonywałem innego dnia, wdrażając niekrytyczny system, i spędziłem sporo czasu na zabawie z różnymi nazwami klas itp. ... Nazwij swoje interfejsy zgodnie z funkcjonalnością, nazwij swoje klasy zgodnie z ich konkretną implementacją ... Na przykład możesz mieć pokusę, aby mieć IXMLParser i XMLParser, ale co się stanie, gdy dane wejściowe zmienią się na JSON? Zamiast tego wypróbuj IInputParser, w ten sposób możesz tworzyć konkretne klasy XMLParser i JSONParser, które oba implementują IInputParser na różne sposoby.