Beste antwoord
In wezen is standaardcode een frame voor je project.
Laten we zeggen dat je snel een prototype moet maken van een product voor klant in bepaalde technologie. Zonder standaardplaat zou je helemaal opnieuw moeten beginnen of een door CLI gegenereerde sjabloon, die niet altijd overeenkomt met je manier van doen.
Stel je nu voor dat je een schoon klein project hebt dat je voor een ander hebt gedaan klant een tijdje geleden dat eigenlijk slechts enkele wijzigingen nodig heeft, enkele regels moet verwijderen, enkele andere moet worden toegevoegd, en het is in principe klaar om aan uw klant te presenteren. Netjes, hè?
Nu, het hebben van een standaardplaat is een soort van het tweede scenario. Als je weet dat er projecten zullen komen die het gebruik van bepaalde technologie / framework / bibliotheek vereisen, kun je een plaat, een boilerplate, zelf maken. Het zal uw favoriete functies, zoals vorm en kleur (en ook uw codestijl!), Bevatten, zodat u zich gemakkelijk kunt concentreren op het toevoegen van dingen en niet elke keer dat u een nieuw project wilt starten, het verandert.
Laten we, om een voorbeeld uit te werken, aannemen dat u vaak wordt gevraagd om een applicatie te maken in Angular2 + of React met een zijbalk met een voorbeeld van enkele gegevens en een vaste koptekst met menubediening erop. In plaats van elke keer dat een nieuwe klant u bereikt een leeg project te maken, kunt u gewoon een lege standaardplaat gebruiken om u te concentreren zonder de juiste menu-items, voorbeelden en hoofdinhoud toe te voegen.
Om dit samen te vatten, als u het weet je zult in de toekomst veel soortgelijke projecten hebben, een standaardplaat is een enorme tijdbesparing 🙂
Antwoord
Elazar had een aantal geweldige punten (vooral het vermijden van gecontroleerde uitzonderingen), maar ik “Ik zal mijn eigen aanbevelingen toevoegen vanwege de A2A 🙂
Je hebt niet per se Guava nodig om gecontroleerde uitzonderingen te vermijden. U kunt in plaats daarvan gewoon runtime-uitzonderingen gooien. Alleen als je code nodig hebt die al deze gecontroleerde uitzonderingen genereert, is dat het probleem. Als je wilt, kun je die expliciet opvangen en in plaats daarvan runtime-uitzonderingen gooien.
Polymorfisme is een manier om te voorkomen dat je een methode schrijft om elk afgeleid type van dezelfde onderliggende klasse te behandelen.
Reflectie helpt u ook bij het hergebruiken van code. Misschien wilt u een klas in een directory kunnen laten vallen en deze worden herkend als een “nieuwe component” die uw software kan gebruiken. Je kunt het detecteren en gebruiken via reflectie, in plaats van dat je het samen met de andere componenten moet aansluiten via expliciete repetitieve code.
Frameworks zijn ook een manier om een bepaalde boilerplate te vermijden. Soms moedigen ze boilerplate aan, maar andere keren doen ze dingen voor je. Je zou Spring-annotaties kunnen proberen om te voorkomen dat je dingen expliciet doorgeeft.
Waarom lijkt het alsof elk ander Java-gerelateerd antwoord dat ik schrijf een link bevat naar dit artikel ? Hoe dan ook, refactoring op die manier kan je helpen de boilerplate te verkleinen, met kleine, zeer herbruikbare functies.
Ook uit het Wikipedia-artikel over Boilerplate-code :
“De behoefte aan boilerplate kan worden verminderd door mechanismen op hoog niveau, zoals metaprogrammering (waarbij de computer automatisch de benodigde standaardtekst schrijft), conventie over configuratie (wat goede standaardwaarden oplevert, waardoor de noodzaak om programmadetails in elk project op te geven, wordt verminderd) en model -gedreven engineering (waarbij modellen en model-naar-code-generatoren worden gebruikt, waardoor handmatige code niet meer nodig is). “