一个客户要求我们在为他的下一个基于web的应用程序选择PHP作为实现语言时估计工作量。我们花了大约一周的时间探索PHP、原型开发、测试等等,我们对这种语言非常陌生--过去我们可能曾对它进行过黑客攻击,但是,让我们使用PHP-noobs,但是应用程序开发专家(因为缺少一个更好的、不那么讨人喜欢的词:)
看来,如果我们编写,干净的可维护代码,遵循关注点的分离,企业架构模式(DAOs等)对于基于Java的web应用程序,创建基于对象的PHP web应用程序的“努力”似乎是一样的。
下面是我们估算工作量(开发/交付时间)的公式:
ConstructionEffort = f(analysis, design, coding, testing, review, deployment)我们专门比较了在创建企业应用程序时的工作量估计值,具体如下:
这是一个端到端的应用程序:
第一层和第三层的工作量估计是恒定的,相对独立于中间层的技术。在较高级别上,PHP所需的类/SLOC的数量与Java中所需的类/SLOC的数量似乎并没有太大的不同。这是正确的吗?
我们的初步估计是基于我们使用PHP所做的初始原型/编码--我们目前忽略了语言的流利性是一个因素,因为这将是最初的障碍,而不是IMHO的长期障碍(我们也有足够的时间使PHP变得相当流利)。
我感兴趣的是,当使用任何一种语言创建类似的应用程序以证明选择一种而不是另一种时,我想了解程序员对工作的看法。我们是不是漏掉了什么?我们似乎违背了PHP更快推向市场的流行观点(或者我们非常流利地使用Java,我们的视野变得模糊了)。它似乎没有任何编码/编程的努力,从我们玩过的东西中节省下来。
发布于 2012-02-12 04:29:03
我对PHP和Java都有丰富的经验,我可以告诉您,如果您对PHP有足够的了解,而且您不是一个完全的noobie,并且知道PHP可以完成类、接口(很快甚至是水平重用的特性)、异常、自动类加载等等,那么PHP代码可能比Java代码看起来更好,甚至工作得更好。
不要相信我?,请查看塞福尼框架以查看(IMHO)最具架构的PHP软件,查看其手册中的代码示例。
背后的真正问题
Noobies脚本孩子平庸的程序员..。有很多,他们似乎都转向PHP太容易。PHP确实太容易了,这并不是一件坏事(归咎于优秀的语言文档)。
每种语言都有其缺陷,事实上,其中最有缺陷的语言之一是javascript,看看它现在在哪里(提示:到处都是)。
时的一些优点
因此,这种努力可能是相同的,但之前的好处是将它与Java分开的地方,我相信还有更多。
发布于 2012-02-11 20:50:14
我不熟悉任何关于PHP或生产率的正式研究--大多数工作都着眼于不同世代的语言。我知道第三代语言是一种,我非常肯定它也是一种第三代语言。这表明,在所有其他条件相同的情况下,用两种语言生产同一产品所需的内在努力非常接近,因此不会对项目产生重大影响。
然而,对编程语言的了解表明,生产率相差1.20。这是一个较小的因素:团队的能力、项目的复杂性,甚至所使用的工具对项目性能的影响都比编程语言大得多。
因此,简而言之,编程语言的选择将在生产率上存在差异。然而,这是一个较小的区别。我会更关心这个项目的其他方面。
如果您对更多内容感兴趣,我会研究一些工具,比如科科摩和苗条,以及它们的底层研究。这些估计建模工具允许您考虑项目不同方面的知识和功能,并确定它们如何影响您的计划、预算和工作/生产力水平。
发布于 2012-02-11 21:29:06
用PHP开发应用程序将花费更少的时间,但很可能它在体系结构上不够一致,因此它会有更多的but。然而,与Java应用程序相比,PHP应用程序的更改成本将更低。
另一方面,Java应用程序将需要更多的时间来设计和开发,但它将更加健壮和一致。很可能它会有较少的but,但实现更改将更加困难。
尽管语言在时间和努力估计方面似乎是平等的,但事实并非如此。它实际上取决于特定的应用程序域,使用PHP还是Java都是好的。语言不重要,科技也重要。还有PHP技术和Java技术。这正是您真正需要考虑的问题,因为由于语言技术的特殊性,PHP技术和Java技术都不能应用于某些特定领域。例如,我永远不会尝试将PHP技术应用于自然语言处理。而在Java中开发简单的管理面板将是一种开销。
应用程序域才是真正重要的。
https://softwareengineering.stackexchange.com/questions/134589
复制相似问题