Di solito la centralizzazione del codice è sempre una buona idea. Dobbiamo riutilizzare il codice il più possibile.
Tuttavia, è importante notare come farlo. Ad esempio, quando hai un codice che compute_prime_number () o check_if_packet_is_bad () è buono. È probabile che l'algoritmo della funzionalità stessa si evolverà e ne trarrà vantaggio.
Tuttavia, qualsiasi pezzo di codice che si ripete come una prosa non si qualifica per essere immediatamente centralizzato. Questo non va bene. Puoi nascondere linee di codice arbitrarie all'interno di una funzione solo per nascondere un codice, nel tempo, quando iniziano a utilizzare più parti dell'applicazione, devono essere tutte compatibili con le esigenze di tutti i contatti della funzione.
Ecco alcune domande che dovresti porre prima di chiedere
-
La funzione che stai creando ha un significato intrinseco o è solo un insieme di linee?
-
Quale altro contesto richiederà l'uso delle stesse funzioni? È probabile che tu possa richiedere una leggera generalizzazione dell'API prima di utilizzarla?
-
Quale sarà l'aspettativa di (diverse parti delle) applicazioni quando si generano eccezioni?
-
Quali sono gli scenari per vedere che le funzioni si evolveranno?
Dovresti anche controllare se esistono già cose come questa. Ho visto così tante persone che tendono sempre a ridefinire i loro macros MIN, MAX piuttosto che cercare ciò che già esiste.
In sostanza, la domanda è: "Questa nuova funzione è davvero degna di essere riutilizzata o è solo una copia-incolla ?" Se è il primo, è bello andare.