WordPress Core JavaScript Çerçeve Seçimi Tartışması, Açık Kaynak Topluluk Liderlerinin Girdileriyle Devam Ediyor
Yayınlanan: 2017-09-27
WordPress'in #core-js Slack kanalı, bu sabah Andrew Duthie liderliğinde canlı ve verimli bir toplantıya ev sahipliği yaptı. Tartışma, belirli çerçeve karşılaştırmalarına daha az odaklandı ve daha çok bir çerçevenin WordPress için JavaScript destekli arayüzler oluşturmada oynayacağı role odaklandı. Katkıda bulunanlara, React ve Vue topluluklarından çekirdek geliştiriciler ve liderler, Chrome mühendisleri ve WordPress topluluğu dışından diğer ilgili taraflar katıldı.
Duthie, "Bu sohbet, büyük ölçüde temel özelliklerin oluşturulmasındaki gereksinimlerin belirlenmesine, eklenti ve tema yazarlarıyla örtüşmeye ve çerçeve kilitlenmesini azaltmaya yönelik kalıplara odaklanacak." Dedi. "İdeal olarak bu, belirli çerçevelerin yararlarını bir boşlukta tartışmaktan daha yüksek bir seviyedir ve WordPress için ileriye dönük bir yol belirlemek için projeler arasında işbirliği yapma fırsatı olarak görülmelidir, bu da gelecekteki karmaşaya karşı esneklik ve dayanıklılık sağlayacaktır."
Duthie, bir WordPress geliştiricisinin iş akışında bir çerçevenin nasıl bir rol oynaması gerektiğini sorarak başladı ve ayrıca çerçeve katkıda bulunanlardan, genişletilebilir arayüzler için önerilere ilişkin bakış açılarını sunmalarını istedi. Bu soru, katılımcılara web bileşenleri desteği, Gutenberg için çerçeveden bağımsız blok birlikte çalışabilirliği ve bunun WordPress'in eklenti ekosistemini nasıl etkileyebileceği gibi konulara ağırlık verme fırsatı verdi.
Gutenberg mühendisi Matias Ventura, "Durumlu bir uygulama oluşturmanın bazı karmaşıklıklarını güçlendirmek için hangi çekirdeğin (bu durumda Gutenberg) kullandığı fikrine biraz katılmıyorum," dedi Gutenberg mühendisi Matias Ventura. "Buradaki asıl çerçeve, genel anlamda, WordPress'in ortaya çıkardığı ve API'ler olacaktır."
Gutenblock'ları oluşturmaya yönelik çerçeveden bağımsız bir yaklaşımla, çekirdeğin üzerine inşa etmeye karar verdiği kitaplık, eklenti geliştiricileri için fiili standart olmak zorunda değildir, ancak Gutenberg ekibinin dışındaki birçok kişi, pratikte kaçınılmaz olarak bu şekilde sonuçlanacağına inanıyor. Bu kararı bekleyen ve WordPress'in bahis yaptığı çerçeveyi benimsemeye kararlı mühendislerden oluşan ekipler var.
Adam Pieniazek, "WP'nin bir çerçeve konusundaki kararının geliştiricileri aşağı yönde nasıl etkilediğine dair bir bakış açısı sağlamak için, Boston Üniversitesi'nde bir geliştiriciyim ve planımız, Gutenberg'in tamamen agnostik bir API'si olsa bile, WP'nin hangi çerçeveye karar verdiğine odaklanmak" dedi. . “Öncelikle bir WP mağazasıyız (~ 1.000 site WP kurulumu, genel web varlığımızın çoğuna/çoğuna güç sağlar) ve sonunda, arka planda gerçekte neler olduğunu görmek için genellikle çekirdeğe dalmayı gerektiren WP'nin üzerinde devasa özelleştirmeler oluşturuyoruz. . Vue'yu kişisel olarak React'ten daha çok seviyorum, ancak WP React'e karar verirse BU, API'nin ötesine bakmamız/hata ayıklamamız gerektiğinde React'te uzmanlık oluşturmaya odaklanacaktır. Bu, Vue'yu da kullanmayacağımız anlamına gelmiyor ama bu bizim birincil odak noktamız olmayacak.”
Pieniazek geri bildirimi, ekibinin WordPress'in seçtiği her kütüphaneyi benimsemeye hazır olduğunu söyleyen Gravity Forms kurucu ortağı Carl Hancock'un geri bildirimini yansıtıyor.
Hancock, "Eklenti/tema geliştiricilerin istediklerini kullanabilmeleri için bir soyutlama katmanı oluşturmakla ilgili olduğunu iddia ettikleri gökkuşaklarına ve kelebeklere rağmen, insanlar çoğunlukla temel kullanımları benimseyecekler" dedi. js kanalı bu hafta başında.
WordPress topluluğu dışından birçok katılımcı, çerçeveden bağımsız bir yaklaşımla hemfikir görünüyordu ve hiçbiri WordPress ile çalışan tüm geliştiricilere tek bir çerçeve zorlamaya istekli değildi. Geriye kalan endişe, bunun pratikte nasıl çalıştığı ve geliştiricileri bir çerçevenin üzerine bir çerçeve kullanma gibi kafa karıştırıcı bir konuma sokup sokmadığıdır.
AMP mühendisi Paul Bakaus, "Gutenberg'in kendisi inşa edilecek bir platform olacağından, en iyi ayrım düzeyi, çerçevenin çekirdeği oluşturmak için kullanılması, ancak inşaatçıları engellemek için API olarak gösterilmemesidir" dedi. "Bu, kişiye gerektiğinde alttaki temeli değiştirme seçeneği sunar."
Gutenberg mühendisi Riad Benguella, ekibin tartıştığı yaklaşımı özetledi:
Sanırım iletişim kurmaya çalıştığımız şey şuna benzer:
– WordPress Core bu X çerçevesini dahili olarak kullanacak
– Kullanmak isterseniz, iyi olduğunu düşünüyoruz.
– Başka bir şey kullanmak istiyorsanız, Core'un seçilen çerçevesini kullandığınız kadar kolay bir şekilde yapabilirsiniz.
Benguella ayrıca Gutenberg'in hedeflerinden birinin "gelecekte WordPress'in kullanıcı arayüzünü nasıl genişleteceğimizin temelini oluşturmak" olduğunu söyledi. Gönderildikten sonra, ekip muhtemelen wp-admin'in diğer bölümlerine odaklanacak ve onları aynı şekilde oluşturacaktır.
“WP'nin kullanıcı arayüzünün tüm bölümleri, basit bir 'veri aşağı, olaylar yukarı' API'si veya bir WC beklentisi olsun, standart bir arabirim aracılığıyla genişletilebilirse, bunun 'çekirdek için hangi çerçevenin kullanılacağı' endişelerini net bir şekilde ayıracağını düşünüyorum. Vue.js yaratıcısı Evan You, "Uzantı geliştirme için hangi çerçevenin kullanılacağına karşı" dedi.

