如果说数据结构和算法教你如何写出“能算得更快、跑得更稳”的代码,那么面向对象和设计模式更关注“怎么让系统更容易维护、更容易扩展”。
在工程实践中,常见的代码质量问题往往不是“不会写代码”,而是:
- 命名表达模糊,意图不清
- 类职责不单一,边界混乱
- 分层失衡,耦合度过高
- 模块化缺失,改一处会影响太多地方
这些问题会推高成本:线上故障更难排查,修复更慢,团队长期被“修修补补”牵制。
一旦把这些问题吃透,系统就会更稳定,团队也会有更多时间做更有价值的事。
如果你现在也在做技术面试,围绕“设计能力”提问时,不要只问“有没有听过某个模式”,更有效的是问“你在什么场景下这样做、为什么这样设计、后来有什么收益或代价”。
对于已经带团队的人来说,最难得分的时刻,不在于你写得多快,而在于你能否让团队持续交付优质功能。
如果自己都不能解释清楚“什么样的代码才算好”,在 code review 中也会很难帮助到别人。
面向对象
什么是面向对象编程?
面向对象(OO)不是“封装、继承、多态”这三个词的死记硬背,而是先围绕“业务概念”和“行为边界”建模。
什么是面向对象编程语言?
支持对象作为一等公民(有状态、行为可组合)的语言都属于 OO 语言。Java、C#、Python、TypeScript 是常见代表。
什么是面向对象分析和面向对象设计?
面向对象分析(OOA)关注“问题域中的核心对象是什么”;
面向对象设计(OOD)关注“这些对象如何协作、如何隔离边界、如何演进”。
DISCUSSION
讨论与反馈