Apa itu kode boilerplate?

384

Seorang rekan kerja belum pernah mendengar hal ini, dan saya tidak bisa memberikan definisi yang nyata. Bagi saya, itu selalu menjadi contoh 'Aku-tahu-kapan-aku-melihatnya'.

Pertanyaan bonus, siapa yang memulai istilah itu?

Nate Parsons
sumber
68
Sebagai catatan, istilah boilerplate tidak eksklusif untuk pemrograman. Sebagai contoh, seorang pengacara dapat memberi Anda kontrak 5 halaman untuk ditandatangani, tetapi sebagian besar kontraknya adalah boilerplate. Artinya sama untuk semua orang yang mendapatkan kontrak itu, dengan hanya beberapa baris yang diubah di sana-sini.
mellowsoon
26
Saya tidak tahu tentang orang lain, tetapi di perusahaan saya kode boilerplate adalah kode yang mengoperasikan boilerplate: buka, tutup, cuci, ganti, dll ...
ulty4life
1
Pertanyaan ini tampaknya di luar topik karena ini tentang jargon.
Adriano Repetti
4
Saya datang ke sini karena dokumentasi Laravel dan berpikir .. "Apa-apa yang mereka bicarakan ini"? Setelah membaca beberapa jawaban saya pikir halaman wiki terkait langsung ini menunjukkan wawasan tentang masalah ini juga: en.wikipedia.org/wiki/Boilerplate_code
Ben Fransen
1
Saya mendengar istilah baru-baru ini, Jadi saya ingin tahu apakah saya dapat memanggil mereka sebagai plugin atau modul untuk bahasa pemrograman.
Anjil Panchal

Jawaban:

215

"kode boilerplate" adalah kode yang tampaknya berulang yang muncul berulang-ulang untuk mendapatkan hasil yang sepertinya lebih sederhana.

Itu definisi subjektif.

Istilah ini berasal dari "boilerplate" di industri surat kabar: wiki

Adam Vandenberg
sumber
2
Gagasan di balik multi-properti dalam OOP adalah untuk mengurangi boilerplate, jadi ketika diterapkan dengan benar dapat dikurangi sedikit.
Andrew Sledge
Dikatakan juga, itu berasal dari industri baja, di mana pelat baja digunakan untuk boiler
Mohammed Shareef C
55

Pada etimologi istilah boilerplate : dari http://www.takeourword.com/Issue009.html ...

Menariknya, muncul istilah dari bisnis surat kabar. Kolom dan karya lain yang disindikasikan dikirim ke surat kabar berlangganan dalam bentuk tikar (yaitu matriks). Setelah diterima, timah mendidih dituangkan ke dalam tikar ini untuk membuat piring yang digunakan untuk mencetak potongan, maka nama boilerplate. Karena artikel yang dicetak pada pelat ketel tidak dapat diubah, istilah tersebut kemudian digunakan oleh pengacara untuk merujuk pada bagian-bagian dari kontrak yang tidak berubah melalui penggunaan berulang dalam aplikasi yang berbeda, dan akhirnya ke bahasa secara umum yang tidak berubah dalam dokumen apa pun yang digunakan berulang kali untuk berbagai kesempatan.

Apa yang dimaksud dengan boilerplate dalam pemrograman? Seperti yang mungkin orang lain tunjukkan, itu hanya sepotong kode yang disalin berulang-ulang dengan sedikit atau tanpa perubahan yang dibuat untuk itu dalam proses.

NealB
sumber
Ada penjelasan alternatif mentalfloss.com/article/26087/why-it-boilerplate-text yang saya telah melihat lebih banyak referensi.
fgysin mengembalikan Monica
1
Sial! ini sepertinya jawaban untuk perubahan tata bahasa ... sebenarnya mungkin seluruh pertanyaan ini, tapi saya bisa melihat mengapa kita membutuhkannya di sini ...
pythonian29033
55

Kode Boilerplate berarti sepotong kode yang dapat digunakan berulang kali. Di sisi lain, siapa pun dapat mengatakan bahwa itu adalah kode yang dapat digunakan kembali.

Istilah ini sebenarnya berasal dari industri baja.

Untuk sedikit sejarah , menurut Wikipedia :

