WordPress, Gutenberg Blokları Oluşturmak için JavaScript Çerçevesinden Agnostik Bir Yaklaşımı Keşfediyor
Yayınlanan: 2017-09-23
WordPress'in JavaScript çerçeve seçimiyle ilgili tartışma, gelecek haftaki toplantı öncesinde #core-js Slack kanalında devam ediyor. Daha yeni konulardan biri, geliştiricilerin tercih ettikleri herhangi bir JS kitaplığını kullanarak yeni düzenleyiciyi genişletmelerine olanak tanıyan Gutenberg için çerçeveden bağımsız blok oluşturma olasılığıdır. Bu, halk dilinde "Gutenblocks" olarak adlandırılan Gutenberg bloklarının Vue, React, Preact, Angular veya geliştiricinin kendisini rahat hissettiği herhangi bir şeyle oluşturulabileceği anlamına gelir.
Bu fikrin savunucuları, daha esnek bir yaklaşım izlemenin WordPress'in temel JS çerçeve kararını daha az kritik hale getirdiğini iddia ediyor. Gary Pendergast, #core-js kanalındaki soruları yanıtlarken, ayrılığı sürdürmek için Gutenberg'in nasıl inşa edilebileceğini açıkladı.
Pendergast, "Bu kararın Gutenberg'e katkıda bulunan insanlar için bile önemli olmadığını söylerken gerçekten şaka yapmıyorum" dedi. “#2463'te kitaplık, örneğin lodash kullandığımız gibi, tamamen bir yardımcı program kitaplığı olarak ele alınır. Bir avuç görevi yerine getirir ve kod tabanının geri kalanında herhangi bir kesinti olmaksızın nispeten kolayca çıkarılabilir ve tamamen farklı bir şeyle değiştirilebilir. Gutenberg'e katkıda bulunan insanlar için, içeri aktardığımız herhangi bir kitaplığın stiline değil, Gutenberg kodlama stiline katkıda bulunuyorlar.”
Kararın ne zaman verileceği ve hangi faktörlerin göz önünde bulundurulduğu konusunda bir zaman çizelgesi sorulduğunda, Pendergast bir zaman çizelgesi olmadığını ve katılmak isteyenlerin deneyimlerini bloga yazmaları ve JS çerçeveleriyle inşa edebilecekleri şeylerden örnekler yazmaları gerektiğini söyledi. aşinadır.
Pendergast, "Ne bir yol haritası ne zaman çizelgesi var, ne de olması gerekiyor" dedi. Matt'in belirttiği gibi, bu gerçekten sadece teknik bir karar - daha geniş topluluk için önemli karar 'React değil'i seçmekti. Ne yazık ki, bu karar orantısız bir şekilde uçtu ve 'eklentilerimi hangi JS kitaplığı ile oluşturabileceğim?' ile yoğun bir şekilde birleştirildi. ve bazen 'JS kitaplığının uygulamaları Gutenberg blokları neye benzeyecek?', ikisi de ilişkili değildir. Buna at yarışı gibi davranan tweetler ve paylaşımlar bu şekilde yardımcı olmuyor.”
Pendergast, hangi kitaplığın seçilirse seçilsin "WordPress öğesi tarafından sarılmaya devam edeceğini, temeldeki kitaplığın açığa çıkmayacağını" söyledi. Gutenberg ekibi, eklenti geliştiricilerinin seçtikleri herhangi bir kitaplığı kullanabilmeleri için tüm kitaplık bağımlılıklarını bileşenlerinden kaldırmak için çalışıyor.
Ancak, diğer topluluk üyeleri, çekirdek için seçilen JS kitaplığını basit bir teknik karar veya yardımcı program kitaplığına havale etmeye pek hevesli değillerdir.
Kevin Hoffman, "Çoğu geliştirici, eklentilerinin çekirdek/Gutenberg için seçilen çerçeveye bağlı olmadığını anlıyor" dedi. Ancak bu, kararın önemini azaltmıyor. Daha fazla katkıda bulunanı teşvik etmek istiyorsak, önemli bir çoğunluğun kendini yetenekli ve kendinden emin hissettiği bir çerçeve seçmemiz iyi olur. Bu çoğunluk bir çerçeve ile eklentiler geliştiriyorsa ve çekirdeğe katkıda bulunmak için bir başkasını öğrenmesi gerekiyorsa, potansiyel katkıda bulunanların sayısını sınırlıyoruz.”
Peter Booker, Gutenberg'in ayrımı ne kadar zarif olursa olsun, çekirdek için seçilen kitaplık hakkında iyi bir anlayışa sahip olmanın geliştiricilerin belirli sorunları derinlemesine giderme yeteneğini etkilediğini iddia ediyor.
Booker, “Küçük bir teknik karar olarak seçimi bu kadar küçümsememiz gerektiğini düşünmüyorum” dedi. “PHP, JavaScript ve Backbone'un (diğer şeylerin yanı sıra) nasıl çalıştığını anlamak, WordPress ile ilgili sorunları düzgün bir şekilde ayıklayabilmek için çok önemlidir. Gutenberg için seçilen JS çerçevesi, temel katkıda bulunanlar olmasak bile pek çok insanı etkileyecek. Sorunları tam olarak giderebilmek için gerekli bilgi olacaktır. Bu, Gutenberg ekibinden çok daha fazla insanı etkileyecek bir karar.”

