【问题标题】:Should we use a php framework or build our own?我们应该使用 php 框架还是构建我们自己的框架?
【发布时间】:2016-06-23 12:44:51
【问题描述】:

一些一般信息

我是一家初创公司的项目经理。这家公司开发了一些使用手机停车的解决方案。为此,我们与一家从事编程工作的 IT 公司合作。他们开发 php 应用程序和应用程序。

我是一名博学的软件工程师,这是我的第一份工作。现在开发开始了,我有责任让 IT 公司按照我们的意愿开发软件。我还负责管理软件质量。

我有 Android、HTML、CSS、C# 的编程经验,并且可以阅读 50 到 75% 的 php。我了解网络“工作流程”(请求答案的想法和响应代码理论),我也了解其他 API。


申请信息

  • 我们预计在未来 2/3 年内我们将拥有超过 1.000.000 名活跃用户
  • 应用程序需要具有高度可扩展性

我的“问题”

现在,概念的技术证明几乎已准备就绪。我在代码中查看并询问了一些关于使用的技术的问题,但有些事情不符合我的表现。 - 他们使用 OneUI 作为前端框架 - 编写自己的“自定义”后端框架/应用程序 - 将 PHP 与 HTML 混合,而不是使用 MVC - 不要使用 ORM 的

我们在一次会议上讨论了这些要点,以及一件无法找到每个人都喜欢的方式的事情。 IT公司和我有不同的意见。

  • 在我看来,我们需要使用现有的框架,例如 Laravel、Symphony 或 Phalcon。我个人更喜欢 Laravel 或交响乐。这是因为它迫使您使用一种干净的方式来开发您的应用程序。当以正确的方式使用框架时,代码更加干净,性能可以得到积极的提升。框架也总是由框架开发人员或社区更新,因此安全漏洞将得到修复。它还使其他程序员在一年内更容易编辑应用程序,因为代码结构良好。最后一点是,当应用程序首次发布时,我们有可能停止与 IT 公司的合作并聘请自己的程序员。

  • IT 公司没有使用此类框架的经验。他们的意见是,出于安全原因,创建自己的框架要好得多。他们说在框架中发现泄漏/错误的情况很多。所有基于这些框架构建的网站都可以通过一些错误或泄漏进行跟踪和黑客攻击。这是他们说“不要使用现有框架”的唯一“难点” 他们还说,当您构建自己的框架时,有人试图发现漏洞或试图进入您的系统的机会非常小,因为没有人理解你的框架。

我对此有不同的看法,因为许多 BIG 应用程序也使用现有框架。当这些有更大的安全风险时,他们为什么要使用它们呢?

现在我收到了一封邮件,他们在邮件中写道:“当我们使用框架时,我们更喜欢 AnguarJS,因为它与 OneUI 配合得很好”。我认为 angularJS 是一个 UI 框架?它也不是用于开发大型和高可扩展性应用程序的前 10 个“最佳框架”。

我了解所有技术细节,但我没有开发 PHP 应用程序的经验,所以.....


我的问题:

  • 是否建议使用现有框架?
  • 如果是 - 建议将哪个框架用于逻辑/后端?
  • 当我们使用现有框架时是否存在一些额外的安全风险?

  • angularJS 不是前端框架吗?因为他们说他们可以将它用于后端/逻辑?

我更喜欢使用 Laravel 作为框架,并在其上使用 AngularJS 作为接口,但正如我所说,我不是 php 开发人员,所以这只是我从 php 开发人员那里阅读和听到的内容的结论。

我已经做了一些研究并每天阅读 PHP 框架,但做出决定的时间很短,所以我在这里寻求建议。

【问题讨论】:

  • 这将被关闭。但我要补充一点:如果您想强制您的团队或您自己遵循编程标准,那么框架是不错的选择。他们还加快了您的开发过程。如果您有时间,开发适合您需求的自己的框架是一个好主意。如果你不这样做,那就去免费的,比如 CI、Laravel 等。
  • 同意@PhiterFernandes。补充一点:您不仅需要时间,还需要“适当的”知识。框架通常是由一群编码人员使用单元测试和所有其他类型的测试等开发的。那么为什么要重新发明轮子并浪费时间呢? 他们的意见是,出于安全原因,创建自己的框架要好得多。 但恰恰相反。这只是一个不基于研究等的意见
  • 寻找另一家开发公司,这听起来很糟糕,尤其是如果您打算将来在内部进行开发
  • 回答具体问题:1> 是的 2> 任何大型已建立的 - 如果项目基于流行的框架,则很容易雇用自己的内部开发人员 3> 少做你自己,保持更新 4> Angular 是前端。如果后端是节点,可能会有一些代码重用,例如验证。这里不是这样
  • PHP 本身是一种 Web 开发框架,因此所有反对现有框架的论点也应该适用于 PHP。它不是那样工作的。我会说不要重新发明轮子。你会花一大笔钱,最终得到一个比现有的更糟糕的轮子。

标签: php angularjs laravel web-applications frameworks


【解决方案1】:

不要为未来开发应用程序。无论如何,您可能会在 3-4 年内完全放弃这个项目。如果你真的最终拥有 100 万以上的活跃用户,那么届时你将拥有大量现金流(希望如此)来重构。

你是一个初创公司,最好的办法是尽快推出一些东西,看看人们是否认为你的想法值得。

太多的公司死在小细节上。当您可以聘请自己的内部开发人员时,获得正现金流,然后开始担心优化和重构应用程序。

显然,您不希望拥有出色的用户体验,因此这应该是早期唯一真正的目标。

回答你的问题...我发现很简单的事情是这样的:

如果您要走 PHP 路线,请使用现有的 PHP 框架。像 YII 或 Laravel 这样的东西,因为这些都有很好的文档记录并且很容易尽快上手。

如果您正在构建一个 API,那么请使用一些简单的东西,这样您就可以非常快速地扩展某种单体应用程序。

至于前端......这并不重要。它可以很容易地用 angularJS 或任何其他 JS 框架来完成。我更喜欢 AngularJS 只是因为它是我使用过的,但也有许多其他很棒的选择。

我只是暂时使用开发团队最熟悉的任何东西,然后在你重做应用程序时使用(这对于新公司来说将不可避免地在几年内发生)。

【讨论】:

  • "I'd just use whatever the dev team is most comfortable with for now" 确定您是否有自己的内部开发团队。但这里的情况并非如此,开发公司似乎非常糟糕 - 推广意大利面条代码和 php/html 汤是一个很大的黑标,然后通过默默无闻的论点以可怕的安全性来捍卫它是另一个巨大的黑标。我个人会寻找另一家开发公司,特别是如果 OPs 公司有野心将开发人员引入内部,他们需要从新的内部开发人员可以理解的东西开始
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-28
  • 1970-01-01
  • 1970-01-01
  • 2019-03-19
相关资源
最近更新 更多