Herkese merhaba,
Son dönemde yapay zeka (AI) araçlarının kod yazma yeteneklerinin artmasıyla birlikte, birçok kullanıcının ChatGPT, Claude veya benzeri araçlara prompt yazarak XenForo eklentisi geliştirmeye çalıştığını görüyoruz. "Çalışıyor mu? Evet çalışıyor." mantığıyla kurulan bu eklentiler, dışarıdan kusursuz görünse de kaputun altında forumunuz için saatli bir bombaya dönüşebilir.
Bir XenForo Geliştiricisi gözüyle, salt yapay zeka ile üretilmiş bir eklenti ile mimariye hakim bir geliştiricinin yazdığı eklenti arasındaki uçurumları teknik detaylarıyla ele almak istedim. Özellikle XenForo 2.3.x geçişiyle birlikte bu uçurum çok daha tehlikeli bir hal aldı.
Sisteminizin güvenliği, veri bütünlüğü ve sunucu performansınız için kaynağı belirsiz eklentilere temkinli yaklaşın. Gerçek bir geliştiricinin XF tecrübesi, sadece "kodun çalışmasından" ibaret değildir; kodun "sistemi yormadan, güvenle ve XenForo felsefesine uygun" çalışmasını sağlamaktır. Aynı zamanda uzun vadede destek ve güncelleme demektir.
Son Söz ve Önemli Bir Uyarı:
Bir eklentinin sadece "çalışıyor" olması, onun güvenli ve sürdürülebilir olduğu anlamına gelmez. İster yapay zekaya yazdırılmış olsun, ister tecrübesiz birinin elinden çıkmış olsun; kaynağı belirsiz her eklenti forumunuz için bir risktir.
Eklenti seçerken şu üç altın kuralı asla unutmayın:
Okuduğunuz için teşekkürler. Konu altından merak ettiklerinizi tartışabiliriz.
Son dönemde yapay zeka (AI) araçlarının kod yazma yeteneklerinin artmasıyla birlikte, birçok kullanıcının ChatGPT, Claude veya benzeri araçlara prompt yazarak XenForo eklentisi geliştirmeye çalıştığını görüyoruz. "Çalışıyor mu? Evet çalışıyor." mantığıyla kurulan bu eklentiler, dışarıdan kusursuz görünse de kaputun altında forumunuz için saatli bir bombaya dönüşebilir.
Bir XenForo Geliştiricisi gözüyle, salt yapay zeka ile üretilmiş bir eklenti ile mimariye hakim bir geliştiricinin yazdığı eklenti arasındaki uçurumları teknik detaylarıyla ele almak istedim. Özellikle XenForo 2.3.x geçişiyle birlikte bu uçurum çok daha tehlikeli bir hal aldı.
1. XenForo 2.3 ve Güncel Mimari Eksikliği (Eski Veri Seti Problemi)
Bildiğiniz üzere XenForo 2.3 ile birlikte jQuery tamamen terk edildi ve Vanilla JS (Saf JavaScript) yapısına geçildi. Ayrıca CSS derleme sisteminde, ikon yapısında (FontAwesome) ve PHP 8.x uyumluluklarında ciddi standart değişiklikleri yapıldı.- Yapay Zeka Ne Yapar?: Genellikle veri seti XF 2.1 veya 2.2'de kaldığı için size bolca jQuery kodu, eski
xf:jseklentileri veya eski ikon sınıflarını (<i class="fa- vs.) verir. Eklenti XF 2.3'te ya çalışmaz ya da tarayıcı konsolunda Javascript hataları fırlatır. - Gerçek Geliştirici Ne Yapar?: XF 2.3'ün yeni
XF.Elementmimarisini,XF.ajaxvanilla isteklerini ve yeni Asset yönetimini kullanarak performanslı ve uyumlu bir yapı inşa eder.
2. Entity Sistemi ve Veritabanı Faciaları (N+1 Sorgu Problemi)
XenForo'nun kalbi "Entity" ve "Finder" sistemidir.- Yapay Zeka Ne Yapar?: Genellikle karmaşık ilişkileri (Relations) tam kuramaz. Size doğrudan
$db->query()ile raw SQL sorguları yazdırabilir veya bir döngü içindeem()->find()kullandırarak N+1 sorgu problemine yol açar. Sayfayı her yenilediğinizde arka planda 500 tane gereksiz SQL sorgusu çalışır, sunucunuzun load değerleri fırlar. - Gerçek Geliştirici Ne Yapar?: Veritabanı ilişkilerini (Structure/Relations) mükemmel kurar.
Finderyapısındaki->with('Profile', 'Privacy')gibi eager loading tekniklerini kullanarak, ihtiyaç duyulan tüm veriyi tek bir optimize SQL sorgusu ile çeker.
3. Güvenlik Zafiyetleri ve Input Filtering
İşte en kritik nokta burasıdır. XenForo'da dışarıdan gelen bir veriyi süzmenin (Input Filtering) çok katı kuralları vardır.- Yapay Zeka Ne Yapar?: Gelen veriyi standart
$_POSTveya genel PHP güvenlik fonksiyonlarıyla (htmlspecialcharsvb.) süzmeye çalışır. XSRF (CSRF) token kontrollerini unutabilir. Kullanıcı yetki (Permission) kontrollerini(\XF::visitor()->hasPermission(...))atlayarak, bir üyenin admin yetkisi gerektiren bir işlemi yapabilmesine olanak tanıyan arka kapılar (backdoor / yetki zafiyeti) bırakabilir. - Gerçek Geliştirici Ne Yapar?: Verileri daima
$this->filter('alan_adi', 'str')metodolojisi ile çeker. Controller içinde işlemi yapmadan önceassertRegistrationRequired(),assertAdminPermission()gibi yaşam döngüsü doğrulayıcılarını (Lifecycle validators) kesinlikle kullanır. Güvenlik duvarını XenForo standartlarında örer.
4. MVC Yaşam Döngüsü ve İş Katmanları (Repository/Service)
Bir işlemi nerede yapacağınız, XenForo'da en az işlemi nasıl yaptığınız kadar önemlidir.- Yapay Zeka Ne Yapar?: Eklentiye ait tüm veriyi, veritabanı kayıt işlemlerini, mail gönderimini Controller içine yığar (Spaghetti Code). Bu, kodu okunamaz ve tekrar kullanılamaz hale getirir.
- Gerçek Geliştirici Ne Yapar?: Veritabanı sorgu yığınlarını Repository'lere, bir konunun oluşturulması veya karmaşık iş mantıklarını Service (XF\Service) sınıflarına, arka planda yavaş çalışacak (örneğin toplu mail atma, resim işleme) işlemleri ise Job/Cron sistemine devreder.
5. Dil (Phrase) ve Şablon (Template/XML) Hataları
- Yapay Zeka Ne Yapar?: Template dosyalarının içine Giriş Yap, Gönder gibi metinleri "Hardcoded" (doğrudan yazarak) gömer. Eklentiyi başka bir dile çevirmek veya tema özellikleriyle oynamak imkansız hale gelir. Admin ve Public şablonlarını birbirine karıştırabilir.
- Gerçek Geliştirici Ne Yapar?: Tüm metinleri XML _data dizinindeki phrases.xml dosyasına işler ve template içinde {{ phrase('eklenti_adi_ornek') }} şeklinde çağırır. Eklenti tamamen çoklu dil destekli ve XF stil kurallarına (Style Properties) saygılı olur.
Sisteminizin güvenliği, veri bütünlüğü ve sunucu performansınız için kaynağı belirsiz eklentilere temkinli yaklaşın. Gerçek bir geliştiricinin XF tecrübesi, sadece "kodun çalışmasından" ibaret değildir; kodun "sistemi yormadan, güvenle ve XenForo felsefesine uygun" çalışmasını sağlamaktır. Aynı zamanda uzun vadede destek ve güncelleme demektir.
Son Söz ve Önemli Bir Uyarı:
Bir eklentinin sadece "çalışıyor" olması, onun güvenli ve sürdürülebilir olduğu anlamına gelmez. İster yapay zekaya yazdırılmış olsun, ister tecrübesiz birinin elinden çıkmış olsun; kaynağı belirsiz her eklenti forumunuz için bir risktir.
Eklenti seçerken şu üç altın kuralı asla unutmayın:
- Destek ve Sürdürülebilirlik: Olası bir XenForo güncellemesinde (örneğin XF 2.3'ten 2.4'e geçişte) bu eklenti hata verdiğinde muhatabınız olacak mı? Yapay zeka size anlık çözüm üretebilir ama uzun vadeli teknik destek sunamaz.
- Kod Kalitesi ve İnceleme: Piyasaya sürülen her eklenti, doğrudan üretim (production) ortamında kullanılmamalıdır. Eklentinin referansları, geliştiricinin geçmişteki işleri ve kod standartlarına ne kadar uyduğu mutlaka göz önünde bulundurulmalıdır.
- Güncelleme Sürekliliği: PHP sürümleri, veritabanı altyapıları ve sunucu mimarileri sürekli güncellenir. Arkasında durulmayan, "yazdım bitti" mantığıyla oluşturulan eklentiler kısa süre içinde forumunuzun patlamasına neden olur.
Okuduğunuz için teşekkürler. Konu altından merak ettiklerinizi tartışabiliriz.
- Resource Access
- https://xentr.net/