L'antipattern " Reinvent the wheel " è piuttosto comune - invece di usare una soluzione pronta, scrivi il tuo da zero. La base di codice cresce inutilmente, interfacce leggermente diverse che fanno la stessa cosa ma leggermente abbondano in modo diverso, il tempo è sprecato per scrivere (e fare il debug!) Funzioni che sono prontamente disponibili. Lo sappiamo tutti.
Ma c'è qualcosa all'estremità opposta dello spettro. Quando invece di scrivere la tua funzione è composta da due righe di codice, puoi importare un framework / API / libreria, istanziarlo, configurarlo, convertire il contesto in datatype come accettabile dal framework, quindi chiamare una singola funzione che fa esattamente ciò di cui hai bisogno, due linee di business logic sotto un gigabyte di livelli di astrazione. E poi è necessario mantenere la libreria aggiornata, gestire le dipendenze di build, mantenere sincronizzate le licenze e il codice di istanziazione di esso è dieci volte più lungo e più complesso di se si "reinventa la ruota".
Le ragioni possono essere varie: gestione strettamente opposta alla "reinvenzione della ruota" a prescindere dal costo, qualcuno che spinge la propria tecnologia preferita nonostante una marginale sovrapposizione con i requisiti, un ruolo in declino di un precedente modulo principale del sistema, o aspettativa di espansione e un uso più ampio del framework, che non arriva mai, o semplicemente fraintendendo il "peso", un paio di istruzioni di importazione / inclusione / caricamento portano "dietro le quinte".
Esiste un nome comune per questo tipo di antipattern?
(Non sto tentando di avviare una discussione quando è giusto o sbagliato, o se è un vero antipattern o qualsiasi opinion based , questa è una semplice e semplice domanda di nomenclatura. )
Modifica: il "duplicato" suggerito parla del proprio codice per renderlo "pronto per tutto", completamente separato dai sistemi esterni. Questa cosa potrebbe in alcuni casi derivare da esso, ma in generale deriva da "avversione a reinventare la ruota" - riutilizzo del codice a tutti i costi; se esiste una soluzione "pronta all'uso" del nostro problema, noi lo useremo, indipendentemente da quanto male si adatti e dal costo che ne deriva. Favorire dogmaticamente la creazione di nuove dipendenze rispetto alla duplicazione del codice, con totale disprezzo per i costi di integrazione e manutenzione di queste dipendenze rispetto al costo di creazione e manutenzione del nuovo codice.