【问题标题】:Benefits of creating a custom mvc framework创建自定义 mvc 框架的好处
【发布时间】:2010-07-30 20:48:09
【问题描述】:

对于小型数字代理机构来说,从头开始创建自定义 php mvc 框架是否完全没有意义?

我最近从一位朋友那里听说,他的大学实际上正在他们的机构内花时间在这样的项目上。他们反对使用 cake 或 zend 等其他产品的论点是,它们带有很多未使用的功能,因此有很多不必要的代码。

我会认为这样的努力完全没有意义,而且确实是在浪费时间和金钱。当然,选择一个尽可能符合您需求的框架然后对其进行自定义/扩展会更有意义。在诸如 zend 之类的框架上,代码肯定会比 1 或 2 个程序员在几个月内创建的代码具有更好的/经过测试的水平。

这对我来说毫无意义 - 其他人可以说服我吗?

【问题讨论】:

  • 可能是主观的,因为框架有各种各样的用例,这真的取决于个人开发人员。
  • 不会只有极少数网站/电子商务网站需要全新的自定义框架。我还听说在他的框架上工作的程序员只是在抄袭其他框架的功能。因此有什么意义。

标签: php model-view-controller


【解决方案1】:

与其他解决方案相比,使用您自己的框架具有一大优势。这意味着你有总我的意思是总!控制它。不管其他框架发生什么,因为有一天你拥有开源软件,而另一天它可能会被放弃或停止项目。而且您的框架仍将被开发。即使这意味着您需要不断地为其添加一些功能,但随着时间的推移,它会得到回报。此外,PHP 毕竟是一个庞大的框架,而且它还在不断发展。编写自己的框架将使您随时了解这项技术:) 当然与其他框架或 CMS 保持一致也是个好主意,因为也许您的客户会想要使用它们,您也可以向它们学习并将一些解决方案迁移到你的软件:D

【讨论】:

  • 100% 同意你的看法。
【解决方案2】:

不,我想你会发现这里的大多数人都会同意你的看法——我当然觉得这完全是浪费时间。特别是考虑到他们是一家小型机构,他们有限的资源可以更好地用于其他地方。

由于他们担心框架臃肿,我建议他们改为使用轻量级 PHP 框架进行调查,例如 CodeIgniter 和 Kohana。

