Come gestire la filosofia del riutilizzo del codice?

10

Mi trovo costantemente a pensare al riutilizzo del codice quando avvio un nuovo progetto.

In che misura dovrei rendere il mio codice riutilizzabile?
Dovrei limitarlo allo scope dell'applicazione o dovrei renderlo riusabile al di fuori del progetto?

A volte, mi sembra che la riusabilità del codice possa ostacolare un design semplice. Per favore, condividi la tua comprensione e il tuo approccio alla riusabilità del codice.

    
posta Lamin Sanneh 07.08.2012 - 20:10
fonte

5 risposte

21

Il codice deve funzionare prima che possa essere riutilizzato. Quindi ciò implica che la progettazione e la funzione (primaria) dovrebbero venire prima di prendere in considerazione il riutilizzo del codice.

È bello pensare al riutilizzo e al riutilizzo di componenti che hai già scritto. Ma a volte può essere altrettanto veloce, se non più veloce, solo per scrivere il codice e farlo funzionare. Dopo aver risolto il problema originale, puoi rifattorizzare il codice per renderlo più riutilizzabile.

    
risposta data 07.08.2012 - 20:14
fonte
9

Ricorda il KISS e YAGNI:

Codice re-usability better to be considered una volta pronto il documento di progettazione . Questo ti permetterà di vedere la sezione / le parti di codice che saranno potenzialmente duplicate.

Quindi, quando non hai un design chiaro, applica KISS e YAGNI approccio nel tuo lavoro!

    
risposta data 07.08.2012 - 21:00
fonte
1

Questo deriva dalla mia esperienza, ma continuo a credere che possa essere applicato e va nella direzione di ciò che GlenH7 menzionato.

Lavoro tra 3 aziende che realizzano vari progetti. Le società sono sorelle l'una dell'altra con alcune pratiche standard e metodologia di lavoro, ma sono anche uniche in molti modi. Detto questo, in genere inizio ogni nuovo progetto e voglio solo farlo o mostrare progressi. Quindi se mi imbatto in uno scenario in cui ricordo un pezzo di codice o funzionalità che ho scritto per un progetto precedente, farò una delle due cose (in base al tempo):

  1. Metodo più veloce Copia il codice precedente dall'altro progetto (non ho molto tempo) nel mio progetto attuale.
  2. Metodo secondo il più veloce Copia il codice precedente e inseriscilo in una libreria comune, quindi includi quella libreria nel progetto corrente (per semplificare l'avanzamento).

    2b. Se apporto delle modifiche all'altro progetto (originale), lo rifatterò per usare la nuova libreria [ma generalmente non lo farò a meno che non debba ri-toccare quel progetto].

Basta essere avvisati, prova il diavolo dalle librerie comuni. Le librerie comuni significano creare dipendenze. Le dipendenze creano punti di errore. Anche se potresti aver bisogno di qualcosa di ottimizzato per la tua implementazione attuale, non sai come cambierà qualcos'altro usando quella libreria.

    
risposta data 07.08.2012 - 20:37
fonte
1

A volte trovo che copia & incollare poche righe di codice è una soluzione migliore. Anche nel linguaggio umano, quando vuoi dire una frase che hai detto prima solo con una leggera variazione, la ripeti con la variazione, perché rende meno problemi a chiunque.

Tuttavia, se il tuo modulo di grandi dimensioni deve essere usato in un modo leggermente diverso da quello che non supporta, non clonarlo solo per modificare alcune righe perché è molto probabile che tu voglia estendere la funzionalità che sia il base e la quota di cloni in futuro. Invece, basta renderlo configurabile o esportare la funzionalità che sia la base che il clone condividono in un altro modulo che entrambi useranno.

    
risposta data 07.08.2012 - 21:52
fonte
0

Non esagerare. E se non sei sicuro, continua con l'ambito dell'applicazione fino a quando non hai scritto abbastanza progetti per vedere dove riutilizzare cosa.

    
risposta data 21.04.2017 - 13:48
fonte

Leggi altre domande sui tag