WordPress Menjelajahi Kerangka JavaScript-Pendekatan Agnostik untuk Membangun Blok Gutenberg

Diterbitkan: 2017-09-23
kredit foto: kota bajak laut found_drama E. – (lisensi)

Diskusi tentang pemilihan kerangka kerja JavaScript WordPress berlanjut di saluran #core-js Slack menjelang pertemuan minggu depan. Salah satu topik yang lebih baru adalah kemungkinan rendering blok kerangka-agnostik untuk Gutenberg, yang akan memungkinkan pengembang untuk memperluas editor baru menggunakan perpustakaan JS apa pun yang mereka inginkan. Ini berarti bahwa blok Gutenberg, yang dalam bahasa sehari-hari disebut sebagai "Gutenblocks," dapat dibangun dengan Vue, React, Preact, Angular, atau apa pun yang menurut pengembang nyaman digunakan.

Pendukung ide ini berpendapat bahwa mengejar pendekatan yang lebih fleksibel membuat keputusan kerangka JS inti WordPress kurang kritis. Saat menjawab pertanyaan di saluran #core-js, Gary Pendergast menjelaskan bagaimana Gutenberg dapat dibangun untuk mempertahankan pemisahan.

"Saya benar-benar tidak bercanda ketika saya mengatakan bahwa keputusan ini tidak penting, bahkan untuk orang yang berkontribusi pada Gutenberg," kata Pendergast. “Dalam #2463, perpustakaan diperlakukan sepenuhnya sebagai perpustakaan utilitas, seperti halnya kita menggunakan lodash, misalnya. Itu melakukan beberapa tugas, dan itu dapat dengan mudah ditarik keluar dan diganti dengan sesuatu yang sama sekali berbeda, tanpa gangguan pada basis kode lainnya. Untuk orang yang berkontribusi pada Gutenberg, mereka berkontribusi dalam gaya pengkodean Gutenberg, bukan gaya pustaka apa pun yang kebetulan kami impor.”

Ketika ditanya tentang garis waktu kapan keputusan akan dibuat dan faktor apa yang sedang dipertimbangkan, Pendergast menjawab bahwa tidak ada garis waktu dan bahwa mereka yang tertarik untuk berpartisipasi harus menulis blog tentang pengalaman mereka dan menulis contoh hal-hal yang dapat mereka bangun dengan kerangka kerja JS yang mereka buat. akrab dengan.

“Tidak ada peta jalan, atau garis waktu, juga tidak perlu ada,” kata Pendergast. “Seperti yang disebutkan Matt, itu benar-benar hanya keputusan teknis – keputusan penting bagi masyarakat luas adalah memilih 'bukan Bereaksi.' Sayangnya, keputusan ini telah dibesar-besarkan di luar proporsi, dan sangat digabungkan dengan 'pustaka JS apa yang dapat saya gunakan untuk membuat plugin saya?' dan terkadang 'praktik perpustakaan JS apa yang akan menyerupai blok Gutenberg?,' tidak ada yang terkait. Tweet dan posting yang memperlakukannya seperti pacuan kuda tidak membantu dengan cara ini.”

Pendergast mengatakan perpustakaan apa pun yang dipilih akan "terus dibungkus oleh elemen WordPress, perpustakaan yang mendasarinya tidak akan diekspos." Tim Gutenberg bekerja untuk menghapus semua dependensi perpustakaan dari komponennya sehingga pengembang plugin dapat menggunakan perpustakaan apa pun yang mereka pilih.

Namun, anggota komunitas lain tidak begitu bersemangat untuk menurunkan pustaka JS yang dipilih sebagai inti ke keputusan teknis sederhana atau pustaka utilitas.

“Sebagian besar pengembang memahami bahwa plugin mereka tidak terikat oleh kerangka kerja yang dipilih untuk inti/Gutenberg,” kata Kevin Hoffman. “Tapi itu tidak mengurangi pentingnya keputusan. Jika kita ingin mendorong lebih banyak kontributor, kita akan dilayani dengan baik untuk memilih kerangka kerja di mana mayoritas signifikan merasa mampu dan percaya diri. Jika mayoritas di luar sana mengembangkan plugin dengan satu kerangka kerja dan harus mempelajari kerangka lain untuk berkontribusi pada inti, maka kami membatasi jumlah kontributor potensial.”

Peter Booker berpendapat bahwa tidak peduli seberapa elegan pemisahan Gutenberg, memiliki pemahaman yang baik tentang perpustakaan yang dipilih untuk inti memengaruhi kemampuan pengembang untuk memecahkan masalah tertentu secara mendalam.

“Saya tidak berpikir kita harus begitu meremehkan pilihan sebagai keputusan teknis kecil,” kata Booker. “Memahami cara kerja PHP, JavaScript, dan Backbone (antara lain) sangat penting untuk dapat men-debug masalah dengan WordPress dengan benar. Kerangka kerja JS yang dipilih untuk Gutenberg akan berdampak pada banyak orang, bahkan jika kami bukan kontributor inti. Ini akan menjadi pengetahuan penting untuk dapat sepenuhnya memecahkan masalah. Ini adalah keputusan yang akan berdampak jauh lebih banyak orang daripada hanya tim Gutenberg.”

