1月21日夜开发物联网项目技术补全有感而发。

大一下学期,我们修了一门为期8周的面向对象程序设计课程。如今看来,那更像是一门脱离工程实践的语法速成课。它用最短的时间,将“类”和“模板”作为新的语法单元灌输给学生,目标仅限于能用C++写对简单的程序。前几周快速过完“类”的定义与继承,后几周塞进模板的基本用法。学生在实验室里埋头补全OJ平台上那些预留了空白的代码片段——这里缺个构造函数,那里少个虚函数重写。教师关注的是能否编译通过,而不是设计是否合理;考核的是输出结果正确,而不是代码结构优雅,这更像是一门“C++ with Classes”语法课,而非真正的“面向对象程序设计”。

以我所见,面向对象的核心魅力本不在于class关键字本身,而在于如何通过对象的分工协作来管理复杂度。SOLID五大原则——单一职责、开闭原则、里氏替换、接口隔离、依赖倒置——本该是OOP课程的必修章节。但在速成课里,它们集体缺席。设计模式?架构思想?更成了遥不可及的奢侈品。课程完全回避了OOP的灵魂:SOLID原则、设计模式、架构分层这些教会我们如何用好对象来管理复杂性、应对变化的核心知识。学生学到的是一堆零散的语法特性,却没有学到如何搭建稳固、可扩展的软件系统。

学生被禁锢在OJ的沙盒中,他们面对的是定义完美、一次性解决、无需维护的问题。这与真实软件开发的开放、演进、协作的世界截然不同。因此,这样的课程只能算完成了教育的前半部分——传授语法工具。而那更重要的后半部分——传授设计思维与工程实践,则需要我们在课堂之外自行补全。

分类: Growth-Life 标签: 随笔

评论

暂无评论数据

暂无评论数据

目录