Apa itu boilerplate dan mengapa kita menggunakannya? Keperluan panduan gaya pengekodan

Dalam Teknologi Maklumat, plat boiler adalah unit penulisan yang dapat digunakan kembali berulang-ulang tanpa perubahan. Secara meluas, ide kadang-kadang diterapkan pada pengaturcaraan yang dapat digunakan kembali, seperti dalam "boilerplate code."

Perjanjian undang-undang, termasuk terma dan syarat perisian dan perkakasan, banyak menggunakan plat dandang.

Sebagai contoh, seorang peguam boleh memberi anda kontrak lima halaman untuk ditandatangani, tetapi sebahagian besar kontrak itu adalah papan ketik - yang bermaksud sama untuk semua orang yang mendapat kontrak itu, dengan hanya beberapa baris yang berubah di sana sini.

Dalam pengaturcaraan komputer, kod boilerplate atau boilerplate merujuk kepada bahagian kod yang harus dimasukkan di banyak tempat dengan sedikit atau tidak ada perubahan. Ia sering digunakan ketika merujuk pada bahasa yang dianggap verbose , iaitu pengaturcara harus menulis banyak kod untuk melakukan pekerjaan minimum.

Sebagai contoh, dalam pembangunan web, pelat ringkas untuk HTML akan kelihatan seperti ini:

Hello world! This is HTML5 Boilerplate.

Anda boleh melihat keseluruhan repositori di sini:

h5bp / html5-boilerplate

html5-boilerplate - Templat depan profesional untuk membina aplikasi atau laman web yang pantas, mantap dan mudah disesuaikan. github.com

Pada tahun 1890-an, pelat dandang sebenarnya dilemparkan atau dicop dalam logam yang siap untuk mesin cetak dan diedarkan ke mesin akhbar dan firma di seluruh Amerika Syarikat. Sehingga tahun 1950-an, beribu-ribu surat khabar menerima dan menggunakan papan pemuka jenis ini dari pembekal terbesar di negara ini, Western Newspaper Union. Beberapa syarikat juga menghantar siaran akhbar sebagai pelat boiler sehingga mereka harus dicetak seperti ditulis.

Sebilangan besar pembangun web profesional telah membuat koleksi aset dan potongan kod yang mereka gunakan semula pada projek untuk mempercepat pembangunan. Terdapat beberapa corak universal atau hampir universal yang sama-sama dikongsi oleh semua laman web. Daripada terus membina semula ini, kebanyakan pembangun memulakan dengan menyalin kod yang mereka gunakan untuk projek serupa dan kemudian mula mengubahnya.

Sebilangan pemaju menyedari nilai templat pemula boilerplate ini dan meluangkan masa untuk menjadikan plat boiler lebih generik dan membagikannya dalam talian untuk digunakan oleh orang lain.

Ini tidak hanya terhad kepada pembangunan web. Ia digunakan di luar AI / ML kerana terdapat lebih banyak kerangka kerja dan perpustakaan.

Ciri-ciri yang diperlukan dari boilerplate untuk projek besar (pengeluaran siap)

  • Dokumentasi yang baik dan boleh dibaca?
  • Struktur kod dengan tahap abstraksi yang lebih dalam
  • Mengikuti Piawaian Pengekodan yang Betul
  • Mempunyai alat CLI (untuk prototaip dan penyediaan cepat)
  • Berskala?
  • Alat ujian yang mudah
  • Modul API yang diperlukan
  • Sokongan untuk Pengantarabangsaan dan Penyetempatan?
  • Pembahagian Kod
  • Pelayan dan kod Pelanggan untuk persediaan
  • Struktur Navigasi dan Laluan yang betul?

Selepas semua spesifikasi minimum ini, anda harus mula mengedit dan mengubah kod untuk membina projek anda.

Terdapat beberapa Syarikat Teknologi Besar yang bahkan membina papan boiler mereka sendiri. Mereka menggunakannya untuk projek masing-masing dan serupa sepanjang masa.

Contoh terbaik untuk ini adalah paparan boiler react.js:

react-boilerplate / react-boilerplate

react-boilerplate -: fire: Asas pertama luar talian yang sangat berskala dengan pengalaman pembangun terbaik dan tumpuan… github.com

Plat boiler untuk projek yang lebih kecil (Perancah)

Jenis boilerplat ini biasanya jenis "Starter Kits" atau secara profesional disebut "Scaffolding". Pengguna sasaran utama mereka adalah pemaju pemula atau pengguna awal baru.

Ia menumpukan pada prototaip cepat dengan membuat elemen yang hanya diperlukan untuk projek baru. Ini memerlukan fungsi yang kurang dan tidak dapat ditingkatkan mengikut masa dan projek.

Struktur kod mereka tidak banyak dikembangkan, dan tidak melibatkan lapisan abstraksi yang lebih dalam kerana pengguna hanya perlu membina ciri teras. Ini menghilangkan keperluan untuk utiliti tambahan.

Contoh paling mudah adalah paparan apl buat-reaksi-aplikasi Facebook:

facebookincubator / create-react-app

create-react-app - Buat aplikasi React tanpa konfigurasi build. github.com

Apa perbezaan antara plat dandang dan templat?

Seperti yang dinyatakan Joachim Pense dengan jelas, plat boiler adalah sesuatu yang anda salin dan tampal dan hanya tambahkan pada dokumen. Ia muncul paling kerap dalam kontrak di mana bahasa digunakan dan digunakan kembali, menjelaskan perkara seperti syarat dan peringatan.