Pada tahun 1890-an, pelat ketel sebenarnya dilemparkan atau dicap dalam logam yang siap untuk mesin cetak dan didistribusikan ke surat kabar di seluruh Amerika Serikat. Hingga 1950-an, ribuan surat kabar menerima dan menggunakan pelat jenis ini dari pemasok terbesar di negara itu, Western Newspaper Union. Beberapa perusahaan juga mengirimkan siaran pers sebagai pelat sehingga harus dicetak seperti tertulis.

Sekarang menurut Wikipedia :

Dalam program berorientasi objek, kelas sering dilengkapi dengan metode untuk mendapatkan dan mengatur variabel instance. Definisi metode ini sering dapat dianggap sebagai boilerplate. Walaupun kode akan bervariasi dari satu kelas ke kelas lain, itu cukup stereotip dalam struktur yang akan dihasilkan lebih baik secara otomatis daripada ditulis dengan tangan. Misalnya, dalam kelas Java berikut yang mewakili hewan peliharaan, hampir semua kode adalah boilerplate kecuali untuk deklarasi Pet, nama dan pemilik:

public class Pet {
    private PetName name;
    private Person owner;

    public Pet(PetName name, Person owner) {
        this.name = name;
        this.owner = owner;
    }

    public PetName getName() {
        return name;
    }

    public void setName(PetName name) {
        this.name = name;
    }

    public Person getOwner() {
        return owner;
    }

    public void setOwner(Person owner) {
        this.owner = owner;
    }
}
dalam penyelesaian
sumber
38

Kode itu dapat digunakan oleh banyak aplikasi / konteks dengan sedikit atau tanpa perubahan.

Boilerplate berasal dari industri baja di awal 1900-an.

Gabe
sumber
34

Dari Wikipedia :

Dalam pemrograman komputer, boilerplate adalah istilah yang digunakan untuk menggambarkan bagian-bagian kode yang harus dimasukkan di banyak tempat dengan sedikit atau tanpa perubahan. Ini lebih sering digunakan ketika merujuk ke bahasa yang dianggap verbose, yaitu programmer harus menulis banyak kode untuk melakukan pekerjaan minimal.

Jadi pada dasarnya Anda dapat mempertimbangkan kode boilerplate sebagai teks yang dibutuhkan oleh bahasa pemrograman sangat sering di sekitar program yang Anda tulis dalam bahasa itu.

Bahasa modern berusaha menguranginya, tetapi juga bahasa yang lebih tua yang memiliki tipe-checker tertentu (misalnya OCaml memiliki tipe-inferrer yang memungkinkan Anda untuk menghindari begitu banyak deklarasi yang akan menjadi kode boilerplate dalam bahasa yang lebih verbose seperti Java)

Mendongkrak
sumber
24

Boilerplate adalah apa yang menghindari programmer baik: pengulangan.

James
sumber
36
OMG, Anda memiliki "ti" dua kali dalam jawaban Anda! Seperti yang Anda lihat, pengulangan tidak selalu buruk.
Tamás Sengel
3
Bagaimana saya menghindari public static void main(String[] _)?
Koray Tugay
15

Boilerplate dalam pengembangan perangkat lunak dapat berarti hal yang berbeda untuk orang yang berbeda tetapi umumnya berarti blok kode yang digunakan berulang kali.

Dalam pengembangan tumpukan MEAN , istilah ini mengacu pada pembuatan kode melalui penggunaan templat. Ini lebih mudah daripada meng-coding seluruh aplikasi dari awal dan memberikan konsistensi blok kode dan lebih sedikit bug karena kode ini bersih, teruji, dan terbukti serta merupakan open source sehingga terus diperbarui atau diperbaiki sehingga menghemat banyak waktu saat menggunakan framework atau pembuat kode. Untuk informasi lebih lanjut tentang tumpukan MEAN, klik di sini .

Nermien Barakat
sumber
7

Secara praktis, kode boilerplate adalah hal yang Anda potong-tempel di semua tempat. Seringkali itu akan menjadi hal-hal seperti header modul, ditambah beberapa deklarasi standar / wajib (setiap modul harus mendeklarasikan logger, setiap modul harus mendeklarasikan variabel untuk namanya dan revisi, dll.) Pada proyek saya saat ini, kami sedang menulis penangan pesan dan mereka semua memiliki struktur yang sama (membaca pesan, memvalidasinya, memprosesnya) dan untuk menghilangkan ketergantungan di antara para penangan kami tidak ingin mereka semua mewarisi dari kelas dasar, jadi kami datang dengan kerangka boilerplate. Itu menyatakan semua variabel rutin, metode standar, kerangka penanganan pengecualian - semua pengembang harus lakukan adalah menambahkan kode khusus untuk pesan yang sedang ditangani. Itu akan cepat & mudah digunakan,

