Eklenti Kurulumu ve Sonuçları
Genişletilebilir bir sisteme sahip olmak fikri harika, ancak geliştiricilerin bildiği gibi bu o kadar basit değil. Pek çok şey (ve ne yazık ki, yanlış yapar) yanlış gidebilir.
genel bakış
Eklentilerin kurulmasından kaynaklanabilecek sorunların bir listesi ile başlayacağım. Sonra ana noktaya değineceğim ve kişisel olarak bunlardan çıkardığım sonuçları belirteceğim ve sonunda bir çözüm önereceğim. (Bu muhtemelen uzayacak, özür dileriz. Mümkün olduğunca az yazmaya ve hala konuyu ele almaya çalışacağım.)
Bu nedenle, başlamak için, uzatma yüklemesi nedeniyle bulunan genel sorunların bir listesi.
Güvenlik
Magento Connect'te bir uzatma kabul edilmeden önce kod incelemesi yapılmaz. Sonuç olarak, birçok uzantı güvenlik açığı içerir. Tecrübesiz ya da tembel geliştiriciler, savunmasız üçüncü taraf kodlarının kullanılması ve bazı eklentilerin kötü niyetli olarak zararlı kodlar içermesi gibi birçok nedeni vardır. Uzaktan kod yürütme, SQL enjeksiyonları ve duruş süresi bir gerçektir. Bunun sonuçları müşteri verilerini kaybetti, ödeme bilgilerini kaybetti, gelirini kaybetti, zamanı kaybetti ve güvenini kaybetti.
Verim
Bir uzantı bir sitede veya bir geliştirici örneğinde iyi çalışabilir, ancak farklı bir katalog veya müşteri tabanıyla ciddi performans sorunlarına neden olabilir. Verimsiz varlık yüklemeleri, iyileştirilmemiş SQL birleşmeleri, çok sayıda ajax talebi, çok sayıda özellik seçeneği veya niteliği ve daha birçok şey gibi birçok somut neden olabilir. Her satıcı çağrısının bize geliştiricilere söylediği gibi, performans önemlidir. Bu bir tüccar kazancına mal olur.
Çatışmalar
Yalnızca iki uzantı bile, en iyi uygulamaları kullanarak geliştirilse bile, çakışma olabilir. Bunun nedeni Magento çerçevesinin yapılandırma XML'sini birleştirmesidir. En iyi durumda, bu çatışmalar yığın izi veya boş bir ekran aracılığıyla görülebilir, en kötü durumda site garip ve zor hata ayıklama davranışını engeller. Bir satıcı, sorunları çözemez ve çakışan uzantıların bir geliştiricinin yardımı olmadan bir arada bulunmasını sağlayamaz. Bu zaman ve paraya mal olur.
Yükseltilebilirlik
Yükseltme değil, yalnızca güvenlik nedeniyle. Genişletmeler, ayrı ayrı kod tabanları ve Magento çerçevesinin bir parçası olarak sürdürülmelidir. Bir uzantı kullanılıyorsa ve orijinal geliştirici uzantıyı korumaya devam etmezse, başka bir geliştiricinin devralması gerekir. Bir geliştiriciye sahip olmamak, bir tüccarın yükseltme yapmasını imkansız hale getirir, bu da sitelerin daha önce yapmak zorunda kaldıklarına, güvenlik sorunlarından yararlanılmamasına ve dolayısıyla gelirlerini kaybetmelerine neden olur.
uzayabilirlik
Mevcut bir siteye yeni özellikler eklemek gittikçe daha karmaşık ve pahalı hale geliyor, çünkü sistemdeki her bir uzantı teknik borcunu ekliyor. Toplam borç, her bir uzantıdan çok daha büyük, çünkü birleşik karmaşıklık da her biri kendi başına daha büyük. Yeni özellikleri ve değişiklikleri kolayca deneyememek bir tüccarın çok fazla gelirini kaybetmesine neden olur.
kaldırma
Aşağıdakiler, bir uzantıyı kaldırırken Magento'da kırılmaya neden olur:
- Kaldırılan uzantıdaki bir sınıfa atıfta bulunan veritabanı kayıtları (örneğin, dizin oluşturucular veya özellik arka uç modelleri). En iyi uygulamaları takip eden uzantılar bile buna açıktır.
- Çekirdek kodun üzerine yazılan uzantıların kaldırılması, Magento'nun orijinal dosyayı kaybetmesine neden olur. Bu, elbette, yalnızca bir uzantı en iyi uygulamaları izlemiyorsa gerçekleşir, ancak birçok uzantının kötü olduğu bir gerçektir.
Elbette saha kırılması paraya mal olur.
Magento Bağlan
Yukarıdaki sorunların listesi göz önüne alındığında, herhangi biri geliştiriciden bir uzantı kurmasını ve belirli bir sitede çalışıp çalışmadığını değerlendirmesini nasıl bekleyebilir?
Garantili bir temizleme kaldırması yoktur, bu nedenle çoğu zaman bozuk bir kurulum bile onarılamaz. Tek seçenek önceden tam bir yedekleme yapmak ve sonra bir şeyler ters giderse elle geri alma işlemi yapmaktır. Teknik olmayan bir kişi bunu yapabilir mi? Benim tecrübeme göre, hayır.
Her şeyin yolunda göründüğünü varsayalım . Tüccar her şeyin yolunda olduğunu biliyor mu?
Peki ya güvenlik? Peki ya performans sorunları? Peki ya yükseltme sorunları?
Orada hiçbir şekilde olmayan bir geliştirici bunları değerlendirebilir.
Magento Connect'in ilettiği mesaj, Magento'nuzu bir geliştirici olmadan kurarak Magento mağazasını genişletmenin kolay olduğudur. Bir satış perdesinde birisine durumun böyle olduğunu söylemek kullanışlı olabilir, ancak bu doğru değil.
En çok yaşadığım şey, iletişimde bir geliştiriciye duyulan ihtiyacın basit bir şekilde ima edildiği ve iletilmediğidir. Sonuç olarak, birçok mağaza sahibi mağazalarını uzantıları yükleyerek kırmaktadır. Bu para, zaman, sinirler ve Magento ve geliştirici ünlerine mal olur.
Sınıflarımın açık bir arayüze sahip olmasını seviyorum ve Magento için geliştirici gereksiniminin de açıkça iletilmesinin iyi olacağını düşünüyorum.
Sonuçlar
Bazı Magento geliştiricileri için kırılmış sahaları tamir etse bile, ekosistem için bu iyi bir şey değil. Aynı para, tüccarların müşterileri için gerçek değer yaratmak için kullanılabilir.
Twitter'da birileri, tüccarların bir uzantı yükleyip kurmadıklarına kendi başlarına karar verebilecek yetişkinler olduğunu söyledi. Katılmıyorum. Bir tüccar aynı zamanda bir geliştirici değilse, kendi başına karar veremez.
Magento Connect, teknik olmayan kişilerin kendilerini ayağından vurmalarını kolaylaştırmamalı.
Şahsen ben uzantıları nedeniyle Magento teçhizatları berbat görmek yorgun ve bıktım. Sadece bir pisliği temizleyen şeyler yaratmayı tercih ederim.
Uzantılarımı Magento Connect'ten kaldırmayı düşünüyorum çünkü kusurlu fikri artık desteklemek istemiyorum.
Çözüm
Bence çözüm kolay ve ucuz. Ticari veya ücretsiz başka bir yeni Eklenti Pazarı oluşturmakla ilgili değil . Bu teknik bir mesele değil, hepsi iletişim ile ilgili.
Magento Connect, bunun bir geliştirici kaynağı olduğunu ve uzantıların kurulumdan önce gözden geçirilmesi gerektiğini ve yalnızca geliştiricilerin uzantıları yüklemesi gerektiğini belirtirse, sorun olmaz. Hala uzantı yükleyen tüccarlar riskleri biliyor.
Öyleyse, Magento'yu daha satıcı dostu yapan üç basit adım:
- Magento Yönetici arayüzü (örneğin, indirici) aracılığıyla uzantı yükleme seçeneğini kaldırın.
- Magento Connect'i açıkça ve görünür bir şekilde belirtin Herhangi bir eklentiyi indirmek, incelemek ve kurmak bir geliştiricinin işidir.
- Geliştiricilere bir siteye kurulacak uzantıların tam bir incelemesini yapma konusunda eğitim verin.
Kelimeler bitirme
Uzantıları paylaşmayı seviyorum. Açık kaynağı severim. Magento Geliştirici Topluluğu'nun harika olduğunu düşünüyorum!
Uzantıları incelemek öğrenmek için harika bir yoldur. Magento Connect fena değil, sadece teknik olmayan insanlara ilettiği mesaj.
Her Magento sitesi bir uygulamadır. Bu eşsiz ve eşsiz bir geliştirme çabası olarak görülmesi gerekiyor.
Ekosistemde, uzantıların faydalı olabileceği konusunda genel bir fikir birliği olmalı, ancak bunları daha sık kurmak daha sonra kodun yazılmasını veya değiştirilmesini gerektirmeyecek ve dolayısıyla bir geliştirici gerektirecektir.
EDIT : Blogumda daha az teknik geçmiş bilgisi yayınladım .