现有电子商务框架与自定义电子商务解决方案的可扩展性

Existing eCommerce Framework vs custom eCommerce solution for Scalability

我们正计划启动一家电子商务初创公司,并正在评估可扩展性选项,以便在 (PrestaShop/WooCommerce/OpenCart) 或我们自己的自定义电子商务解决方案之间进行选择。

我们想到了以下可扩展性优化技术:

1) 静态资源CDN。

2) 一旦流量变高,用于水平缩放的负载均衡器。

3) MemCached 或 APCU 缓存用于缓存数据库查询。

4) PHP 字节码缓存的 APC 缓存。

5) 确保所有图像都经过无损压缩。

6) 缩小CSS和主题的JS。

7) 启用 mod_deflate 或 mod_gzip 进行压缩。

8) 一旦数据库开始成为瓶颈,主从复制。

9) 确保禁用不必要的 Apache 模块。

10) 确保禁用不必要的 Prestashop 模块。

你会推荐什么?自定义电子商务解决方案或者我们可以优化其中一个框架(PrestaShop、WooCommerce、OpenCart 等)?

首先它不是框架它的cms。框架:laravel、symphony 等

而且您可以使用所有 cms 做所有事情。但在我看来最好的 - prestashop。

2) 有很多方法可以优化您的服务器、您的 cms、编写正确的模块。 3)在prestashop中你可以使用memcached 4) 您可以在服务器上安装 APC 并在 prestashop 性能中启用它 5) 您可以编辑压缩设置或 write/buy 强大的模块来获得这样的效果 6) 缩小 CSS / JS / HTML 性能(设置) 7)服务器设置中的mod_gzip 8) 禁用覆盖或非 prestashop 模块。进行分析以检查 MS 和坏模块。

如果您打算在任何现有的开源购物车之上进行开发,请先仔细查看代码。快速浏览一下,我可以发表以下评论:

WooCommerce——如果您习惯了 wordpress 风格的代码,那没问题,但它会限制您使用特定的 CMS 作为您的开发框架。

PrestaShop -- 编码标准有点过时(不符合 PSR),不使用命名空间,代码有一些但不全面的 API 文档。

OpenCart -- 代码几乎没有注释,没有使用命名空间,有限的 PSR 合规性,没有 API 文档。

您是否考虑过 Beta 版的 Magento 2.0? Magento 1 有没有命名空间的限制,因为它依赖于命名空间之前的 Zend Framework 1,但 Magento 2.0 具有命名空间支持,同时不会把婴儿扔掉洗澡水(Zend 1 类 已被保留并包装在命名空间中类).

如果您正在寻找极大的灵活性和以自己的方式编写代码的能力,那么您最好在现有 PHP 框架之一的基础上从头开始(Laravel 、Yii2 等)。就性能而言,您不太可能获得太多——您在构建自己的代码时很容易犯下与在其他人的代码中发现的一样多的性能错误。然而,这将是很多工作! eBay 以 1.8 亿美元的价格收购了 Magento,这并不是因为它是由几个人在一两周内拼凑而成的——所有这些系统中都有一些严肃的编程工作。

我推荐的是 PrestaShop:

1) 它有 CDN 支持

2) 无 "special" 支持(它支持 master/slave 数据库服务器)

3 & 4) 有 MemCached、APC 和 xcache

5) 默认不支持,但有 Smush.it 付费模块

6) 完全支持 - CCC,即组合(一个文件中的所有 .js 等),压缩(缩小 js,css,html 和缓存 - 缓存文件夹中的组合文件基于时间戳的到期时间)

7) 集成mod_deflate,您可以随时在.htaccess 文件中启用mod_gzip

8) 您可以配置主服务器(这是默认的)和从服务器,核心 PrestaShop 查询支持 master/slave(即一些查询被传递给从服务器,并且他们已经指定了确切的)。大多数 3rd 方模块不使用该功能。

9 & 10) 这些是 administrator/developer 必须注意的事情。

