Drupal 7'den Drupal 8'e geçmenin önemini müşterilerimize anlatırken karşılaştığımız en yaygın soru “Neden Drupal 8?” oldu. Bu soruya en kısa tabirle “Drupal 8 bugüne kadarki en büyük ve en yenilikçi güncelleme” şeklinde cevap vermek mümkün olsa da, bu yazımızda bu yenilikçi özellikleri detaylı olarak incelemeye çalışacağız.
Drupal 8’in Altyapısı Çok Daha Güçlü
Drupal topluluğunda popüler olan “adadan çıkmak” kavramıyla Drupal’deki önemli paradigma değişimine işaret ediliyordu. Drupal 8 ile sağlanan bu paradigma değişiminin Drupal’de - ve hatta PHP’de - önemli teknolojik ve kültürel ilerlemelere sebep olacağı öngörülüyordu. Gerçekten Drupal 8 herhangi bir Drupal versiyonu olmadı. Drupal topluluğu, Drupal 8 ile ciddi yapısal ve radikal değişikliklere imza attı ve başarılı da oldu.
Adadan çıkışın kısa vadede Drupal’e getirileri şöyle oldu:
- Yeni Tema Motoru: Drupal 8 ile gelen Twig tema motoru ile önyüz geliştiricilerin daha kolay kod yazabilmesine olanak tanıyor. Twig, güvenlik ve performans açısından da oldukça avantaj sağlıyor.
- Nesne Yönelimli Programlama (OOP): Drupal 7’deki prosedürel programlama yerini Drupal 8’de nesne yönelimli programlamaya bırakmış durumda. Bu yapı sayesinde kodların yeniden kullanılabilirliği sağlanırken geliştiriciye bakımı kolay, yapısal kod yazma olanağı tanıyor.
- Symphony Bileşenleri: Esneklik ve ölçeklenebilirlik sağlayan Symphony bileşenleri artık Drupal 8’de kullanılabiliyor.
- API Önceliklilik: Drupal 8 ile gelen Restful Web Services ve JSON API sayesinde artık tüm altyapı farklı sistemlerle kolaylıkla konuşabiliyor.
- Yeni Metin Editörü: Sistem çekirdeğinde gelen CK Editor, MS Word’dekine benzer birçok düzenleme fonksiyonu sunuyor.
- Views: Hemen her Drupal projesinde kullanılan, veritabanı sorgularının yönetildiği ve Drupal’in olmazsa olmaz modüllerinin başında gelen Views artık Drupal 8 çekirdeğinde geliyor.
- Alan Türleri: Drupal 8 ile çekirdekte artık varsayılan alanlar çok daha fazla. Telefon, E-Posta, Tarih, Varlık Referansı, Bağlantı gibi pek çok alan hazır olarak geliyor. Hemen her şey varlık (entity) yapısına evrildiği için bloklara, gösterimlere, yorumlara vb. alan eklenebilir hale getirilmiş. Böylece zaten esnek olan Drupal yapısı çok daha esnek olmuş.
Drupal 8'de Kullanım Kolaylığı Çok Gelişti
Drupal 8’e kadar, Drupal ile Wordpress karşılaştırıldığında hemen her alanda Drupal ciddi bir fark yaratırken, sanırız Wordpress’in Drupal’e üstün geldiği yegane alan kullanım kolaylığı idi. Drupal 8 ile kullanıcı deneyimindeki bu zaafiyet ortadan kalktı ve Drupal artık kullanıcı deneyimi açısından da çok üstün bir araç haline geldi.
Drupal 8 geliştirme sürecinde Drupal topluluğunun ana odaklarından biri, farklı rollere dönük kullanım kolaylığının sağlanması idi. Drupal 8’in stratejik inisiyatifleri içinde kullanıcı deneyimini odak alan “Admin Arayüzü and JavaScript Modernizasyonu,” Media Kütüphanesi,” ve “İş Akışı” inisiyatifleri ile önemli mesafe katedildi. Bu inisiyatifler site geliştiricileri, admin/editör ve son kullanıcı için kritik çalışmalar yaptı. Bunların sonucunda:
- Admin teması olarak çok modern bir görünüme sahip Claro Teması Drupal’e kazandırıldı.
- Sayfa yerleşimi, hedef sayfa (landing page) ihtiyaçlarında bir geliştirici desteğini zorlayan yapıdan; Paragraphs, Layout Builder ve Gutenberg Editör gibi çok üstün araçlar kullanarak editöre istediği sayfa yerleşimlerini özgürce yapmasına olanak sağlayabilen bir yapıya geçildi.
- Media kütüphanesi çekirdeğe alınarak görsel, video ve dosya yönetimleri modernize edildi. Sistemde daha önce kullanılan medya içeriği / içerikleri yeniden çağrılabilir oldu.
- Workflows eklentisi çekirdeğe alınarak içerik yayınlama iş akışlarının oluşturulması kolaylaştırıldı.
- Drupal 8 çekirdeğinde yeni özelliklerle gelen WYSIWG editor ile veri girişlerinin daha kolay yapılabilmesi sağlandı.
- Sayfada görünen başlık, gövde, vb. kısımların düzenleme sayfasına gitmeden aynı sayfa üzerinde değiştirilebilmesine olanak tanıyan In-Place editör ile kolay ve hızlı içerik düzenlenebilmesi sağlandı.
Drupal 8 Mobil Dostu
Drupal’in hem son kullanıcılar için yani içeriklerin hedef kitlesi için, hem içerik girişi yapan editörler ve çeşitli ayarlamalar yapan yöneticiler için mobil uyumlu hale getirilmesi, Drupal 8’in öncelikli hedefleri arasındaydı. Bunun yanı sıra her türlü mobil çözüm / uygulama için Drupal’in uygun hale getirilmesi de gerekiyordu. Bu hedefleri gerçekleştirmek için Mobil İnisiyatifi, Web Servisleri İnisiyatifi ve HTML5 İnisiyatifi görev aldı. Bu çalışmalar sonucunda Drupal 8’de:
Böylelikle Drupal 8, gerçek anlamda mobil dostu (hem mobil uyumlu, hem de mobil uygulama geliştirme için uyumlu) dünyadaki az sayıda içerik yönetim sistemlerinden biri oldu.
- API öncelikli altyapısı sayesinde doğal (native) ve hibrit mobil uygulamaları geliştirebilmek için çok uygun bir platform haline getirildi.
- Yönetimsel formlar mobil cihazlara uyumlu hale getirildi ve böylece mobil cihazlardan kolay veri girişi sağlandı.
- Bütün çekirdek temaları mobil uyumlu hale getirildi.
- Önyüz performansı arttırıldı.
- CSS yapısı ve mimarisi iyileştirildi.
- Kullanıcının yüklenen görselleri cihaz boyutuna göre yapılandırmasını sağlayan özellikler eklendi.
Drupal 8’de Güvenlik Üst Düzeyde
2005 yılından beri Drupal’de sadece güvenlikle ilgilenen çok güçlü bir ekip var ve bu ekip her yeni versiyon çıktığında güvenlik problemlerinin güncel ve hızlı şekilde çözülmesine odaklanıyor. Bu odaklanma doğalında yeni versiyonu daha güvenlikli hale getiriyor.
Bunun dışında Drupal 8’de yapılan çok temel yapısal değişikliklerin güvenlik konusuna da çok olumlu etkileri var:
- Symphony 2 çerçevesinden (framework) gelen, HTML üretiminden kullanılan Twig şablon motoru (template engine) sayesinde, geliştirilen özel tema ve modüllerdeki potansiyel Cross Site Scripting (XSS) güvenlik açıkları engellenmiş oldu.
- Admin ve editör tarafından rastgele PHP kodu yazabilmeyi sağlayan, Drupal 7 ve eski versiyonlarında çekirdekte gelen PHP veri girişi biçimi kaldırıldı.
- İçerik girişi için varsayılan olarak filtrelenmiş HTML biçiminin kullanılması ile, diğer site kullanıcılarının XSS saldırılarına sebep olma ihtimali düşürüldü.
- Kullanıcı oturum yönetimi güçlendirildi.
Drupal 8 Yüksek Performanslı
Farklı zamanlarda Drupal 8 ile Drupal 7 hızlarını karşılaştıran test sonuçlarını içeren ve Drupal 8'in Drupal 7'den daha yavaş olduğunu gösteren yazılar okumuş olabilirsiniz.
Gerçekten de çıplak Drupal 7 ile Drupal 8 test edildiğinde bu sonuç doğrudur. Ancak bu testlerde gözden kaçırılan birçok nokta var:
Bugün Drupal 8.8.4 yayında ve Drupal 8.0’dan sonra çok fazla performans iyileştirmesi yapılmış durumda (Drupal 8.7’nin performansı, Drupal 8.0’nın performansının yaklaşık 1,5 katı). Hala çıplak (ek modül yüklenmemiş, yalnızca çekirdek olarak) halleriyle karşılaştırıldığında, Drupal 7 biraz daha hızlı görünse de gerçek kullanımda Drupal 8 yukarıda bahsettiğimiz özellikleri sebebiyle daha yüksek performansa sahip.
- Drupal 8 çekirdeğinde, Drupal 7 çekirdeğinden çok fazla modül bulunuyor. Drupal 8, kullanıcı deneyimleri ışığında Drupal 7’deki hemen her projede kullanılan bazı modülleri çekirdeğe alarak yayınladı.
- Drupal 8 çok daha fazla ve granüler önbellekleme mekanizmalarına sahip.
- Drupal 8’de kullanılan tema motoru Twig çok daha hızlı.
- Drupal 8 çekirdeğindeki Big Pipe eklentisi, sayfadaki ana içeriğin akıllı bir şekilde yüklenmesi sağlayarak çok hızlı kullanıcı etkileşimleri yaratabiliyor.
- Drupal 8’in Symphony 2 temelli modern OOP (nesne yönelimli programlama) altyapısı yeni performans iyileştirmelerinin önünü açıyor.
Drupal 8’de Web Erişilebilirliği Çok Üstün
Herkesin, özellikle engelli ve yaşlı bireylerin web içeriklerine erişebilmesi, web araçlarını kullanabilmesi anlamına gelen web erişilebilirliği, Drupal’in çok fazla önem verdiği konulardan biri oldu. Drupal Topluluğu erişilebilirlik alanındaki geliştirmelerini yalnızca son kullanıcı için değil geliştiriciler için de yapıyor. Bu yaklaşımla Drupal 8’de erişilebilirlik alanında oldukça önemli ilerlemeler kaydedildi.
Teorik olarak hiçbir zaman tam erişilebilir bir altyapı kurulması mümkün olmasa da, Drupal topluluğunun web erişilebilirliği konusuna verdiği önem sayesinde Drupal sistemlerine her geçen gün daha fazla kişi tarafından erişilebilmekte.
- Daha Anlamsal (Semantik) Yapı: Drupal 8'de engellilerin kullandığı yardımcı teknolojiler (assistive technologies) için yararlanabilecek daha semantik HTML5 öğeleri bulunuyor.
- İşitsel Uyarılar: Drupal.announce() fonksiyonu ile işitsel kullanıcılara mesaj gönderme özelliği eklendi.
- Düzenlenmiş Tab Tuşu Sıralaması: Göremeyen ve fare kullanamayan kullanıcıların sayfadaki öğelere mantıki bir sırayla erişimini sağlayan Tabbing Manager mekanizması oluşturuldu.
- Gizli / Görünmez / Odaklanmış: Genellikle önyüz geliştirme sürecinde dikkat edilmeyen ancak özellikle görme engellilerin erişimi için önemli olan display:none gibi CSS kodlarının alternatifleri geliştirildi.
- Alternatif metin: Görsellerin alternatif metinleri varsayılan olarak zorunlu hale getirildi.
- Bartik: İnsanların sayfadaki bağlantıları daha kolay tanımlayabilmeleri için Bartik temasında bağlantılar altı çizilmiş olarak gösterilmeye başlandı.
- Erişilebilir Satır İçi Form Hataları: Bu geliştirmeyle bir web formu doldururken herkesin hangi hataları yapmış olabileceğini tanımlaması daha kolay hale getirildi.
Drupal 8’de Geliştirme ve Bakım Maliyeti Daha Düşük
Geliştirici Drupal 8’de; OOP, Symphony bileşenleri, Twig, yml gibi kod yazımını kolaylaştıran altyapı ve özellikler ile daha kolay kod yazabilecek ve böylece geliştirme süresi düşecek. Drupal 8’deki daha sağlıklı kod tabanı ile bakım maliyetleri de azalacak.
Drupal 6’dan Drupal 7’ye göç veya Drupal 7’den Drupal 8’e göç gibi ana versiyon yükseltmeleri bugüne kadar çok sancılı oluyordu. Drupal 8’den Drupal 9’a veya sonraki ana versiyonlara yükseltmek artık Drupal 8.6’dan Drupal 8.7’ye yükseltmedeki minör versiyon yükseltmeleri gibi kolay olacak. Başka bir deyişle, Drupal 8’den sonra bu zor ve maliyetli süreç son buluyor. Aynı altyapı sayesinde Drupal 9’la gelecek olan otomatik güncelleme özelliğinin de altyapısı geliştirilmiş oldu.
Drupal 8’in Geleceği Parlak!
Drupal yalnız başına bir yazılım değil, devasa bir topluluk. Drupal topluluğu, elindekilerle yetinmeyen, hep daha fazlasını önüne koyan, yenilikçi, kapsayıcı ve ileri görüşlü bir topluluk. Günümüzde ileri seviye kurumsal çözümler deyince akla Drupal’in gelmesi tesadüfi değil.
Drupal 8 ile kendi güçlü adasından - ama adasından - çıkmayı göze alan, farklı teknolojileri kucaklayan, teknolojisini radikal bir şekilde değiştiren Drupal, bununla da yetinmedi ve topluluk yapılanmasını da değiştirdi. Gelişime açık noktalarını tespit etti ve bu noktalara dünyanın en büyük açık kaynak topluluklarından biri olan Drupal topluluğu ile odaklandı. Çok çeşitli inisiyatifler ile kısa zamanda büyük yollar aldı. “Geliştiriciye yakın ve son kullanıcıya uzak” eleştirilerini yerle bir etti. Drupal bugün geliştiricinin, site yapanın, editörün, son kullanıcının ihtiyaçlarına çok uygun bir CMS. Şimdi Drupal;
- Yukarıda saydığımız ve sayamadığımız binlerce yeni özelliğiyle çok daha geniş bir pazarı hedefliyor.
- Masaüstünden mobiline, kioskundan akıllı saatine ve gelecekteki her türlü cihaza uyumlu içerik sunmaya yararacak en iyi yapısal veri motoruna sahip olmayı hedefliyor.
- Erişilebilirlik, kapsayıcılık, güvenlik ve birlikte çalışabilirlik üzerine odaklanarak tüm insanların Açık Web'e erişmesini istiyor.
Drupal’in geleceği çok parlak ve iddialı dijital deneyimler yaşamak isteyenler Drupal’i tercih ediyor.
Kaynaklar:
- https://www.drupal.org/about/strategic-initiatives/
- https://www.drupal.org/community-initiatives/drupal-core/usability
- https://www.palantir.net/blog/drupal-8-mobile-initiative
- https://www.unimitysolutions.com/blog/understand-drupal-8-mobile-initiative
- https://opensenselabs.com/blog/articles/best-security-drupal-8
- https://www.jeffgeerling.com/blog/2019/yes-drupal-8-slower-drupal-7-heres-why
- https://www.sooperthemes.com/drupal-blog/drupal-8-vs-drupal-7-performance-2018-drupal-85-faster-glazed-theme-main-demo-8-days
- http://www.pidramble.com/wiki/benchmarks/drupal
- https://www.drupal.org/docs/8/accessibility/drupal-8-accessibility-features
- https://groups.drupal.org/node/140144
- https://blog.sensiolabs.com/2018/04/23/symfony-drupal-8-benefits-training/
- https://www.duoconsulting.com/blog/8-reasons-upgrade-drupal-8
- https://dev.acquia.com/blog/10-reasons-why-you-should-start-your-new-project-in-drupal-8-instead-of-drupal-7/30/07/2018/19716
- https://medium.com/@mindfiresolutions.usa/drupal-8-vs-drupal-7-22d95b6e7fed
- https://dri.es/state-of-drupal-presentation-april-2019