Reinventare la ruota perché non esiste

7

Una delle lingue che devo usare al lavoro è una lingua molto piccola, di nicchia, chiamata psl . Uno dei più grandi reclami che ho su di esso come lingua è che le librerie sono molto limitate.

Anche se è comprensibile per un piccolo linguaggio sviluppato da un paio di ragazzi, mi causa alcuni dilemmi. Nello specifico, mi ritrovo a "riscrivere" le funzioni che sono standard in altre lingue perché non esistono qui.

Questo è particolarmente problematico quando sto tentando di scrivere una funzione per risolvere un problema, e la direzione non vuole passare il tempo a farlo. Vogliono che io usi invece dei numeri magici codificati, che so che dovranno cambiare più volte durante la vita del codice.

Questo non si adatta perfettamente al reinventare la ruota , perché non esisteva qui in primo luogo. Che tipo di anti modello sarebbe adatto a questo?

    
posta Spencer Rathbun 12.09.2011 - 16:55
fonte

3 risposte

17

La scrittura di funzionalità che non esistono nelle librerie standard o come soluzioni COTS o OSS utilizzabili non è un anti-modello. È una necessità guidata dallo stack tecnologico scelto. Se per il progetto è stato scelto uno stack tecnologico inappropriato semplicemente perché è stato usato con successo prima, questo è un esempio del anti-pattern Silver Bullet .

L'uso di numeri magici nel codice, invece di isolarli in impostazioni di configurazione o come costanti è un esempio di Anti-pattern Magic Numbers . Come menzionato nei commenti da FrustratedWithFormsDesigner, la gestione dettare i dettagli di progettazione è anche un segno di microgestione .

Il progetto potrebbe sperimentare l' anti-pattern del fornitore-in-vendita , se è stata scelta la tecnologia e progettato il software in modo tale che sia difficile o impossibile, con un ragionevole sforzo, cambiare le librerie e gli strumenti usati.

    
risposta data 12.09.2011 - 17:05
fonte
1

Vedo questo biforcarsi in una delle due strade diverse. La mia prima inclinazione è quella dell'odore del codice, un indicatore di un problema più profondo. Perché hai bisogno di usare una lingua di nicchia personalizzata?

A. Perché la tua azienda ha trovato che vale la pena e il tempo per farlo.

Quindi, non stai "reinventando la ruota". La lingua è nuova e offre abbastanza valore aggiunto per meritare l'investimento di tempo per nuove funzionalità.

OPPURE ...

B. Perché sei elitario e / o comunque hai preso una decisione sbagliata.

Hai iniziato a reinventare la ruota nel momento in cui hai deciso di inventare la tua lingua per risolvere problemi che possono già essere risolti efficacemente con altri linguaggi più maturi.

    
risposta data 12.09.2011 - 17:07
fonte
0

Non sei sicuro di tornare indietro e modificare il codice, ma sicuramente porterà alla rottura del Principio ASCIUTTO .

Tratto dal link sopra:

Gli stati principali di DRY (Do not Repeat Yourself):
Ogni pezzo di conoscenza deve avere una singola, non ambigua, autorevole rappresentazione all'interno di un sistema.

    
risposta data 12.09.2011 - 17:53
fonte

Leggi altre domande sui tag