自定义解决方案是最坏的情况,除非您有 1 年以上的时间和大量资金进行投资。我不喜欢 Magento 和 OpenCart,这就是为什么 5 年前我选择 PrestaShop 进行电子商务开发的原因。 Magento 有不必要的复杂 class 树,当然开发人员通常收取更多费用,因为他们有很多工作 :),而 OpenCart 比其他人低得多 - 在代码中没有一个评论是只是不专业,数据库表上根本没有索引,甚至不使用模板引擎。关于 "WooCommerce" - 使用 CMS 系统进行电子商务并不严重。

我的建议是查看 PrestaShop - 获取最新版本,对其进行测试,然后在 addons.prestashop.com(官方市场)查看您需要的模块。另外,还有一个新发布的"PrestaShop Cloud" - 你也可以看看它。

既然其他人都对每个解决方案发表了意见,我会给你更全面的想法。

PrestaShop/WooCommerce/OpenCart - 据我所知,这些产品有些成熟。

优势

  • 最大限度地减少网站建设过程中涉及的时间和精力。
  • 即插即用功能。
  • 定期更新错误修复和新功能。
  • 稳定且经过良好测试的代码。
  • 来自社区的帮助。

缺点

  • 投入时间学习。
  • 很多不必要的代码。
  • 您需要调整一个现成的框架来满足您的要求,这需要额外的时间。
  • 您的网站将与其他网站一样。
  • 额外的第三方集成步骤(可能以臃肿的 jQuery 插件或类似形式)。
  • 无法控制代码。
  • 由于您的体系结构众所周知,因此在安全方面付出了额外的努力。
  • 如您所想,您无法编辑核心文件,因为它会在下次更新时使系统崩溃。

own custom e-commerce solution - 使用您自己的电子商务解决方案而不是现有产品有利有弊。

优势

  • 将来会节省您的时间和精力,因为它是根据您的长期需求而构建的。
  • 不需要学习如何使用或自定义它。
  • 经过优化以满足您的需求,而不是每个人的需求。
  • 只提供您所需要的,以您需要的方式。没有不必要的东西,没有臃肿的代码。
  • 完全控制代码及其设计实现。
  • 完全模块化。框架的灵活性仅取决于您。
  • 统一的代码库。您可以最大限度地减少对第三方组件的需求,这意味着更少的混合匹配工作。
  • 100% 保证您网站的独特性。
  • 由于您的体系结构未知,因此无需在安全方面做出任何努力

缺点

  • 更多的时间和精力。
  • 您需要测试和维护代码。
  • 错误修复、更新和新功能由您构建。

要了解这是否也适合您,您需要回答以下问题:

  • 我有能力创造吗?

  • 我有足够的 free/extra 时间吗?

  • 制作合理吗?

    如果您打算使用 PrestaShop/WooCommerce/OpenCart,我建议您也检查一下 Magento。希望这能回答您的问题。

另请注意,您考虑的可扩展性方面的优化技术是 很好,但是如果您愿意学习,还有很多需要考虑的地方。我也可以帮助你。

从头开始构建您自己的自定义电子商务解决方案对于初创公司来说可能是一场真正的噩梦,通常应该避免。

通常几个月后,初创公司最终不得不在内部维护代码、修复错误并创建新功能。所有这些加起来并占用了时间,而这些时间本可以更好地用于创业的其他更重要的方面。重新发明轮子没有意义!

最终,这家初创公司决定咬紧牙关,放弃他们几个月来构建的现成解决方案。然后他们选择一个下载的平台,如 Prestashop/WooCommerce/OpenCart 等,他们觉得他们可以自定义。这又需要时间来学习、实施和定制您的特定需求;让您远离其他更重要的活动。

如果您正在寻找一种轻量级和可扩展的解决方案,它可以快速集成、低维护、没有臃肿的代码库并且超级可定制,您可以查看更现代的方法,例如 eCommerce APIs

这些服务通常已经过大量优化以提高性能。它们通常在全球多个地区可用,负载均衡,提供资产 CDN,有些允许自定义数据结构等...

这种方法的优点在于您可以选择需要集成的组件,而不必禁用模块。您还可以决定将来是否需要更改或添加您的前端技术堆栈,甚至选择不同的编程语言。

您甚至可以构建与这些 API 对话的静态站点,并在 Amazon S3 存储桶中托管一些构成您站点的文件,每月只需几美分!?