据我所知,尽管花费了数百万或数十亿美元用于OOP教育,语言和工具,但OOP并未提高开发人员的工作效率或软件可靠性,也没有降低开发成本.很少有人在任何严格的意义上使用OOP(很少有人坚持或理解LSP等原则); 人们对问题域建模所采用的方法几乎没有统一性或一致性.这个课程常常仅用于语法糖; 它将记录类型的函数放入它们自己的小命名空间中.
我为各种各样的应用程序编写了大量代码.虽然有些地方真正的可替代子类型在应用程序中发挥了重要作用,但这些都非常特殊.总的来说,虽然谈到"重复使用"的口号很多,但实际情况是,除非一段代码完全符合您的要求,否则几乎没有成本效益的"重复使用".设计类以正确的方式扩展是非常困难的,因此扩展的成本通常很高,以至于"重用"根本就不值得.
在许多方面,这并不让我感到惊讶.现实世界是不是"OO",这种想法在OO隐含的 - 我们可以用一些类分类模型的事情 - 在我看来非常根本性的缺陷(我可以坐在桌子上,一个树桩,一个车盖某人的膝盖 - 但不是其中一个 - 一把椅子).即使我们转向更抽象的领域,OO建模通常也很困难,违反直觉,最终无益(考虑圆/椭圆或正方形/矩形的经典例子).
那我在这里错过了什么?哪里是OOP的价值,为什么所有的时间和金钱,没有作出任何软件好?
我是一个程序员,试图学习面向对象范式的代码......我主要使用PHP,我想学习zend框架......所以,我觉得我需要学习在OO PHP中编写代码....
问题是,在很长一段时间内完成了使用函数的代码后,我无法用OO的方式思考....
也觉得可能我不是唯一一个从一开始就面临这个问题的人......
那么,你们是如何学习面向对象编程的呢?尤其是你是如何成功地"学习"代码使用函数......并学会将代码视为对象...?
有没有好的资源书籍或网站可以找到帮助......?
感谢您分享您的知识和经验......
我想到这一点已经好几年了,但是我很快就会训练一些真正的青少年,需要向一个不知道它是什么的人解释一个对象是什么.
根据您在现实世界中使用的内容,我应该重点解释的对象的关键点是什么.例如:
我对.NET编程(以及一般的OOP)比较陌生,我想确保在设计应用程序时我没有养成糟糕的初学者习惯.
如果您正在招聘一名新的.NET开发人员,并且必须让他加快速度,但也希望确保他采用最佳实践(例如,单一责任原则,单元测试,关注点分离),那么您的建议是什么?学习路径?
我最近一直在听多态播客,虽然听取最佳实践的讨论是有帮助的,但我发现缺少屏幕录像和代码示例,旨在介绍这些最佳实践.
我一直致力于自己的一些项目,并没有任何可观的曝光.目前我使用简单的方法,用于开发小型应用程序可以忽略不计OO方法如创建使用的功能有点用构造的多态性数据库功能的通用类,但我真的不能够想到如何实现使用OOP整个项目的逻辑.
我知道什么是接口,抽象类,密封类和其他oops概念和非常清晰的图片.但问题是我何时以及如何在应有的地方大量实施OOP.
我是否需要学习实时应用程序及其案例研究,如果是这样,请向我推荐一些我可以阅读它们的网站或书籍/电子书,并且能够实现它们.
目前我觉得自己在编程时不完整.我有效地实现了数据库及其大部分组件,但在尝试使用OOP时却是一个小孩.
我已经阅读了很多例子,试图让人们理解像形状一样的OOP,例如汽车.所有这些.他们不清楚概念,但还不足以在一些现场项目中实施