Kodi boilerplate
Në programim, kodi boilerplate, ose thjesht boilerplate, nënkupton seksione të kodit që përsëriten në shumë vende me pak ose aspak ndryshime. Kur përdorni gjuhë që konsiderohen verboze, programuesi duhet të shkruajë shumë kod boilerplate për të kryer vetëm funksione të vogla. [1]
Nevoja për boilerplate mund të reduktohet nëpërmjet mekanizmave të nivelit të lartë si metaprogramimi (i cili e bën kompjuterin të shkruajë automatikisht kodin e nevojshëm të boilerplate ose ta vendosë atë në kohën e përpilimit ), konvencioni mbi konfigurimin (i cili ofron vlera të mira të paracaktuara, duke reduktuar nevojën për të specifikuar programin detajet në çdo projekt) dhe inxhinieri e drejtuar nga modeli (i cili përdor modele dhe gjeneratorë nga modeli në kod, duke eliminuar nevojën për kodin manual të bojlerplate).
Është gjithashtu e mundur të zhvendoset kodi i boilerplate në një klasë abstrakte në mënyrë që të mund të trashëgohet nga çdo numër klasash konkrete . Një tjetër opsion do të ishte zhvendosja e tij në një nënprogram në mënyrë që të mund të thirret në vend që të dublikohet.
Në Java dhe platforma të ngjashme
RedaktoNë programet Java, klasat DTO shpesh pajisen me metoda për marrjen dhe vendosjen e ndryshoreve të instancës. Përkufizimet e këtyre metodave shpesh mund të konsiderohen si boilerplate. Megjithëse kodi do të ndryshojë nga një klasë në tjetrën, ai është mjaft stereotipik në strukturë sa që do të gjenerohej më mirë automatikisht sesa të shkruhet me dorë. Për shembull, në klasën e mëposhtme Java që përfaqëson një kafshë shtëpiake, pothuajse i gjithë kodi është boilerplate, përveç deklaratave të Pet, name dhe owner :
Java
Redaktopublic class Pet {
private String name;
private Person owner;
public Pet(String name, Person owner) {
this.name = name;
this.owner = owner;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person getOwner() {
return owner;
}
public void setOwner(Person owner) {
this.owner = owner;
}
}
Shumica e bojlerplate në këtë shembull ekziston për të përmbushur kërkesat e JavaBeans . Nëse name dhe owner i ndryshores do të deklaroheshin si publike, metodat aksesore dhe ndryshuese nuk do të nevojiteshin.
Në Java 14, u shtuan klasa rekord për të luftuar këtë çështje. [2] [3] [4]
Java është gjithashtu famëkeqe për sasinë e kodit boilerplate të përdorur edhe për programet më të thjeshta. Psh
class Test {
public static void main(String[] args)
{
System.out.println("Hello World");
}
}
Ndërkohë që në Python kjo do të mund të shkruhej në vetëm një rresht:
print("Hello World")
Ndonëse disa programues do të argumentonin se shembulli në Java është më i plotë, ndërsa shëmbulli në Python fsheh nga programuesi shumë koncepte/konstrukte, për të cilat kujdeset vetë interpretuesi që të implementohen, mbetet e vërtetë se për shkak të lehtësisë në shkrim Python është gjuha e parë për sa i përket përdorimit, kurse Java gjen përdorim më së shumti në industri dhe në ambientet akademike gjermanishtfolëse.
- ^ Lämmel, Ralf; Jones, Simon Peyton (2003). "Scrap your boilerplate: a practical design pattern for generic programming". Proceedings of the 2003 ACM SIGPLAN International Workshop on Types in Languages Design and Implementation. TLDI '03. New York: ACM. fq. 26–37. doi:10.1145/604174.604179. ISBN 9781581136494.
{{cite book}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "Record Classes". docs.oracle.com.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "JEP 395: Record". openjdk.org.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ Evans, Ben (2020-11-01). "Records Come to Java". blogs.oracle.com.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)