【问题标题】:Existing eCommerce Framework vs custom eCommerce solution for Scalability [closed]现有电子商务框架与可扩展性的自定义电子商务解决方案 [关闭]
【发布时间】:2015-03-28 15:51:39
【问题描述】:

我们计划创办一家电子商务初创公司,并正在评估可扩展性选项,以便在 (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 等)?

【问题讨论】:

    标签: php woocommerce e-commerce prestashop scalability


    【解决方案1】:

    由于其他人在每个解决方案上都给出了他们的 cmet,我会给你更多的整体想法。

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

    优势

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

    缺点

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

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

    优势

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

    缺点

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

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

    • 我有能力创造它吗?

    • 我是否有足够的空闲/额外时间来做这件事?

    • 这样做合理吗?

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

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

    【讨论】:

    • 谢谢你的回答:)
    【解决方案2】:

    我的推荐是 PrestaShop:

    1) 支持 CDN

    2) 没有“特殊”支持(它支持主/从数据库服务器)

    3 & 4) 具有 MemCached、APC 和 xcache

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

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

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

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

    9 & 10) 这些是管理员/开发人员必须注意的事情。

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

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

    【讨论】:

    • 非常感谢您的回答:)
    【解决方案3】:

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

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

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

    【讨论】:

    • 非常感谢您的回答。你说的 MS 是什么意思?
    【解决方案4】:

    如果您想在现有的任何开源推车上进行开发,请先仔细查看代码。快速浏览一下,我就可以制作这些 cmets:

    WooCommerce -- 如果你习惯了 wordpress 的代码风格,我猜是可以的,但它会限制你使用特定的 CMS 作为你的开发框架。

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

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

    您是否考虑过处于测试阶段的 Magento 2.0? Magento 1 有没有命名空间的限制,因为它依赖于 Zend Framework 1,它是前命名空间,但 Magento 2.0 具有命名空间支持,同时不会把婴儿和洗澡水一起扔出去(Zend 1 类已保存并包装在命名空间类中)。

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

    【讨论】:

    • 感谢您的回答。 :)
    【解决方案5】:

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

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-21
      • 1970-01-01
      相关资源
      最近更新 更多