模型系统的前世 – “模糊系统”
开发阶段: controller
里面的代码
- 初始化视图模型,视图展示元素的文字及显示影藏等等属性 (
ng-show/ng-if
)
- 定义事件响应函数,处理 UI 交互逻辑 (
ng-click/ng-change
)
- 定义
scope
中,指令需要的配置参数
- 指令和
controller
的作用域的数据传递
- 作用域内部属性变动的监听
- 作用域之间的数据通信
- 业务逻辑
维护阶段
上面那样写出来的代码,在维护的时候就是一团糟
测量代码质量的标准是,在代码 reveive
每分钟 WTF (what the fuck) 的数量
带来的沉思
- 代码级别的重构解决不了问题 每个人开发的项目不同,思路不同,所有优化和重构的策略也不同,导致重构后的代码风格不同,甚至,重构优化过的代码在面临需求变更的时候出现反复
- 不是哪个程序员的问题 不是因为某个程序员或者某几个程序员故意那样写,而是因为简单项目中,使用 angularjs 那样写就是快,就是简单,产品经理规定的一周的工作说不定你 3 天就做完了
- 是发展中的问题 两个维度: (1) 一个复杂的业务系统,从最初的 0.0 版本的需求到最终多次需求迭代变更之后,系统自然而然的会出现这样的问题,初期写的很简单的代码在后期需要加需求是带来很多困扰. (2) 从项目组来说,这种问题存在于整个项目组的成长期,不是突然冒出来的,也不会突然消失,必须认真对待,合理规划
- 产品规模化以后是最大的问题 某一个项目存在这样的问题不可怕,可怕的是大部分项目都存在这样的问题,当产品规模化了以后,项目越来越多,只有最开始的开发者才能做维护,那么后期维护和需求迭代的投入只会让团队积重难返
模型系统的初现 – 面向对象程序设计
面向对象程序设计的手段 (方法) 是什么?