【讨论】:

    【解决方案3】:

    我认为这毫无意义。但它是 PHP 程序员的诅咒,他们倾向于一次又一次地发明轮子。我知道我在说什么。我也试过了。

    最好的方法似乎是学习一个框架,如果它不适合你,请了解其他框架的朋友了解如何在其他框架中解决特定问题,如果它们似乎都不好,那么也许是时候开始研究一个新的框架。

    包含大量未使用代码的点并不完全有效。据我所知,Zend 包含可以剥离的类。

    编辑: 例如,可以通过eAccelerator 增强 PHP 的性能。我发现它比构建一个全新的框架更容易。

    【讨论】:

    • 没错。为什么有人甚至认为他们可以单独构建比这些开源框架更好的框架。这真的让我很惊讶。
    • 我真的不喜欢他们不能做出更好的框架但机会很低而且竞争很高的假设。
    【解决方案4】:

    MVC FW 不到平均项目代码库的 5%,因此我强烈建议为每个项目构建 MVC 并使其适应项目规范。 如果有人对 MVC 模式有足够的了解,并且有一些使用和构建 MVC 框架的经验,那么它可以在几天内构建出来。

    一般参数是自定义固件提供的速度和性能。

    【讨论】:

      【解决方案5】:

      有时当人们害怕改变和学习新事物时,他们会想出各种愚蠢的理由来说明某些东西不好,不应该使用。

      我曾经在一家公司工作,该公司决心编写自己的 Web 框架而不是使用 Django。一位从事框架“管理”部分工作的开发人员说,我希望他丢掉工作,因为 Django 有自动生成的管理员。

      除非它是非常具体的框架,并且您有充分的理由和足够的项目资金,否则如果您无法使其与现有产品相同或更好的质量,则专门重新发明轮子绝不是一个好主意。

      【讨论】:

        【解决方案6】:

        这取决于他们做什么样的项目,以及他们的需求是什么。永远不要忘记,在软件中,“最好的”总是取决于你在做什么。对所有事情都没有“一个黄金解决方案”。这包括 mvcs。

        编写自己的 mvc 代码有多种原因:

        • 您可以根据自己的具体需求对其进行定制
        • 您可以将其保持封闭源,减少曝光,提高安全性,因为默默无闻
        • 您可以继续开发它,然后在它成熟并实现主要目的时将其发布给世界 - 无论如何,当前的许多 mvc 都是这样形成的。
        • 您可以继续开发它,保持其封闭源代码,并在其上构建大量 SaaS 服务和应用程序,您将保留对其的全部权利。不过也可以使用 apache 许可证来完成。
        • 您可以实现任何其他 mvc 无法实现的目的。尽管每个 mvc 都有其狂热者,他们相信他们拥有唯一的解决方案,但每个 mvc 都有其缺点。并且因为有 15-20 个 mvc 输出而相信“所有可以完成的事情都已经完成”,这就像说“所有可以发现的事情都已经被发现”一样愚蠢。 20 世纪初有人说后者。

        更不用说你正在使用一个外部 mvc,你在很多事情上都不得不依赖那个 mvc 的项目团队。他们可能已经有或可能会引入您不喜欢的东西,甚至会妨碍您的特定应用程序。

        更不用说他们可能会被遗弃。可能发生在最大的事情上。 Codeigniter 风靡一时。发生了什么 ?埃利斯基本上是在倾倒它。发展放缓至停顿。可能很快就完全停止了。开源也不能保证一个项目 - 有许多开源项目都采用了类似的方式。

        使用 Codeigniter 编写主要应用程序的人会发生什么?他们是否要承担自己拥有的 Codeigniter 装置的安全性?因此事实上成为自己 mvc 的维护者?还是他们会聘请外部人员为他们维护 mvc?

        不是一个好的未来投资。

        我对自己的 mvc 编码的偏好主要是拥有一个适合我自己编码风格的 mvc。我对 mvc 的标准:

        • 快速发展
        • 快速修改
        • 维护成本低
        • 速度
        • 安全性
        • 极其简单
        • 未来发展的可靠性

        我以前为自己编写了一个主要的 mvc。我仍然在我的一个爱好网站上成功地运行它,该网站每月处理约 600,000-1,200,000 名独立访问者。在给定的时刻,250 多个访问者(谷歌分析 - 它不包括任何机器人)可以出现在网站上,一页又一页地敲打。它甚至不眨眼。我喜欢。尽管它有各种我不喜欢的缺点,但它的效果非常好。

        在当前的 mvc 中,我使用了我从前一个中学到的教训,因为它们适用于我的特定目的。

        更不用说这是磨练和发展新技能的好方法。

        但有一件事是必须的:精心计划,并不断在此基础上构建、更改和改进。

        【讨论】:

          【解决方案7】:

          适用于任何框架

          优点

          • 获得您想要的确切功能
          • 控制对您的项目很重要的小细节
          • 熟悉代码

          缺点

          • 所有损坏的东西都必须自己修复
          • 不要从过去的错误中吸取教训
          • 由于受众较少,不会发现那么多错误

          我个人建议在考虑编写自己的框架之前先探索现有框架。请记住,如果您一天都看不懂也没关系!

          【讨论】:

            【解决方案8】:

            这是浪费时间。除非他们正在用 Facebook 的流量构建一个网站,否则他们使用 Yii 之类的东西与他们自己的东西相比所获得的性能影响应该很小

            【讨论】:

            • 即便如此,时间和资源岂不是更好地用于改进服务器等。毕竟,完成后的自定义框架(如果有的话)将是一个持续的维护问题 - 错误,升级等。
            • 我完全同意你的看法。这不是一个好的商业决策。
            【解决方案9】:

            这不一定是浪费时间,但我同意你的看法,我自己也试过。根据我正在从事的项目,我一直在使用 Zend、Code Igniter 和 Fuel。

            我创建自己的框架的结果是截止日期。如果您正在处理一个截止日期非常紧迫的项目,那么创建自己的框架将是一个坏主意。

            【讨论】:

              猜你喜欢
              • 2012-04-14
              • 1970-01-01
              • 2010-10-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-04-15
              • 1970-01-01
              • 2012-06-02
              相关资源
              最近更新 更多