Come dovrei strutturare i nostri moduli comuni per massimizzare il riutilizzo e ridurre la duplicazione? [duplicare]

2

Attualmente sto lavorando in una società basata su progetto .NET. La nostra codifica non è modulare, per lo più stiamo copiando / incollando il vecchio codice necessario per un nuovo progetto e modificandolo.

Stavo cercando di standardizzare e modulare alcune funzioni (modulo di gestione e-mail, modulo CMS e così via) implementando un concetto di architettura a tre livelli in cui ogni modulo avrebbe il proprio database di moduli indipendente. In futuro, tutto ciò che dovremmo fare è codificare un livello di presentazione, riutilizzare il livello BLL, il livello DAL e il database.

Questo sistema è ragionevole? Funzionerà?

    
posta Johnny Tan 13.07.2011 - 05:28
fonte

1 risposta

0

Secondo me non dovresti cambiare il codice che funziona. Ciò potrebbe causare nuovi bug e sprecare il tuo tempo di sviluppo per qualcosa che già esiste. Devi anche fare un test di regressione così

Invece, perché non implementare il nuovo framework solo per i nuovi moduli? In questo modo, almeno puoi assicurarti che tutti i tuoi nuovi codici siano riutilizzabili e ordinati.

Sulla duplicazione del codice, credo che dovresti implementare qualcosa chiamato Strumenti di rilevamento della duplicazione del codice . In Java abbiamo qualcosa chiamato CPD (che fa parte di PMD ) [link ] . In questo modo, sarete in grado di sapere quale parte del codice è duplicata e in grado di dare priorità al refactoring in base al numero di duplicati. Iniziare a rifattare queste duplicazioni nel tempo libero e inserirle in una classe di utilità in modo che sia più facile l'accesso dal vecchio e dal nuovo framework.

Prova a trovare la versione .net di CPD-PMD.

Nota "Regola di tre" che afferma che

you are allowed to copy and paste the code once, but that when the same code is replicated three times, it should be extracted into a new procedure.

La regola è stata introdotta da Martin Fowler.   link

    
risposta data 13.07.2011 - 12:48
fonte

Leggi altre domande sui tag