Antypattern „ Reinvent the wheel ” jest dość powszechny - zamiast używać gotowego rozwiązania, napisz własne od zera. Baza kodu rośnie niepotrzebnie, nieco inne interfejsy, które robią to samo, ale nieco inaczej obfitują, marnuje się czas na pisanie (i debugowanie!) Funkcji, które są łatwo dostępne. Wszyscy to wiemy.
Ale jest coś na drugim końcu spektrum. Kiedy zamiast pisać własną funkcję, która składa się z dwóch wierszy kodu, importujesz platformę / interfejs API / bibliotekę, tworzysz jej instancję, konfigurujesz, konwertujesz kontekst na typ danych jako akceptowalny przez platformę, a następnie wywołujesz tę pojedynczą funkcję, która robi dokładnie to, czego potrzebujesz, dwie linie logiki biznesowej pod gigabajtem warstw abstrakcji. A potem musisz aktualizować bibliotekę, zarządzać zależnościami kompilacji, synchronizować licencje, a kod jej tworzenia jest dziesięć razy dłuższy i bardziej złożony niż w przypadku „ponownego wynalezienia koła”.
Przyczyny mogą być różne: kierownictwo ściśle przeciwstawiające się „nowemu wynalezieniu koła” bez względu na koszty, ktoś popychający swoją ulubioną technologię pomimo marginalnego nakładania się na wymagania, malejąca rola dawnego głównego modułu systemu lub oczekiwanie rozszerzenia i szerszego użycie frameworka, który po prostu nigdy nie nadchodzi, lub po prostu niezrozumienie „wagi” kilku instrukcji importu / włączenia / załadowania zawiera „za kulisami”.
Czy istnieje wspólna nazwa dla tego rodzaju antypatternu?
(Nie próbuję rozpoczynać dyskusji, gdy jest to dobre lub złe, lub jeśli jest to prawdziwe antypattern lub cokolwiek oparte na opiniach , jest to proste, proste i obiektywne pytanie dotyczące nomenklatury.)
Edycja: sugerowany „duplikat” mówi o nadinstruowaniu własnego kodu, aby był „gotowy na wszystko”, całkowicie poza systemami zewnętrznymi. To może w niektórych przypadkach wynikać z tego, ale generalnie pochodzi od „niechęci do ponownego wynalezienia koła” - ponowne użycie kodu za wszelką cenę; jeśli „gotowe” rozwiązanie naszego problemu istnieje, my będziemy go używać, bez względu na to, jak słabo to pasuje i jakim kosztem chodzi. Dogmatycznie faworyzuje tworzenie nowych zależności niż powielanie kodu, z całkowitym lekceważeniem kosztów integracji i utrzymania tych zależności w porównaniu z kosztami tworzenia i utrzymania nowego kodu.