Beste svaret
I utgangspunktet er boilerplate-koden en ramme for prosjektet ditt.
La oss si at du raskt må prototype en produkt for kunde i viss teknologi. Uten kokeplate må du starte fra bunnen av eller en CLI-generert mal, og ikke alltid matche stilen din med å gjøre ting.
Tenk deg nå at du har et rent, lite prosjekt du har gjort for et annet kunde for en liten stund siden som i utgangspunktet bare trenger noen endringer, fjerning av noen linjer, tillegg av noen andre, og det er i utgangspunktet klart å presentere for kunden din. Ryddig, va?
Å ha en kokeplate er liksom det andre scenariet. Når du vet at det kommer til å være noen prosjekter som krever bruk av bestemt teknologi / rammeverk / bibliotek, kan du fikse en plate, en kjeleplate. Den vil ha dine favorittfunksjoner som form og farge (og kodestilen din også!), Slik at du enkelt kan fokusere på å legge til ting i den og ikke på å endre den hver gang du vil starte et nytt prosjekt.
For å utdype et eksempel, la oss anta at du ofte blir bedt om å opprette et program i Angular2 + eller React som har sidefelt med forhåndsvisning av noen data og fast overskrift med menykontroller på. I stedet for å lage et blankt prosjekt hver gang en ny kunde når deg, kan du bare bruke en tom kokeplate for å bare fokusere uten å legge til passende menyoppføringer, forhåndsvisninger og hovedinnhold.
For å oppsummere dette, når du vet du vil ha mange lignende prosjekter i fremtiden, en kjeleplate er en enorm tidsbesparelse 🙂
Svar
Elazar hadde noen gode poeng (spesielt å unngå sjekket unntak), men jeg «La meg legge til mine egne anbefalinger på grunn av A2A 🙂
Du trenger ikke nødvendigvis Guava for å unngå avmerkede unntak. Du kan bare kaste unntak for kjøretid i stedet. Det er akkurat når du trenger kode som allerede har disse avmerkede unntakene som er problemet. Hvis du vil, kan du eksplisitt fange disse og kaste unntak for kjøretid i stedet.
Polymorfisme er en måte å unngå å skrive en metode for å håndtere hver avledet type av samme barneklasse.
Refleksjon hjelper deg med å gjenbruke kode også. Kanskje du vil være i stand til å droppe en klasse i en katalog, og den blir anerkjent som en «ny komponent» som programvaren din kan bruke. Du kan oppdage og bruke den via refleksjon, i stedet for å måtte koble den sammen med de andre komponentene via eksplisitt repeterende kode.
Rammeverk er en måte å unngå noen kjeleplater også. Noen ganger oppmuntrer de til kokeplaten, men andre ganger gjør de ting for deg. Du kan prøve vårkommentarer for å unngå å eksplisitt sende ting rundt.
Hvorfor ser det ut til at alle andre Java-relaterte svar jeg skriver inneholder en lenke til denne artikkelen ? Uansett, refactoring på den måten kan hjelpe deg med å redusere kjeleplaten, med små, veldig gjenbrukbare funksjoner.
Også fra Wikipedia sin artikkel om Boilerplate code :
«Behovet for kjeleplate kan reduseres gjennom mekanismer på høyt nivå som metaprogrammering (som har datamaskinen automatisk til å skrive den nødvendige teksten på kjeleplaten), konvensjon over konfigurasjon (som gir gode standardverdier, noe som reduserer behovet for å spesifisere programdetaljer i hvert prosjekt) og -modell -driven engineering (som bruker modeller og modell-til-kodegeneratorer, noe som eliminerer behovet for manuell kode for kjeleplaten). «