你一定经常见到一个两三千行的 controller 类,类之所以发展成如此庞大,有如下原因:
- 长函数太多
- 类里面有特别多的字段和函数
量变引起质变,可能每个函数都很短小,但数量太多
1 程序的modularity
你思考过为什么你不会把all code写到一个文件?因为你的潜意识里明白:
- 相同的功能模块无法复用
- 复杂度远超出个人理解极限
一个人理解的东西是有限的,在国内互联网敏捷开发环境下,更没有人能熟悉所有代码细节。
解决复杂的最有效方案就是分而治之。所以,各种程序设计语言都有自己的模块划分(modularity)方案:
- 从最初的按文件划分
- 到后来使用OO按类划分
开发者面对的不再是细节,而是模块,模块数量显然远比细节数量少,理解成本大大降低,开发效率也提高了,再也不用 996, 每天都能和妹纸多聊几句了。
modularity,本质就是分解问题,其背后原因,就是个人理解能力有限。
说这么多我都懂,那到底怎么把大类拆成小类?
2 大类是怎么来的?
2.1 职责不单一
最容易产生大类的原因。
CR一段代码: