最優秀的不壹定是最合適的,作為PHP開源電商平臺No.1, Magento在加拿大和美國有著大量的擁簇著,其中主要使用Magento1,而Magento2更為優秀,但是是否值得我們下決心選用呢?本文旨在做壹些粗略的分析,僅供參考。
壹、優點
1. Magento2 有著教科書式的優秀架構,這點不是其它獨立php電商系統可以比肩的。Magento2引入symfony依賴註入式編程,可以讓組件開發變得更為自由靈活。
2. 采用EAV模型。EAV是英文Entity實體、Attribute屬性和Value值的首字母縮寫,Magento采用EAV模型極大的增加了數據字段的靈活性,可以在不修改代碼或模板的情況下添加或刪除屬性。EAV模型不僅僅允許數據庫快速擴充,而且更為高效。因為它只允許非空屬性,而不需在數據庫中預留空間存儲空值。
3. Magento2對Varnish和Redis的支持非常好,可以有效提升系統響應速度。
二、缺點
1. 學習曲线陡峭,上手困難,這就意味著開發投入成本大,需要精通PHP的專門人才進行二次開發。
2. EAV模型增加數據庫服務器負擔,同樣並發請求或者同樣數據量,Magento2更吃硬件,無疑增加硬件成本。
3. 前端架構選型很不友好,采用當時較為流行的knockoutjs UI組件,現在已經很少人將該前端js框架用於商業用途,特別是現在有React,AngularJS, Vue更好的方案可以選擇。
4. Magento2的bug很多,直到到Magento2.2才逐漸趨於穩定。
鑒於上面的優缺點簡單分析,我們雖然對Magento2的架構非常欣賞,但並不建議新電商項目選擇Magento2進行開發。我們在加拿大溫哥華和多倫多很多地方的企業壹直還在使用Magento1, 我經常被問到是否應該升級他們的Magento1到Magento2, 我通常的回答是Magento1升級到Magento2仍然不是壹件容易的事,都需要慎重考慮。