WP21 Teknik Sunumu
(ma.tt)- WordPress, Matt Mullenweg ve Mike Little'ın b2/cafélog'u fork edip ilk sürümü yayımlamasının üzerinden 21 yıl geçti; gelecekteki geliştirmelerde de ilk başarısını mümkün kılan koşulları yeniden yakalamalı
- Ürün yönü, kolay işleri sezgisel kılarken karmaşık işleri de mümkün hale getirme ilkesine göre şekilleniyor
- Blog yazma, yorumlar ve pingback gibi dinamik web özellikleri web sitelerini daha eğlenceli kılar; statik web sitelerine kıyasla dinamik web sitelerine daha büyük değer atfediliyor
- Eklenti ve tema ekosistemi, WordPress çekirdeği düzeyinde geliştirme altyapısına sahip olmalı; 2024'te ZIP yüklemelerine bağımlı bir yöntem uygun değil
- Kullanıcıya yakın geri bildirim döngüleri, topluluk odaklı forumlar, iyi tema önizlemeleri ve Playground, gelecekteki WordPress deneyimini belirleyecek
WordPress'in 21. yılı ve ürün ilkeleri
- WordPress, Matt Mullenweg ve Mike Little'ın Michel'in b2/cafélog çalışmasını fork edip ilk sürümü yayımlamasının üzerinden 21 yıl geçti
- Gelecekteki geliştirmelerde de WordPress'in ilk başarısına katkıda bulunan unsurlar akılda tutulmalı
- Temel ürün ilkesi, basit olanın kolay ve sezgisel olması, karmaşık olanın da mümkün kılınması gerektiği üzerine kurulu
Blog, dokümantasyon ve topluluk özellikleri
- Blog yazma, yorumlar ve pingback eğlenceli olmalı
- Statik web siteleri de iyidir, ancak dinamik web sitelerinin daha iyi olduğu görüşü benimseniyor
- Neredeyse her site, harika bir bloga sahip olursa daha iyi hale gelebilir
- Dokümantasyon wiki gibi kolayca düzenlenebilir olmalı
- Wiki'ler “şaşırtıcı” araçlar olarak değerlendiriliyor
- Toplulukta forumlar merkezde olmalı
- bbPress ve BuddyPress daha fazla ilgiye ihtiyaç duyuyor
Eklenti ve tema ekosistemi
- Tüm eklenti ve temalar, WordPress'in kendisini oluştururken kullanılan düzeyde geliştirme altyapısına sahip olmalı
- Sürüm kontrolü
- Hata takip sistemi
- Forumlar
- Dokümantasyon
- Uluslararasılaştırma
- Sohbet odası
- P2
- Katkıya ve topluluğa uzanan kolay bir yol
- 2024'te eklenti ve temaları ZIP yükleme yöntemiyle ele almak uygun değil
- Tema önizlemeleri mükemmel olmalı
- Çeşitli estetik anlayışlara ve işlevlere sahip ticari olmayan tema koleksiyonları önemli
Kurallardan çok geri bildirim döngüleri ve şeffaflık
- Yönergeler ve gereksinimlere aşırı yaslanılmamalı
- İyi pazar yeri dinamikleri, otomatik geri bildirim döngüleri ve kullanıcılara yönelik şeffaflık tasarlamak daha iyi
- Özelliklerin ve tasarımın sınırları daha da zorlanmalı
- Spam ve spam benzeri davranışlara karşı sıfır tolerans gerekli
- Geri bildirim döngüleri, gatekeeper'lara dayanmak yerine kullanım ve tüm toplulukla birlikte ölçeklenmeli
Çekirdeğin karakteri ve kullanıcı temas noktaları
- WordPress çekirdeği görüş sahibi ve kendine özgü olmalı
- Easter egg
- Çevirisi zor olsa bile karakteri olan bir dil
- Caz gibi bir kişilik
- Yazılımı geliştiren ve kararlarını alan herkes o yazılımı kullanmalı
- Geliştiriciler ve karar vericiler; destek çalışmaları, meetup'lar, etkinlikler gibi mümkün olan faaliyetler aracılığıyla sıradan son kullanıcılara yakın durmalı
Playground ve ilk deneyim
- Playground'un her şeyi değiştirmesi bekleniyor
- 27 Mayıs 2003'te, ilk WordPress sürümünün yayımlandığı gün, Matt Mullenweg ailesinin evinin verandasında yazdığı 953 kelimelik blog yazısına “WordPress'i yayımladım ve iyi hissettim” cümlesini bıraktı
- O gece arkadaşı Ramie Speight için WP'yi kurdu ve yerel blog yazarları buluşmasında tanıştığı Mike Tremoulet'ye telefonla teknik destek verdi
- Liseden arkadaşları WordPress'i kendi alan adlarında kullandı ve bu geri bildirim döngüsü yazılımın şekillenmesinde büyük rol oynadı
1 yorum
Hacker News yorumları
WordPress’in geliştirme standartlarına uymak bir yana, onları aktif biçimde bozmak istiyor gibi görünmesi üzücü.
Her yerde global değişkenler kullanıp klasik temalarla spagetti kodu teşvik ettikten sonra, yeni temalarda JSON’u HTML yorumlarının içine koyduruyor; editör desteği yok, hata yapmak çok kolay ve tasarım baştan aşağı tuhaf.
Ciddi ciddi kıdemli mühendislerin JSON şablonlarını HTML yorumlarının içine koyma kararı mı aldığını merak ediyorum; komplo teorisi gibi bakınca da freelance çalışanları ya da dijital ajans pazarını öldürüp insanları WP.com’un WYSIWYG site oluşturucusuna itmeye çalışıyor gibi de görünüyor.
PHP içindeki HTML içindeki JS içindeki CSS gibi; ayrıca tam sayfayı oluşturmak için hangi dosyanın hangi sırayla okunacağına dair örtük bir yapıya dayanıyor.
Başta kolay görünüyor ama HTML öğelerini aynı dosyada düzgün kapatmayıp başka dosyada bitirterek yeniden kullanılmalarını da engelliyor.
Acemi hatası gibi görünüyor ama binlerce tema buna bağımlı olduğu için artık herkes bağlanmış durumda; bu da Jinja2 şablonlarında blok ve makroların render edilme biçimiyle tezat oluşturuyor.
WordPress, basit bir web sitesine ihtiyaçları olduğu yanılgısındaki bütçesiz müşteriler ve düşük ücretli müşteriler için var; bence zaten o basit site kavramının kendisi de artık ölmüş bir hikâye.
https://timber.github.io/docs/v2/
Kurulum yolu birazcık farklı olan yeni bir sunucuya taşımaya çalışınca hemen bozuluyordu.
Ne yazık ki bu, “platformumuz tüm web sitelerinin %43,4’ünü çalıştırıyor” pazarlama söylemine olumsuz etki edebilir.
Hızlı yargıların ve güçlü fikirlerin topluluğun bir parçası hâline gelmiş olması üzücü.
Son 2-3 ayda epey WordPress geliştirmesi yaptım; blokların (Gutenberg) sağladığı kod izolasyonunun harika olduğunu söylemek isterim.
Bağımsız eklenti olarak ya da Advanced Custom Fields ile birlikte kullanıldığında, HTML’e kadar %100 doğrudan kontrol edilen, tam modüler bir web sitesi ve geliştirme akışı, yani bir tasarım sistemi kurabilirsiniz.
WordPress’i düzgünce anlamayı ve öğrenmeyi herkese öneririm. WordPress ile hiçbir ilgim ya da bağlantım yok.
Bugün birden Gutenberg ile ACF Blocks, iç içe medya alanlarının içeriğini parse etme konusunda bir yerlerde çakışmaya başladı.
Sebep “kullanıcının koymaması gereken bir görsel açıklaması koyması” da olabilir, “eklentinin global nesnesinin
acf_register_block_type()’a aktarılan başka bir global nesneyi kirletmesi” de olabilir.Zaten öfkeli olan müşteriyi arayıp hızlı yargılardan ve güçlü fikirlerden kaçınmasını söylemem gerekebilir.
Şu anda öyle olmayabilir ama şüpheci olmak doğal. Her hafta kontrol ettiğim güncellemelerde epey CVE görüyorum; gerçi hepsi düşük riskli ya da neredeyse hiç kullanılmayan eklentilerle ilgili olabilir.
index.phpdosyasını safça açıp nasıl çalıştığını anlamaya çalışmaktı.Dosyanın en üstündeki “code is poetry” yorumundan başka hiçbir şeyi anlayamadığımı hatırlıyorum.
Bu, koda bakış açımı değiştirdi ve programlamaya daha çok kapılmamı sağladı.
Yazılara metadata gerekiyorsa ACF kuruyorsunuz; o metadata ile filtreleme yapmaya çalışınca birkaç filtre aynı anda devreye girse bile SQL sorgusu zaman aşımına uğruyor. WP’nin tuhaf şemasına bakınca nedeni anlaşılıyor.
Gutenberg, WYSIWYG olarak düzenlenebilir React bileşenleri vaat ediyor; ama nitelikleri HTML’in içine kaydetmek, veritabanına render edilmiş HTML koymak ve bileşen geliştiricisine bir şey değiştirdiği her seferinde deprecated değişiklik dizileri tutturmak gibi tuhaf kararlar alıyor.
WordPress’i refactor edip Laravel ekleyerek çözmeye yönelik girişimler de var[1], ancak her katman ayrı bir kâbus ve farklı parçaların yazarları da rastgele neden bozulduğunu doğru düzgün değerlendiremiyor gibi görünüyor.
Eklenti ekosistemi çekici olabilir ama eklenti implementasyonları birbirinden çok farklı; bunun kullanıcıya şişkin CSS ve JS yığınları itme ihtimali yüksek.
Ben Directus ve Astro’ya geçtim; daha genel bir PHP dağıtımı olsaydı October ya da Statamic gibi Laravel tabanlı CMS’ler kullanırdım.
[1]: https://roots.io/
2009-2011 arasında eklenti yazma ve düzenleme dahil epey uğraştım ama hiçbir zaman gerçekten anladığımı hissetmedim; daha çok kabaca anlıyor ya da kabulleniyordum.
WordPress’i seviyorum. İnsanlar kendileri kuruyor, onlarca işe yaramaz, güvensiz ve bol hatalı eklenti yüklüyor; zamanla site bozulduğunda da daha güvenli ve sağlam bir çözüm için ücret talep edebiliyorsunuz
Bitmeyen bir hafta sonu projesinin fazla uzayıp sonunda yayımlanmış hâli gibiydi; devasa bir global değişkenin etrafında dönen, 5 ekran uzunluğunda yinelenmiş
fordöngüleriyle bir şeyler işliyorduWordPress, “mükemmel olması gerekmez, çalışması yeter” yaklaşımının en sevdiğim örneği
Pek çok harika proje, ilk adımı aşırı karmaşıklaştırdığı için ölüyor. İnsanlar kullanmaya başladıktan sonra daha sonra her zaman iyileştirebilirsiniz; ama önce yayımlamak gerekir
Durum o kadar kötü ki PHP dili geliştiricileri bile bazı özellikleri ya da düzeltmeleri uygulayamıyor. Çünkü WordPress ekibi kodu migrate etmek istemiyor ve WordPress, PHP kullanımının büyük bir bölümünü oluşturuyor
WP, işlerin %95’i için mükemmel bir araç; ama son %5’i ayarlamak inanılmaz derecede sinir bozucu
Çok kullandım ve bu kadar uzun süre hayatta kalmasını faydalılığının kanıtı olarak görüyorum. Umarım 21 yıl daha devam eder
Açıkçası WordPress’i hiçbir zaman kullanımı kolay bulmadım. İyi tema ve eklentiler bulabildiğiniz sürece her şey tozpembe; ama çok küçük bir özelleştirme değişikliği gerektiği anda işler sarpa sarmaya başlıyor
Ama siteyi ve eklenti/tema kodunu, CSS dosyalarını açınca istediğim etkiyi elde etmek için saatlerce uğraşırdım; başarsam bile sitenin başka bir yerini bozardım
Aşağılayıcı anekdot bir yana, Matt iyi iş çıkarmış ve sondaki hikâye de güzeldi
Güncellemeler manuel müdahale gerektirir, temaların düzeltilmesi gerekir, eklentiler terk edilir. Bu yükü kabul etmek istemediğim için 2017 civarından itibaren tüm siteleri Hugo/Jekyll/MkDocs vb. sistemlere taşıdım
Blog için WP yerine Ghost kullanmak isterim; ayrıca PHP yerine JS’yi tercih ediyorum
Birçok kişinin “Ben WordPress geliştiricisiyim” dediğinde aslında tamamen farklı deneyim ve beceri kümelerini kastetmesi ilginç
Kimisi için bu, WordPress yönetim panelinde tema ve eklenti kurup sayfa içerikleri yazmak demek
Başkası için PHP şablonlarıyla HTML yazıp WordPress davranışını özelleştiren eski usul PHP kodu, yani klasik tema demek
Bir başkası içinse Docker, CI/CD ile birlikte JS+React yazılan yeni blok tema demek
Daha fazla şirketin Automattic’in ücretli izin/sabbatical politikasını benimsemesini isterdim
https://automattic.com/benefits/sabbatical/
Yaşlandığınızı hissettiren şey, “WP”yi görünce WordPress değil WordPerfect’i (https://en.wikipedia.org/wiki/WordPerfect) düşünmenizdir
WordPress artık en muhafazakâr ülkelerde bile yetişkin sayılacak yaşa geldi; WordPerfect ise artık orta yaş krizine girecek yaşa yaklaşıyor
WordPress’te etkileyici olan şey, web meraklılarının onun doğal olarak kolay olmasını bekleyip öyle olmayınca sinirlenmesi
Diğer her şey gibi WordPress de öğrenilmeli; kendine özgü bir bakış açısı var
Tuhaf bir geçmişi de var; özellikle medya öğelerini ele alma şeklinden gerçekten hoşlanmıyorum, ama yine de bir metodolojisi var
Go, JS, Perl, Java, Ruby, C bildiğimi söyleyip Rust’ı öğrenmek zor diye sinirlenirsem elbette karşı çıkılır
WordPress basit işler yapıyormuş gibi görünür ama aslında oldukça geniş bir platformdur. Biraz dokümantasyon okumanız gerekebilir
Elementor kullanan bir site devraldıysanız, basit değişiklikleri nasıl yapacağınızı siteyi yapan kişiye sorarsanız yardımcı olabilir
Visual Composer ya da Divi kullanan bir site devraldıysanız, yapanları vurmak isteyecek hâle gelirsiniz
Gutenberg’in kötü olduğunu düşünüyorsanız, artık hiç de öyle değil. Divi dönemini hatırlayınca gerçekten berbattı
WordPress’in üstüne bindirilmiş korkunç JavaScript arayüz çalışmasında en ufak bir zaman aşımı bile, yalnızca bir blog yazısını kaydetmekle tüm web sitesini kurtarılamaz hâle getirebilir
İtalyanca ve Fransızca yerelleştirmeleri 90’ların Japon oyunları seviyesinde berbat; responsive seçenekleri de belirli breakpoint’lerde içeriği gizleyip göstermeye responsive demiyorsanız fiilen çalışmıyor
Ön uç “teması” jQuery dönemi JavaScript’inin okunamaz bir dökümüne yakın olduğu için her şey aşırı kırılgan
Elegant Themes reklama inanılmaz para harcamamış olsaydı kimsenin kullanmayacağından %100 eminim