Risposta migliore
Fondamentalmente, il codice boilerplate è una cornice per il tuo progetto.
Supponiamo che tu debba prototipare rapidamente un prodotto per il cliente in determinate tecnologie. Senza boilerplate, dovresti iniziare da zero o un modello generato dalla CLI, che non sempre corrisponde al tuo stile di fare le cose.
Ora immagina di avere un piccolo progetto pulito che hai fatto per un altro cliente poco fa che fondamentalmente necessita solo di alcune modifiche, rimozione di alcune righe, aggiunta di altre, ed è praticamente pronto per essere presentato al cliente. Bello, eh?
Ora, avere un boilerplate è una sorta di secondo scenario. Quando sai che ci saranno dei progetti che richiedono luso di una certa tecnologia / framework / libreria, puoi aggiustarti un piatto, un boilerplate. Metterà in mostra le tue caratteristiche preferite come forma e colore (e anche lo stile del tuo codice!) In modo che tu possa concentrarti facilmente sullaggiunta di cose e non sul cambiarlo ogni volta che vuoi iniziare un nuovo progetto.
Per elaborare un esempio, supponiamo che ti venga spesso chiesto di creare unapplicazione in Angular2 + o React che presenti una barra laterale con anteprima di alcuni dati e unintestazione fissa con i controlli del menu su di essa. Invece di creare un progetto vuoto ogni volta che un nuovo cliente ti raggiunge, puoi semplicemente utilizzare un boilerplate vuoto per evitare di aggiungere voci di menu, anteprime e contenuti principali appropriati.
Per riassumere, quando sai avrai molti progetti simili in futuro, un boilerplate è un enorme risparmio di tempo 🙂
Risposta
Elazar aveva degli ottimi punti (specialmente evitando le eccezioni controllate), ma io Aggiungerò le mie raccomandazioni a causa dellA2A 🙂
Non hai necessariamente bisogno di Guava per evitare eccezioni controllate. Puoi semplicemente lanciare eccezioni di runtime. Il problema è proprio quando hai bisogno di codice che genera già queste eccezioni verificate. Se vuoi, puoi catturarli esplicitamente e lanciare invece eccezioni di runtime.
Il polimorfismo è un modo per evitare di scrivere un metodo per gestire ogni tipo derivato della stessa classe figlia.
Riflessione aiuta anche a riutilizzare il codice. Forse vuoi essere in grado di rilasciare una classe in una directory ed essere riconosciuta come un “nuovo componente” che il tuo software può utilizzare. Puoi rilevarlo e usarlo tramite la riflessione, piuttosto che doverlo collegare insieme agli altri componenti tramite un codice ripetitivo esplicito.
Anche i framework sono un modo per evitare alcuni boilerplate. A volte incoraggiano boilerplate, ma altre volte fanno le cose per te. Potresti provare le annotazioni Spring per evitare di passare esplicitamente cose.
Perché sembra che ogni altra risposta relativa a Java che scrivo includa un collegamento a questo articolo ? Ad ogni modo, il refactoring in questo modo può aiutarti a ridurre boilerplate, con funzioni minuscole e molto riutilizzabili.
Inoltre, dallarticolo di Wikipedia su Boilerplate code :
“La necessità di boilerplate può essere ridotta tramite meccanismi di alto livello come la metaprogrammazione (in cui il computer scrive automaticamente il testo boilerplate necessario), convenzione sulla configurazione (che fornisce buoni valori predefiniti, riducendo la necessità di specificare i dettagli del programma in ogni progetto) e modello -driven engineering (che utilizza modelli e generatori da modello a codice, eliminando la necessità di codice manuale boilerplate). “