Shopify vs Magento:開發者的視角
已發表: 2019-04-23在嘗試在 Shopify 和 Magento 之間做出決定時,您經常會聽到 Shopify 是託管解決方案,而 Magento 是開源軟件。 這通常被認為是 Shopify 和 Magento 之間的主要區別。 託管解決方案使您不必安裝和託管您的在線商店,但開源軟件允許您更大程度的可定制性。
但這在實踐中對開發人員真正意味著什麼,這種選擇對商家及其客戶有何影響?
信息安全
在 Magento 世界中,每個在線商店都是自己獨立安裝的 Magento 軟件。 大約有 200,000 家商店在運行 Magento,它們都在運行許多不同的版本、模塊、補丁和定制。
Magento 是開源軟件,這意味著它的代碼(所有版本和補丁)是公開的,任何人都可以在線查看。 這一點,再加上有超過 200,000 家 Magento 商店都在處理敏感的客戶和支付數據,這使得 Magento 成為尋求發現和利用軟件安全漏洞的惡意行為者極具吸引力的目標。
當 Magento 團隊發布安全補丁時,每個 Magento 商店都需要單獨更新,每個商家都有責任確保這一點。 這個過程通常很複雜,因為 Magento 商店的實施可能會有很大差異。 由於第三方模塊、主題或本地自定義的差異,成功應用於一個商店的更新在應用於另一商店時很容易導致問題。
對於商家和開發者來說,這可能會產生大量意想不到的工作量,例如 Magento 的 SUPEE-6788 安全更新。 此更新修補了 Magento 中的多個漏洞,但也破壞了與數百個流行社區模塊的向後兼容性。 除了應用安全補丁之外,所有受影響的社區模塊都需要更新以實現兼容性。 這讓開發人員很難做出選擇,是等待供應商發布其社區模塊的更新版本,還是自己手動更新這些模塊。 如果他們等待供應商,他們的 Magento 商店仍然容易受到攻擊; 如果他們手動更新這些模塊,模塊代碼就會與供應商版本不同步,這可能會使未來的升級變得複雜。
並非所有安全漏洞都是生而平等的。 以 SUPEE-5344 為例,通常被稱為“入店行竊漏洞”,這是一個 Magento 漏洞,允許攻擊者獲得對商店的管理員訪問權限和對其數據庫的完全訪問權限。 不定期為您的 Magento 商店打補丁的風險非常高,有時應用安全補丁的過程複雜且成本高昂,導致許多 Magento 商店至今仍未打補丁並且容易受到攻擊。
自從轉向在 Shopify Plus 平台上進行開發,我不必花任何時間修補 Shopify 商店的安全漏洞。 這是選擇託管解決方案而不是開源軟件的最大優勢之一。 該平台和所有敏感數據由市值數十億美元的上市公司 Shopify 託管和保護。
Shopify 負責保持其平台更新和您的數據安全,從而使開發人員可以將更多時間集中在有助於商家實現業務目標的項目上。
託管、網絡流量、數據庫和擴展
在 A/B 測試中,亞馬遜曾發現頁面加載速度延遲 500 毫秒會導致銷售額下降 5%。 谷歌同樣發現,500 毫秒的延遲會導致搜索流量和廣告收入下降 20%,並降低用戶滿意度。
優化頁面加載速度確實非常重要。
這是 Shopify 等託管電子商務解決方案真正大放異彩的另一個領域。 您的在線商店和所有相關媒體都由 Shopify 託管,他們的商業模式意味著 Shopify 感受到與亞馬遜相同的壓力,需要保持您的頁面快速加載以最大限度地提高轉化率。 您的在線商店隨時可用且速度非常快,商家或他們的開發人員永遠不會擔心。
作為一名 Magento 開發人員,頁面加載速度和數據庫負載一直在您的腦海中。
Magento 是一個非常龐大的代碼庫,由數千個文件和數百萬行代碼組成。 它將系統、模塊和佈局配置作為大型 XML 文件存儲在文件系統中,解析這些文件的計算成本很高。 它實現了數據存儲的實體-屬性-值模型,將相關數據分佈在數據庫中的許多不同表中,即使對於檢索產品數據這樣的簡單事情,也需要復雜且昂貴的數據庫查詢。 所有這些使 Magento 成為最具挑戰性的託管和擴展平台之一,並且隨著您網站流量的增長,應對這些挑戰的解決方案變得越來越複雜。
為了讓事情在生產中運行得更快,Magento 在應用程序級別實現了許多緩存層,包括用於系統配置、佈局 XML、塊 HTML 輸出和完整頁面生成的緩存。 這意味著作為開發人員,您必須確保(通過仔細考慮和測試)所有本地自定義和社區模塊正確使用所有這些緩存,因為即使是單個緩存失效也會對頁面加載速度產生巨大影響。
對於商家而言,這一切都意味著整體開發和託管成本的增加,並且在大多數情況下頁面加載時間明顯變慢。
開發、技術與資源
在開發方面,Magento 和 Shopify 之間的主要區別在於 Magento 是一個單一的電子商務框架,而 Shopify 是一個與各種外部服務交互的託管平台。
在為 Magento 開發時,您的所有開發活動都在其框架內進行; 您在該框架內添加和修改代碼以擴展和修改其功能。 您的所有代碼都來自 Magento 核心,它使用一組預定義的技術,並嚴格規範您如何使用它們。
作為 Magento 開發人員,您在 MySQL 數據庫之上編寫從 Zend 庫繼承的面向對象的 PHP,前端使用 Prototype,有時使用 jQuery。 這是一個非常複雜和高度規範的框架,需要大量的專門培訓才能在其中發揮作用。 這增加了招聘和入職的成本和難度。
在為 Shopify 開發時,您可以結合使用 Liquid 模板引擎、Shopify 腳本、webhook、JavaScript SDK 以及創建與 Shopify 平台進行外部交互的自定義應用程序和服務來擴展和修改其功能。
Shopify 提供了強大的 REST API,允許外部應用程序對 Shopify 平台進行豐富的訪問,並讓開發人員可以自由地做出更多自己的技術決策。 您可以使用您喜歡的任何編程語言或框架為 Shopify 平台進行開發。 讓開發人員和機構可以靈活地從更現代和熟悉的技術中進行選擇,這帶來了許多好處,包括提高開發人員效率,以及從更大的人才庫中招聘的能力。
這對商家意味著什麼
為您的公司選擇合適的電子商務解決方案不僅僅是功能列表和復選框。 還必須考慮您的決定對開發週期、客戶數據的安全性以及擴展平台以適應業務增長的能力的影響。
使用像 Shopify 這樣的託管解決方案,您的敏感數據通常會更加安全。 您的商店將始終保持快速的頁面加載時間,自動擴展,並且具有近乎無限的容量來吸收網絡流量的突然爆發。 重要的是,您的開發人員將能夠使用現代和熟悉的技術更高效地工作,從而降低您的開發成本,並讓您的更多預算用於增加銷售額和實現您的業務目標。