关于功能的设计
关于功能设计
问题和模块的定义
a. 将模块在整体结构中的位置和作用表示出来b. 定义模块的输入输出
编码与实现
问题定义
类层次结构是否必要决定需要暴露的部分
找出变化,使用抽象管理
实现
是否与定义相分离(桥模式,实现独立变化)模式选择
实现过程中,是否可以使用模式来应用到当前问题模型从调用的角度审查
调用的类是否尽到了它的职责是否需要流畅接口
从性能角度衡量
找出性能敏感的实现部分,不确定?测试一下找到答案边实现边重构
职责分发与解耦
这件事是否是这个类该做的,如果不是,立即重构(有resharper,并不会花很多时间)这个类的耦合点是什么,是否必要,否,重构
封装与调用
信息隔离能否重用一些已知接口
调用者如何将依赖注入进来(构造器,属性,还是attribute?)
技术选择
a. 是否对它足够了解
做一些research ,了解它优势的同时,清楚它的弊端
当前的问题模型真的匹配这个技术?这个技术(框架或类库)带来的维护成本和它所解决的问题相比,是否值得?还是只是因为想要学习它而使用它?