Apa implikasi dari menyediakan pendekatan kerangka-agnostik yang fleksibel untuk membangun Gutenblock?

Jason Bahl bertanya apakah ada yang mencoba mencampurkan React, Preact, Vue, dan Angular dalam satu aplikasi untuk melihat apakah itu "resep untuk mimpi buruk kinerja." Dia mengajukan contoh skenario di mana Gravity Forms membangun Gutenblocks berbasis Vue, Yoast memiliki blok berbasis React, WooCommerce membangun blok dengan Preact, dan plugin lain menggunakan Ember.

“Kedengarannya bagus untuk menjadi fleksibel dan memungkinkan orang untuk menggunakan apa pun tetapi juga seperti itu dapat menyebabkan banyak perpecahan pada praktik terbaik, dan kemungkinan masalah kinerja,” kata Bahl. “Kita akan melihat tutorial yang muncul tentang cara membangun Gutenblock di Vue, React, Preact, Ember, Vanilla JS, dll., yang akan keren untuk dilihat, tetapi juga membingungkan dan berpotensi menyebabkan perpecahan lebih lanjut dalam komunitas dan praktik terbaik yang diterima. . Fleksibilitas itu bagus sampai taraf tertentu, tetapi opini yang kuat pada tingkat tertentu juga bagus.”

Carl Hancock, salah satu pendiri Gravity Forms, berpendapat bahwa menawarkan pendekatan kerangka-agnostik untuk membangun Gutenblock akan memiliki sedikit pengaruh pada pengembang yang memperluas proyek. Keputusan tidak dapat dibuat kurang kritis dengan menawarkan lebih banyak fleksibilitas, karena pengembang pasti akan mengadopsi apa pun yang digunakan inti WordPress.

“Orang-orang pada akhirnya akan mengadopsi penggunaan inti apa pun untuk sebagian besar meskipun ada pelangi dan kupu-kupu yang diklaim beberapa orang terkait dengan pembuatan lapisan abstraksi sehingga pengembang plugin/tema dapat menggunakan apa pun yang mereka inginkan,” kata Hancock. “Yang berarti betapapun kompleksnya kerangka kerja inti itu akan berdampak langsung pada hambatan masuk bagi pengembang plugin dan tema. Hambatan untuk masuk itu secara historis rendah hingga saat ini dan merupakan kontributor langsung terhadap pertumbuhan WordPress sebagai CMS yang dihosting sendiri. Secara dramatis meningkatkan penghalang masuk itu tidak selalu merupakan hal yang buruk. Misalnya, Gravity Forms akan menggunakan Preact, Vue, apa pun, karena kami memiliki tenaga dan keahlian untuk melakukannya ketika kami akhirnya dapat memutuskan untuk melakukannya setelah inti membuat keputusan.”

Peluang WordPress untuk Memajukan Web

WordPress saat ini mendukung 28% dari semua situs web, menurut W3 Techs, dan kerangka kerja apa pun yang dipilihnya akan membuat dampak besar pada perpustakaan mana yang diputuskan untuk dipelajari oleh banyak pengembang untuk memperluas perangkat lunak dan memajukan karir mereka.

Matias Ventura, salah satu pimpinan teknis pada proyek Gutenberg, mendorong peserta diskusi untuk melihat gambaran yang lebih besar dan merangkul kesempatan untuk bekerja sama dan berkolaborasi dalam solusi untuk WordPress yang akan memajukan web. Upaya tim untuk berkolaborasi dengan perwakilan dari kerangka kerja yang bersaing berdiri terpisah dalam ekosistem yang umumnya terfragmentasi dan terpecah-pecah.

“Saya senang dengan peluang yang kami miliki untuk memajukan pengembangan web dalam hal representasi JavaScript UI, dengan cara yang mirip dengan bagaimana WordPress menjadi kekuatan pendorong untuk standar web selama dekade terakhir,” kata Ventura. “Itu juga di mana saya melihat kami memiliki tanggung jawab sebagai sebuah proyek, karena orang akan terus belajar pengembangan web melalui WP. Banyak orang telah diperkenalkan ke PHP melalui WordPress, awalnya hanya berinteraksi dengan fungsi WP dan API, akhirnya menyelam lebih dalam ke bahasa yang diperlukan. Saya melihat inti kami tetap dekat dengan bahasa JS, karena itu memberikan alat yang paling berarti untuk dipelajari, mencakup semua kerangka kerja dan perpustakaan.”

Ventura meyakinkan peserta dalam diskusi yang sedang berlangsung bahwa tim Gutenberg mendengarkan dan bekerja menuju solusi yang akan mendorong kemajuan web.

“Kami benar-benar sadar bahwa bagaimana kami membangun dan apa yang kami tawarkan melalui Gutenberg akan memengaruhi komunitas pengembang dan kami tidak menganggap enteng ini—bahkan sebaliknya,” kata Ventura. “Saya telah berbicara dengan Evan (Vue) dan Jason (Preact) karena alih-alih mengadakan kontes 'pilih kerangka kerja Anda', ini tampaknya merupakan peluang untuk berkolaborasi dan mendorong kemajuan web.”