1、开始时需求要明确;
2、尽早发布可运行的demo,持续进行集成;
3、功能粒度要足够低;
4、架构可以随时进行调整;
5、测试驱动开发;
6、持续整理代码及架构重构;
7、持续的速度,任务分解需要细致、粒度要小,各个模块的任务完成要及时、有效;
软件之美在于它的功能,在于它的内部结构,还在于团队创建它的过程。对用户来说,通过直观、简单的界面呈现出恰当特定的程序就是美的。对于软件设计者来说,被简单、直观地分隔,并具有最小内部耦合的内部结构是美的;对于开发人员和管理者来说,每周都会取得重大进展,并且生产出无缺陷代码的具有活力的团队就是美的。
最好的软件开发人员都知道一个秘密,美的东西比丑的东西创建起来更廉价,也更快捷。
过程方法、设计原则、最佳实践——统一起来;
测试驱动开发的关键是从测试或者用户的角度去构思测试用例,测试用例来指导我们的设计;
IS-A 继承原则是针对行为的。
依赖倒置——调用关系的倒置,接口所有权的倒置;依赖抽象,不能依赖细节或者实现类;
命令模式——适用于设备控制,消息控制,数据库事务操作,多线程核心,GUI的do、undo操作;
Faced模式,mediator模式,单件模式,单态模式;
残缺即是完美,冷淡即是礼仪,壮观即是虚无,死亡即是圆满,没有即是更多;
抽象:事物本质性的东西要放大,无关紧要部分去除;
1、用户素材;
2、从行为着手,基于用例分析,基于用户的操作,而非系统的实现细节;
3、找对象,不要找函数;
包的设计,包的内聚性,包间的耦合性,包的维护性,包是从顶而下设计,还是至下而上设计;
内聚性:重用发布等价;共同重用;共同封闭;