我来自一个相当强的OO背景,OOD和OOP的好处对我来说是第二天性,但最近我发现自己在一家开发商店,与一种程序性编程习惯联系在一起。实现语言具有一些面向对象的特性,没有以最优的方式使用。
更新:似乎每个人对这个话题都有自己的看法,我也是如此,但问题是:
对使用过程编程语言和面向对象语言的软件开发成本进行了比较研究吗?
一些评论者指出,试图将苹果与橙子进行比较,其性质是可疑的。我同意,要准确测量苹果和橙子是非常困难的,然而,也许这并不是完全不可能的。
发布于 2009-02-12 16:50:16
在与谷歌周旋之后,我发现了这篇文章这里。我使用的搜索词是面向生产力的。
开头的段落接着说
面向对象技术的引入似乎并没有阻碍新的大型商业项目的整体生产力,但在前两代产品中似乎都没有改进。在实践中,管理的影响可能是业务流程,而不是方法。
我认为您会发现面向对象的编程在特定情况下更好,但对于其他一切都是中立的。我的老板把我公司的CAD/CAM应用程序转换成面向对象的框架,是因为我准确地展示了它在哪些方面会有所帮助。重点不是整个方法,而是它将如何帮助我们销售一些具体的问题。对于我们来说,有一个可扩展的框架,用于添加更多的形状、报表和机器控制器,并使用集合来消除旧设计的内存限制。
发布于 2008-12-08 01:57:12
大多数这些问题都被这样一个问题所困扰:单个程序员的生产率相差一个数量级或更大的数量级;如果你碰巧有一个OO程序员,他是生产力x的累赘之一,而一个“过程”程序员是一个10倍的程序员,那么即使从某种意义上说OO更快,这个过程程序员也有可能获胜。
还有一个问题是,编码效率通常只占实际项目总工作量的10-20 %,所以更高的生产率不会产生多大影响;即使是假设的10x程序员,或者一个无限快的程序员,也不能将总工作量减少10%-20%。
你可以看看弗雷德·布鲁克斯的论文““没有银弹””。
发布于 2008-12-08 02:53:40
OO或程序提供给不同的开发方式,如果管理不善,两者都可能代价高昂。
如果我们假设工作是由最好的人在这两种情况下,我认为结果可能是相等的成本。
我相信成本差异将取决于您将如何成为,维护阶段的,您将需要添加功能和修改当前的功能。过程项目很难进行自动测试,能够在不影响其他部分的情况下进行扩展的可能性更小,并且更难逐部分理解概念(因为衔接部分并不是必要的)。
因此,我认为,从长远来看,OO的成本将比程序成本低。
https://stackoverflow.com/questions/332808
复制相似问题