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

发起人: 刘燕
7 人讨论
3526 人围观

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

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

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

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

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

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

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

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

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


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

讨论 (4 条讨论)

发布
用户头像
函数编程也不能解决小编提到的问题,他也会形成大泥团,他的可读性在复杂场景下也会很差。OOP就好像瑞士军刀,看使用者怎么去使用他。使用者不能很好利用他,反过来抱怨军刀。事实上面就没有一个完美无缺的方案。
2019 年 10 月 16 日 13:13
回复
用户头像
目前接触到的项目都是面向对象的形式组织的,马上去看看函数式的优点。不过,我觉得不管那种模式,都有其利弊吧。
2019 年 09 月 12 日 20:28
回复
楼主说的不错
2019 年 09 月 12 日 21:41
回复
面向对象未来会被更好的模式取代么?期待!
2019 年 09 月 13 日 11:25
回复
恭喜中奖《测试工程师全栈技术进阶与实践》一本~
2019 年 09 月 17 日 16:12
回复
用户头像
/
开发问题的讨论,送测试的书,有点意思~

1. 不喜欢OOP
2. 但也不讨厌
3. 都好
2019 年 09 月 12 日 16:34
回复
用户头像
能不面向就不面向,一个函数就干一件小事
2019 年 09 月 11 日 13:54
回复
没有更多了