React'in WordPress için birincil çerçeve haline gelmesi konusundaki düşünceleri sorulduğunda, React'in geliştiricisi Dan Abromov, WordPress'in kütüphaneyi benimsemesini savunmakta tereddüt etti. Cevabı, Gutenberg'i genişletmek ve gelecekteki WP arayüzü revizyonları için çerçeveden bağımsız bir yaklaşıma sahip olmanın gerekliliğinin altını çizdi.
Abramov, "WordPress'i gerçekten iyi bilmiyorum, bu yüzden kullanım durumu için uygun olup olmadığını söylemek benim için zor" dedi. “Genellikle yüksek etkileşimli kullanıcı arayüzleri için React kullanıyoruz ve uygulama boyutuyla iyi ölçeklendiğini görüyoruz. Bununla ilgili teknik soruları da memnuniyetle yanıtlarım. Ancak bence genel olarak insanların, örneğin şablon oluşturma ve ifade etme konusunda güçlü fikirleri var ve React'i herkese zorlamak en iyi yol değil."
Ben de aynı şekilde hissediyorum, dedi Evan You. "Hangisi olursa olsun herkese tek bir çerçeveyi zorlamak IMO iyi bir fikir değil çünkü bu çerçeveye dahil olmayan geliştiriciler grubunu yabancılaştırmak zorunda ve daha büyük bir uzun vadeli istikrar riski getiriyor."
Abramov ayrıca, insanların bir çerçeve seçme konusunda zaten "çok acı ve bölücü" olduklarını söyledi. Toplantıdan önce de benzer bir duyguyu tweetledi.
Tartışma konularını okuduğumda (örneğin WordPress hakkında), insanların her takımı diğerlerine düşman olarak algıladıklarına dair bir his var. Bu yanlış.
— Dan (@dan_abramov) 26 Eylül 2017
Bir bahçeye bakmak gibi düşünün. Bizimkinde takılabilirsin. Diğer bahçeler de harika
— Dan (@dan_abramov) 26 Eylül 2017
Evan You, “'Çekirdek için hangi çerçevenin kullanılacağını' ve 'topluluk geliştiricilerinin uzantılar için hangi çerçeveyi kullanacağını' ayırmanın önemli (ve teknik olarak mümkün) olduğuna inanıyorum” dedi.
“Evet, ortaya koyduğumuz API'ler/arayüzler, uygulamaları gereken kullanıcı arabirimlerini ve etkileşimleri oluşturmak için yeterince esnek (ve kolay) olduğu sürece, eklenti yazarlarına maruz bıraktıklarımız konusunda fikirsiz olmak için burada bir hedef olduğunu düşünüyorum. dedi Andrew Duthie.
Gutenblocks için web bileşenlerinin birlikte çalışabilirliğini destekleme konusu da toplantı sırasındaki tartışmanın bir parçasıydı.
Felix Arntz, "Bu noktada gerçek çerçevelerin çoğundan daha az güçlü olsalar da, bir W3C standardı haline gelmeleri muhtemeldir, bu da onların değişmelerini ve gelişmelerini sağlar." Dedi. "Ayrıca, tarayıcı desteği tam olarak orada olduğunda, üstüne inşa edilmiş gerçek bir çerçeve tarafından uygulanacak daha az işlevsellik olur."
Polymer.js temsilcisi Justin Fagnani, bunların "daha az güçlü" olduklarına katılmadığını ve web bileşenlerinin zaten bir W3C standardı olduğunu kaydetti.
EventEspresso çekirdek geliştiricisi Darren Ethier, "WP'nin web bileşenleri için yerel olarak her yerde desteği ilerletmeye yardımcı olmak için benzersiz bir şekilde konumlandırıldığını düşünüyorum." Dedi. “Neredeyse tüm çerçeveler artık web bileşeni spesifikasyonu ile çalışma yeteneğine sahip. Bu sadece doğru uygulama meselesi.”
Birkaç katılımcı, popüler JS çerçevelerinin Özel Öğeleri birlikte çalışabilirliği teşvik edecek şekilde iletme konusundaki ilerlemesini gösteren bir site olan custom-elements-everywhere.com'a başvurdu. Matias Ventura, React ve Vue çekirdek geliştiricilerine web bileşenlerinin (ve geleceklerinin) şu anda her bir çerçeveye nasıl uyduğunu sordu.
“React'te, bazı web bileşeni desteğimiz var, ancak geçmişte kullanım durumları zayıf göründüğünden, özellikle de Web Bileşenleri eklemek, ilk taraf bir uygulamada pek mantıklı gelmediğinden, bunu büyük bir öncelik haline getirmedik. tüm yığını kontrol et – ama yine de onlar için biraz desteğimiz var ve şimdi veya gelecekte daha fazlasını eklemekten memnuniyet duyuyorum,” dedi Sophie Alpert.
Evan You, "Yüksek düzeyde, React/Vue gibi çerçevelerin web bileşenlerinde gerçekten ele alınmayanları sağladığını düşünüyorum: durum değişikliklerine tepki veren verimli ve bildirimsel DOM güncellemeleri" dedi. "Polimer'in WC'nin üstünde bulunmasının nedeni de bu. Birlikte çalışma arabirimi olarak WC'nin değerini her zaman kabul etmişimdir.”
Genel olarak, toplantıdaki katılımcılar saygılı, işbirlikçi ve WordPress katkıda bulunanların çerçeve seçim sürecinde ileriye dönük en iyi yolu bulmalarına yardımcı olmak için uzmanlıklarına katkıda bulunmaya istekliydi. Tartışma, gelecek haftaki toplantıda ve muhtemelen toplantıyı özetleyen bir sonraki Make/Core gönderisinin yorumlarında devam edecek.
