Jestem jedynym programistą w projekcie, który, jak w przypadku każdego projektu oprogramowania, może być zajęty przez kogoś innego w przyszłości.
Powiedzmy, że użyłem wzorca X do implementacji funkcji A. Po opracowaniu i ukończeniu tej funkcji, zdaję sobie sprawę, że mogę zaimplementować tę samą funkcję przy użyciu wzorca Y, o której właśnie się dowiedziałem. Ale funkcja A działa dobrze, a refaktoryzacja z X do Y jest czasochłonna i daje niewielkie korzyści.
Potem nadszedł czas na wdrożenie funkcji B. Jest podobny do A, ale tym razem chcę skorzystać z okazji, aby zagrać ze wzorem Y. Cieszę się z efektu końcowego, lepiej niż podczas wykonywania funkcji A, ale teraz mój kod używa dwóch różne wzory, X i Y, dla podobnych funkcji.
Ale nie ma żadnego rzeczywistego powodu, aby używać różnych wzorów, z wyjątkiem faktu, że podczas budowania elementu AI nie była wystarczająco wykwalifikowana, aby używać tego samego wzoru co dla cechy B.
Zauważ, że to pytanie nie dotyczy wyboru odpowiedniego wzoru dla danego problemu ; chodzi o dwa wzorce współistniejące w bazie kodu w celu rozwiązania podobnych problemów, które można zredukować do jednego, mając wystarczająco dużo czasu na refaktoryzację.
- Czy ten kod pachnie?
- Jakie są wady utrzymywania takiego kodu źródłowego?
- Czy powinienem trzymać się tylko jednego wzoru? tj. refaktor A, aby użyć Y lub nadal używać X podczas pisania B?
- Jak w źródle mogę przekazać, że powód, dla którego istnieją dwa różne wzorce dla podobnych funkcji, zasadniczo nie ma żadnego powodu?
- Czy martwię się zbytnio o to, co myśli następny programista o moim kodzie?