面向对象编程被批是“灾难”,为什么这么多开发者讨厌它?| 话题

6 人讨论

面向对象编程(OOP)已经存在了很长时间。有人喜欢它,有人讨厌它,但目前面向对象编程目前面临的一个尴尬是:讨厌它的人似乎比喜欢它的人多。这到底是为什么呢?

此前,InfoQ 发布了一篇题为《为什么有这么多开发者讨厌面向对象编程》的文章,文中提到,一位高级全栈工程师 Ilya Suzdalnitski 发表了一篇 6000 字的 OOP 批判文章,没想到意外收获 50 万阅读和一众程序员“赞同”的声音。

Suzdalnitski 给 OOP 列出了数宗“罪”:

OOP 是“万亿美元的灾难”;

OOP 没能把它本应该要解决的问题解决好,反而把事情变得更加复杂。OOP 代码的变量及其可变状态“在不同的对象之间被随意共享;

在大多数情况下,OOP 代码最终会变成带有全局状态的大泥团,任何人都可以随意修改它;

面向对象代码难以重构,也难以进行单元测试。写出好的、可维护的面向对象代码很难, 程序员宝贵的时间和精力都花在思考‘抽象’和‘设计模式’上,而不是解决现实世界中的问题。

Suzdalnitski 还在文章最后指出, OOP 的竞争编程范式—函数式编程将是更好的选择。

你喜欢用 OOP 吗?如果不,你讨厌它的理由是什么?你认为 OOP 更好还是函数式编程更好?欢迎在下方评论区互动留言。


欢迎大家在评论区留言,我们将为留言区点赞数最高的同学送出 《测试工程师全栈技术进阶与实践》一本,点赞统计截至 2019 年 9 月 16 日。任何与活动相关问题,请联系小助手微信号:Infoqzone2。

用户头像
发表评论

注册/登录 InfoQ 发表评论

最新评论

用户头像
Flourishing 2019 年 09 月 12 日 20:28 7 回复
目前接触到的项目都是面向对象的形式组织的,马上去看看函数式的优点。不过,我觉得不管那种模式,都有其利弊吧。
用户头像
楼主说的不错 0 回复
用户头像
面向对象未来会被更好的模式取代么?期待! 0 回复
用户头像
恭喜中奖《测试工程师全栈技术进阶与实践》一本~ 0 回复
用户头像
/ 2019 年 09 月 12 日 16:34 6 回复
开发问题的讨论,送测试的书,有点意思~ 1. 不喜欢OOP 2. 但也不讨厌 3. 都好
用户头像
东儿 2019 年 09 月 11 日 13:54 0 回复
能不面向就不面向,一个函数就干一件小事
没有更多了