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 这样的托管解决方案,您的敏感数据通常会更加安全。 您的商店将始终保持快速的页面加载时间,自动扩展,并且具有近乎无限的容量来吸收网络流量的突然爆发。 重要的是,您的开发人员将能够使用现代和熟悉的技术更高效地工作,从而降低您的开发成本,并让您的更多预算用于增加销售额和实现您的业务目标。