TMN
sumber
7

Definisi Boilerplate menjadi lebih global dalam banyak bahasa pemrograman lain saat ini. Itu berasal dari OOP dan bahasa hibrida yang telah menjadi OOP dan sebelum prosedural sekarang memiliki tujuan yang sama untuk terus mengulang kode yang Anda buat dengan model / templat / kelas / objek karenanya mengapa mereka mengadaptasi istilah ini. Anda membuat templat dan satu-satunya hal yang Anda lakukan untuk setiap contoh templat adalah parameter untuk mengindividualisasi objek yang bagian ini kita sebut boilerplate. Anda cukup menggunakan kembali kode yang Anda buat templatnya, hanya dengan parameter yang berbeda.

Sinonim
cetak biru adalah boilerplate
stensil adalah boilerplate
footer adalah boilerplate
pola desain untuk banyak digunakan adalah boilerplate
tanda tangan surat adalah boilerplate

Sangat berbahaya
sumber
5

Joshua Bloch memiliki bicara tentang desain API yang mencakup bagaimana yang buruk membuat kode boilerplate diperlukan. (Menit 46 untuk referensi ke boilerplate, mendengarkan ini hari ini)

merpati
sumber
2

Dari whatis.techtarget.com :

Dalam teknologi informasi, boilerplate adalah unit penulisan yang dapat digunakan kembali berulang kali tanpa perubahan. Dengan ekstensi, ide itu kadang-kadang diterapkan pada pemrograman yang dapat digunakan kembali seperti dalam "kode boilerplate." Istilah ini berasal dari pembuatan baja, di mana boilerplate adalah baja yang digulung ke piring besar untuk digunakan dalam boiler uap. Implikasinya adalah bahwa penulisan boilerplate telah teruji oleh waktu dan sekuat "baja," atau mungkin telah digulirkan menjadi sesuatu yang cukup kuat untuk digunakan kembali berulang kali.

Di luar pemrograman:

Sebuah boilerplate dapat dibandingkan dengan jenis template tertentu, yang dapat dianggap sebagai boilerplate fill-in-the-blanks. Beberapa pelat khusus termasuk: pernyataan misi, peringatan keselamatan, prosedur pemasangan yang umum digunakan, pernyataan hak cipta, dan penafian tanggung jawab.

Dalam pengalaman saya sebagai programmer, jenis kode boilerplate yang tepat biasanya sekelompok kode yang Anda mulai dengan yang tidak besar dan / atau cukup rumit untuk disebut kerangka kerja.

Contoh tipikal adalah HTML5 Boilerplate .

John Slegers
sumber
1

Anda dapat menyebutnya sebagai "cuplikan" atau lebih tepatnya "kumpulan cuplikan". Istilah yang saya pikir diciptakan dari industri pers dan percetakan, di mana mereka menggunakan "piring" yang sebenarnya dan kemudian menggunakannya kembali sebagai bongkahan lagi. istilah mewah untuk hal-hal sederhana agar terlihat lebih trendi dan canggih. lihat RESPONSIF = mudah beradaptasi / mengalir.

Obmerk Kronen
sumber
"Cuplikan" tidak cukup menyampaikan arti yang sama; "boilerplate" cenderung berkonotasi dengan potongan yang lebih besar yang dimaksudkan untuk dimodifikasi agar sesuai, sebagai lawan dari beberapa baris kode copy / paste / forget. Contohnya mungkin kode untuk WinMainfungsi di aplikasi Win32; itu mendaftar kelas jendela aplikasi, membuat jendela utama, menjalankan loop acara, dan mengembalikan kode keluar prosedur jendela. Fungsionalitas itu sering tidak banyak berubah di antara aplikasi, dan dapat digunakan kembali dengan sedikit modifikasi, tetapi tidak terlalu rutin sehingga masuk akal sebagai perpustakaan (atau cuplikan, dalam hal ini).
cHao
0

Sebuah boilerplate adalah unit penulisan yang dapat digunakan kembali berulang kali tanpa perubahan. Dengan ekstensi, ide ini kadang-kadang diterapkan untuk pemrograman yang dapat digunakan kembali, seperti dalam "kode boilerplate

manish kumar
sumber