Penulis menggunakan templat sebagai model , kadang-kadang dengan kesan negatif. Secara umum, templat adalah model atau corak yang digunakan untuk membuat objek baru. Dalam penulisan, ini adalah bentuk piawai seperti resume yang boleh digunakan oleh penulis untuk menyusun versi mereka sendiri.

Tidak seperti plat boiler, templat disesuaikan untuk penggunaan tertentu. Masalahnya timbul bagi saya ketika pelajar menggunakan templat Word untuk resume mereka, dan mereka akhirnya kelihatan sama.

Kedua-dua templat dan boilerplates dapat menjadikan tulisan perniagaan menjadi pucat dan buatan jika digunakan secara tidak bijak.

Panduan Gaya untuk menulis kod

Tidak kira sama ada anda menggunakan boilerplate atau tidak, terdapat beberapa standard yang diikuti oleh syarikat untuk menulis kod. Salah satunya ialah Panduan Gaya. Ia cuba menjelaskan gaya dan corak asas yang digunakan di pelbagai syarikat atau organisasi. Umumnya peraturan bahawa pekerja mesti menggunakan panduan gaya pengekodan syarikat mereka.

Panduan Gaya menerangkan banyak peraturan untuk menulis kod, seperti lekukan tab dan ruang, penamaan pemboleh ubah dan fungsi, penulisan komen yang diperlukan, pemformatan, struktur fail sumber, menggunakan kaedah struktur data yang betul, mengelakkan pengangkatan, pemarkahan, pernyataan kawalan dan banyak lagi.

Gaya pengaturcaraan biasanya berkaitan dengan penampilan visual kod sumber dengan tujuan untuk dibaca. Perisian telah lama tersedia yang memformat kod sumber secara automatik, membiarkan pengekod menumpukan perhatian pada penamaan, logik, dan teknik yang lebih tinggi.

Sebagai titik praktikal, menggunakan komputer untuk memformat kod sumber dapat menjimatkan masa, dan mungkin kemudian untuk menerapkan piawaian seluruh syarikat tanpa perdebatan. (Sumber - Wiki).

Ini adalah beberapa perdebatan biasa seperti: Tabs v Spaces Holy war , memilih Code IDE yang sempurna , dan sebagainya. Perkara yang menarik ialah anda boleh terlibat dalam perbahasan ini yang kebanyakannya berlaku di Reddit . Anda juga boleh mengambil bahagian dalam beberapa pertanyaan dan pertanyaan stackoverflow .

Bagi pembangun web, panduan gaya yang paling biasa untuk JS adalah panduan gaya javascript Airbnb. Ini sumber terbuka dan semua orang boleh menyumbang.

airbnb / javascript

javascript - Panduan Gaya JavaScript github.com

Sekiranya ada yang ragu-ragu mengapa Javascript memerlukan panduan gaya, baca jawapan kedua isu ini oleh Harrison Shoff, yang merupakan programmer di Airbnb .

Mengapa JavaScript memerlukan panduan gaya? · Isu # 102 · airbnb / javascript

Salah satu bahagian kegemaran saya mengenai komuniti JavaScript ialah orang memilih untuk menulisnya dalam pelbagai cara… github.com

Berikut adalah beberapa panduan gaya untuk beberapa bahasa yang lebih popular sekarang:

Pembentuk Kod DotNet

Java: Google-Java-Format

Gaya Standard Javascript (berbeza dengan javascript airbnb)

Piawaian Pengekodan PHP Memperbaiki r

Python: YAPF Google

Ruby: Rubocop

Lagi dari Boilerplate: Konsep untuk OOP

Dalam program berorientasikan objek, kelas sering diberikan kaedah untuk mendapatkan dan menetapkan pemboleh ubah contoh. Definisi kaedah ini sering boleh dianggap sebagai plat boiler.

Walaupun kodnya akan berbeza dari satu kelas ke kelas yang lain, strukturnya cukup stereotaip sehingga dihasilkan dengan lebih baik secara automatik daripada ditulis dengan tangan.

Sebagai contoh, dalam kelas Java berikut yang mewakili haiwan kesayangan, hampir semua kodnya adalah boilerplate kecuali untuk pernyataan tentang Pet , nama , dan pemilik :

public 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; }}

Definisi plat boiler menjadi lebih global dalam banyak bahasa pengaturcaraan lain pada masa kini. Ia berasal dari bahasa OOP dan hibrid yang pernah menjadi prosedur tetapi telah menjadi OOP. Mereka sekarang mempunyai tujuan yang sama untuk mengulang kod yang anda buat dengan model / templat / kelas / objek, sehingga mereka menggunakan istilah ini. Anda membuat templat, dan satu-satunya perkara yang anda lakukan untuk setiap contoh templat adalah parameter individu.

Bahagian ini adalah apa yang kita panggil boilerplate. Anda hanya menggunakan semula kod yang anda buat templatnya, tetapi dengan parameter yang berbeza.

Boilerplate sebagai API

Oleh kerana anda hanya menggunakan semula kod templat dengan parameter yang berbeza, ini menunjukkan bahawa kami dapat membina API yang dapat digunakan kembali yang hanya memerlukan perubahan input dan output.

Kesimpulannya

"Boilerplate code" adalah kod yang kelihatan berulang-ulang yang muncul berulang-ulang kali untuk mendapatkan hasil yang sepertinya seharusnya lebih mudah.

Saya menulis artikel ini kerana saya baru-baru ini diarahkan oleh Ketua Pasukan untuk belajar mengenai banyak jenis plat boiler yang mungkin sesuai untuk projek kami. Oleh itu, saya harus terus mencari papan pemanggang yang sempurna.

Sebarang jenis maklum balas akan dihargai! Ngeri!