WordPress geliştiricileri için JavaScript Peyzaj Anketi
JavaScript, WordPress ekosisteminde neredeyse var olan bir konu haline geldi, ancak bazı yeni olaylar insanları daha acillere dikkat etmeye zorladı. Birincisi, son yıllarda JavaScript, hız, uygulamalar ve daha fazlası hakkındaki kullanıcı algıları nedeniyle genel olarak web geliştirme konusu için giderek daha önemli hale gelmiştir. Daha yakın, Aralık ayında WordPress 4.4 çıktı, bu da yaklaşan JSON REST API’sının ilk yarısını birleştirdi. (JSON, bir tesadüf değil, Java’nın Cript o Bject n otation anlamına gelir.) Ve aynı ay WordCamp Bize, Matt Mullenweg, BDFL (yaşam için iyi kalpli bir diktatör) Topluluğa gerçekten JavaScript’i incelemeye zorluyor. Yılbaşı.
Ben JavaScript her şey konusunda uzman değilim. Hangi çerçeve veya kütüphanenin şu anda en iyisi olduğu konusunda savaşırken köpeklerim yok ve ekosistemin köşesi hakkında konuşmayacağım. Bununla birlikte, sunduğum şey, “JavaScript öğrenme” görevinin birçok farklı yönü hakkında, süreç boyunca biraz mesafe (tamamlanamayan) olarak belirsiz olan birçok farklı yönü hakkında oldukça nüanslı bir bakış açısıdır. Herkesin bugün React’i kullanması gerektiğinden veya daha önce JavaScript’i duymuş olabileceğinizi düşünüyor musunuz, sanırım sizin için bir şeyimiz var.
JavaScript, geçen yıl birçok ders verdiğim başka bir programlama dilidir – burada slaytlar – WordPress hakkında. Yaptığım noktalardan biri dört dilin WordPress’e girmesiydi: CSS, HTML, JavaScript ve PHP. Hepsinin bazı önemli benzerlikleri vardır: belirtilen sözdizimi, bilgisayara ne yapacağını söylemek için İngilizce anahtar kelimeye bağlıdır
İngilizce anahtar kelimeleri ve diğer çeşitli sembolleri içeren metin dosyalarını değiştirerek bilgisayardaki davranışları ve sunumları kontrol etme yeteneği
HTML ve CSS bildirim dilidir. PHP ve JavaScript her ikisi de mantık programlamadır.
Bu benzerliğin dışında, CSS ve HTML birbirleriyle JavaScript ve PHP’den (diğer çiftlerden daha fazla benzerliğe sahip) daha fazla benzerliğe sahiptir. CSS/HTML çiftlerini JS/PHP çiftlerinden ayıran şey şudur: HTML ve CSS bildirim dilidir, yalnızca belirli bir formata sahip dosya oluşturmanız gerekir ve olması gereken etkiye sahip olacaktır. PHP ve JavaScript, her ikisi de “Gerçek Programlama Dili” nin daha öngörülemez bir sürüm kullanımı mantık dilidir. Bununla birlikte, PHP ve JavaScript’te yürütülen bir program yazmanız ve programınızın içeriğinin yürütme işlemi sırasında gerçekleşmesi gereken bir mantık ve dönüşüm davranışı koleksiyonu olduğudur.
Ama dil nedir? Ecmascript, vb. Geleneksel bir WordPress kullanıcısı veya geliştiriciyseniz, en azından yeni bir PHP, PHP 7, Out’un nasıl olduğu hakkında biraz duymuş olabilirsiniz ve eskisinden çok daha iyi ve daha hızlıdır (PHP 5.6 olarak adlandırılır). Aynı şey JavaScript için de geçerlidir, ancak daha karmaşıktır. Java programlama dili ile ilgisi olmayan, sadece var olabilecek karışıklığı ortadan kaldırmak için – bir versiyonu da var. JavaScript’i PHP’den gerçekten ayıran şey, sunucudan ziyade bir web tarayıcısında çalışmasıdır. Böylece, farklı tarayıcılar farklı çevirmenlere sahiptir-metin dosyalarını alan ve dünyaya yanıt olarak doğru davranışı üretir. PHP ile (çoğu amaç ve hedefler için), çevirmenler ve dil standartları aynıdır. Bazı farklı JavaScript uygulaması olduğu için, bu dil ECMA tarafından spesifikasyonlara göre standartlaştırılmıştır. Bazı farklı JavaScript uygulaması olduğundan – temelde her ana web tarayıcısı için bir tane – bu dil ECMA Uluslararası Standart Ajansı tarafından oluşturulan özelliklere göre standartlaştırılmıştır. Grubun adı, daha sonra JavaScript çevirmeninde düzgün çalışacak şekilde yapılan çeşitli özelliklere eklenmiştir. Bu standarda bazen “Ecmascript” denir. Şimdi ECMAScript 2015 olarak adlandırılan ES6’nın bilmesi gereken JavaScript sürümü geçen yıl çıktı.
Son beş yılda oluşturulan hemen hemen her tarayıcı, ECMAScript 5 standardını (genellikle ES5 olarak kısaltılır) uyguladı. Bu, Aralık 2009’da tamamlandı. JavaScript Dünyasının bir kısmı şu anda ECMAScript 2015 olarak adlandırılan ES6 standardı geçen yıl tamamlandı. Bu, birçok dil açısında önemli bir değişikliktir. Temel JavaScript’i biliyorsanız, ancak ES6/2015’i hiç duymadıysanız, kesinlikle öğrenmek istersiniz. Sadece JavaScript’in tüm dünyasını biliyorsanız, fark hakkında endişelenmeyin, bunun var olduğunu bilin. JavaScript ve sürümü hakkında farkına varılması en büyük şey, her yeni tarayıcının ES2015 uygulamalarını hala tamamlaması ve uygulaması gerektiğidir. Bildiğim kadarıyla, şu anda onu tamamen uygulayan bir tarayıcı yok. Yani, bugün en son JavaScript sürümünü kullanmak istiyorsanız, “Transpiler” olarak adlandırılan şeyi kullanmalısınız. Transpiler, ES6 durumumuzda bir dilde bir program alır ve bugün tüm tarayıcılarda veya ES5’te işlev gören bir işlev haline getirir. Bugün yazdığım en popüler transpiler BABEL olarak adlandırılıyor.
Ve tarayıcımın biraz daha erken dalgalandı ve JavaScript’in tarayıcıda çalıştığını söyledi. Olan tek yer burası, bugün açıkça değil. Bazı insanlar Google Chrome’dan JavaScript’in uygulanmasını alan ve onu bir web sunucusu haline getiren “Node.js” adlı bir şey yaptığında bu taslak gerçekten daha yüksek bir seviyeye atılır. Bu 2009’da oldu ve o zamandan beri dünyada kullanılan JavaScript yerlerinde önemli bir etkisi var. Şu anda insanlar JavaScript-“Calypso” projesi ile son zamanlarda Automattic ve WordPress.com’dan övülen “Calypso” projesi ile çalıştırıyor. Daha da önemlisi, insanlar bu başarıdan da yol açmış ve JavaScript’i geliştirme süreçlerinin bir parçası olarak kullanmıştır. Geliştiriciler tarafından kişisel bilgisayarlarında transpilasyon, derleme/sass eksikliği ve daha fazlası JavaScript’te yapılır. Duyduğunuz en yaygın iki araç burada tartışılır. Grunts ve Gulp denir.
Kütüphane ve JavaScript çerçevesi, tüm programlama dilleri gibi, insanların kütüphaneler veya çerçeveler tarafından bir kez uygulanabilen ve daha sonra herkes tarafından kullanılabilen JavaScript ile yapması gereken bir dizi genel görev vardır. Bazılarını duymuş olmalısınız, ama sadece bir kütüphane olarak gördüklerimin kısa bir özetini ve WordPress geliştiricileri tarafından bilinmesi gereken ana çerçeve, bu da onu yararlı, ilginç ve neyin kısa bir özetidir. / veya tartışmalı. JQuery – Domjika WordPress geliştiricilerin manipülasyon kütüphanesi sadece bir JS kütüphanesi kullanıyor, bu çok mümkün. JQuery bu listedeki en eski ve bazı basit şeyler. Bu en iyi bilinir ve “DOM” (belge nesne modeli, temel olarak tarayıcıda HTML oluşturma) için küçük değişiklikler için kullanılır ve onunla çok karmaşık mantık yapmaya çalışırsanız kontrolden çıkabilir.
“Vanila JS” teknik olarak JQuery’den daha eskidir, ancak bunun nedeni bir kütüphane veya çerçeve olmamasıdır. Bu, bazen insanların sıradan eski JavaScript’e atıfta bulunmasının akıllı bir yoludur. (1) size yeni bir sıcak çerçeve olduğunu söyleyebilecek trollerden kaçınabilmeniz için kaydediyorum ve (2) JavaScript’in uygulanmasının ECMAScript standardını takip etmede daha iyi olduğundan, bazı kişilerin JQuery ve diğerlerini düşürdüğünü unutmayın. Uyumluluk – JavaScript’in kendisi dışında hiçbir şey kullanmamak için kütüphaneyi artırın. Ziyaretçilerinizi ek dosya indirmekten kurtarıyorsunuz ve kendi kodunuz da muhtemelen biraz daha hızlı. Omurga – MV Kütüphanesi*
Omurga, JQuery’den sonra nesil gelen kütüphanenin en dayanıklı olanıdır. Omurga temelde bir Proto-MVC çerçevesidir. (Teknik olarak MV*.) MVC’yi hiç duymadıysanız, modeller-görüntüleme kontrolörü, veri (modeller), şablonlar (ekran) ve davranışınız (denetleyici) depolamak için web uygulamalarında sıklıkla kullanılan bir modeldir. birbirlerinin üstünde yürümekten. “JQuery Spagetti” hakkında bahsettiğim kötü, böyle yapılandırılmış kalıpların eksikliğinden kaynaklanıyor. Omurga, “Model” ve “Ekran” nesneleri sağlar, böylece biraz daha fazla akıl sağlığınız olabilir, ancak uygulama davranışınızın nasıl uygulandığı hakkında bir fikriniz yoktur. Yetiştirme – Fonksiyonel Programlama Yardımı
yan etkiler “. Çok kısa bir özet başınızın üstünde olabilir, AHLI olmayanın almasını istediğim temel fikir sadece” fonksiyonel programlama “nın sadece işlevler yapmakla ilgili olması ve daha fazla düşünülmesi ve daha fazla incelenmesi gerektiğidir. IDE> Açısal (2)-Açısal 1’in en popüler tam çerçevesi, backbone sonrası neslinin ilk ana çerçevesidir ve bir süredir en popüler olanı. Omurga özetimde bunun bir MV* kütüphanesi olduğunu söylemiştim. ‘Uygulama davranışınızla nasıl başa çıktığınızı gerçekten umursamıyorum. Angular, JavaScript’in ilk popüler “çerçevesi” – temelde daha büyük ve daha iddialı bir kütüphane – uygulamanızı nasıl oluşturduğunuzu dikte etmek isteyen. Bu size şablonunuzu nasıl oluşturacağınızı anlatıyor , Verilerinizi nasıl görüntüleyeceksiniz ve bir şey koyacaksınız. Kısmen, kısmen derinlemesine açısal olarak çalışmadım çünkü ekip geride kaldığında Bir sonraki sürümü açıkladı – Angular 2 – temel fikirlerinin çoğunu pencereden çıkardılar. O zamandan beri istifa ettiler – açısal 1 uygulamasının açısal bir uygulama haline gelmesi 2 artık aptalca bir görev gibi görünmüyor – ancak Angular 2 bu yılın ilerleyen saatlerinde ortaya çıktığında benimsenmesi hala büyük ve önemli bir soru oldu. Kova (2) – Başka bir MVC çerçevesi
Kova açısal, çok benzer şekilde aynı nesildir ve ben de kullandım. Angular’ın aksine, Buck 2, ilk versiyondan ileri bir geçiş yolu vaat ediyor, bu yüzden büyük bir kova uygulaması yapıyorum. Kova, onu nasıl kullandığınız, uygulamanızı nasıl oluşturduğunuz ve bunun açısaldan ne anlama geldiğini daha da düşünmektedir. Kova her zaman JavaScript uygulamanızda bir URL olmanın çok önemli olduğunu ve ayrıca MVC desenlerini kesinlikle kullandığını ve bu adların her birini kullanmayı çok kolaylaştırdığını söylüyor. Kova 2, “denetleyici” konusundaki vurguyu “bileşen” olarak değiştirdi, ancak kovayı yine de “tüm uygulamaların MVC JavaScript çerçevesi” olarak değerlendirebilirsiniz. React – West React’teki en hızlı şablon, konuşmak istediğim JavaScript “Güncel Nesil” in son şeyi. React’in temel özelliği, açısal veya kova gibi tam bir “MVC” sözü değil, bir kız tarafından hayal edilebilecek en iyi “ekran” kütüphanesidir. Kovalar ve Açısal 1 çağında ortaya çıkan sorunlardan biri, görünümün (çerçeve tarafından yapıldığı gibi) görünümünün çok yavaş olabileceğidir. React’in popülaritesi, o görevde çok daha hızlı olduğu gerçeğinden büyüdü, ancak şimdi başka birkaç özellik de içeriyor. React temel olarak “ekran” katmanının çok perspektifi olan bir versiyondur
, bu da görüntülerinizi hızlı bir şekilde yapmaya odaklanır ve etrafındaki tüm mantığınızın basit bir küçük birime gözaltına alınmasını gerçekten düşünmenizi sağlayarak bunu yapar. Küçük hırsları nedeniyle, bu birçok farklı uygulama yapısı ve veri yönetimi akışı ile kullanılır. Diğerleri, bahsetmediğim kütüphanelerin, çerçevelerin ve javascript araçlarının daha fazla yolu var. Bu listenin tam olması değil, aşağıdaki ekosisteme bir göz atmak için tasarlanmıştır. Favorinizden bahsedilmiyorsa, bu konuda yorum yapmaktan çekinmeyin. Neden dahil edilmesi gerektiğini duymak istiyorum. Vay! JavaScript, PHP gibi büyük bir JavaScript konu alanıdır, ancak değişkenler dolar işaretleri gerektirmez. JavaScript hakkında bildiğim her şeyi ya da bildiğim her şeyi söylemiş olduğum için neredeyse bitmemiştim. Bunu yapabileceğimi iddia etmek saçma olacak. Umarım, şimdi JavaScript’in PHP ile anlamış olabileceğiniz biraz benzerliğe sahip olduğunu anlıyorsunuz. Eğer öyleyse, JavaScript’i ayırt eden birkaç ana yol olduğunu bilin – “Fonksiyonel Programlama” bölümü buna kısaca değiniyor; “Doğal Prototipal” ve “Yetiştirme”, başkalarını öğrenmek için iyi bir arama terimidir – ancak bu% 20’dir. (Pareto Prensibi.) Etkili olmaya başlamanız gereken şeylerin% 80’i için “JavaScript PHP gibidir, ancak değişkenler dolar işaretleri gerektirmez”