Gutenblock'ları oluşturmak için esnek, çerçeveden bağımsız bir yaklaşım sağlamanın etkileri nelerdir?
Jason Bahl, "performans kabusu için bir reçete" olup olmadığını görmek için tek bir uygulamada React, Preact, Vue ve Angular'ı karıştırmayı deneyen olup olmadığını sordu. Gravity Forms'un Vue tabanlı Gutenblocks oluşturduğu, Yoast'ın React tabanlı bloklara sahip olduğu, WooCommerce'in Preact ile bloklar oluşturduğu ve başka bir eklentinin Ember kullandığı bir örnek senaryo oluşturdu.
Bahl, "Esnek olmak ve insanların herhangi bir şeyi kullanmasına izin vermek kulağa hoş geliyor ama aynı zamanda en iyi uygulamalar ve potansiyel olarak performans sorunları konusunda birçok bölünmeye yol açabilir" dedi. “Vue, React, Preact, Ember, Vanilla JS, vb.'de Gutenblock'ların nasıl oluşturulacağına dair eğiticilerin açıldığını göreceğiz; bu, görmek güzel ama aynı zamanda kafa karıştırıcı ve potansiyel olarak toplulukta daha fazla bölünmeye ve kabul edilen en iyi uygulamalara neden olabilir. . Esneklik bir dereceye kadar iyidir, ancak bir düzeyde güçlü bir görüş de iyidir.”
Gravity Forms'un kurucu ortağı Carl Hancock, Gutenblock'ları inşa etmek için çerçeveden bağımsız bir yaklaşım sunmanın projeyi genişleten geliştiriciler üzerinde çok az etkisi olacağını iddia ediyor. Daha fazla esneklik sunarak karar daha az kritik hale getirilemez, çünkü geliştiriciler kaçınılmaz olarak WordPress çekirdeğinin kullandığı her şeyi benimseyecektir.
Hancock, "Bazılarının bir soyutlama katmanı oluşturmakla ilgili olduğunu iddia ettiği gökkuşaklarına ve kelebeklere rağmen, insanlar çoğunlukla temel kullanımları benimseyecekler, böylece eklenti/tema geliştiricileri istediklerini kullanabilirler" dedi. “Bu, çekirdek çerçevenin ne kadar karmaşık olursa olsun, eklenti ve tema geliştiricileri için giriş engeli üzerinde doğrudan bir etkiye sahip olacağı anlamına gelir. Bu giriş engeli, bugüne kadar tarihsel olarak düşüktü ve WordPress'in kendi kendine barındırılan bir CMS olarak büyümesine doğrudan katkıda bulundu. Bu giriş engelini dramatik bir şekilde yükseltmek mutlaka kötü bir şey değildir. Örneğin, Gravity Forms Preact, Vue, her neyse kullanacak, çünkü bunu yapacak insan gücüne ve becerilere sahibiz, ancak sonunda bunu yapmaya karar verdiğimizde, çekirdek kararını verir.”
WordPress'in Web'i Geliştirme Fırsatı
W3 Techs'e göre WordPress şu anda tüm web sitelerinin %28'ine güç sağlıyor ve hangi çerçeveyi seçerse seçsin, birçok geliştiricinin yazılımı genişletmek ve kariyerlerini ilerletmek için öğrenmeye karar verdiği kitaplık üzerinde büyük bir etki yapacak.
Gutenberg projesinin teknik liderlerinden biri olan Matias Ventura, tartışmaya katılanları daha büyük resme bakmaya ve web'i geliştirecek bir WordPress çözümü üzerinde birlikte çalışma ve işbirliği yapma fırsatını benimsemeye teşvik etti. Ekibin rakip çerçevelerden temsilcilerle işbirliği yapma çabaları, genellikle parçalı ve kırılgan bir ekosistemde ayrılıyor.
Ventura, “WordPress'in son on yılda web standartları için itici bir güç olmasına benzer şekilde, JavaScript UI temsili açısından web geliştirmeyi ilerletme fırsatımız olduğu için heyecanlıyım” dedi. “İnsanlar WP aracılığıyla web geliştirmeyi öğrenmeye devam edeceğinden, bir proje olarak sorumluluğumuzun olduğunu da burada görüyorum. Birçok kişi PHP ile WordPress aracılığıyla tanıştı, başlangıçta yalnızca WP işlevleri ve API'ler ile etkileşime girdi ve sonunda gerektiğinde dile biraz daha derinlemesine daldı. Tüm çerçeveleri ve kitaplıkları kapsayan, öğrenmek için en anlamlı aracı sağladığından, özümüzün dile yakın JS kaldığını görüyorum.
Ventura, devam eden tartışmada katılımcılara Gutenberg ekibinin dinlediği ve interneti ileriye taşıyacak bir çözüm için çalıştığına dair güvence verdi.
Ventura, "Nasıl inşa ettiğimizin ve Gutenberg aracılığıyla sunduğumuz şeyin geliştirici topluluğunu etkileyeceğinin kesinlikle farkındayız ve bunu hafife almıyoruz - tam tersi" dedi. "Evan (Vue) ve Jason (Preact) ile konuşuyorum çünkü 'çerçevenizi seçin' yarışması yerine bu, işbirliği yapmak ve web'i ileriye taşımak için bir fırsat gibi görünüyor."
