1. 引言
项目的失败大多数都是由差强人意的需求、规划和管理所导致的。但是,当项目确由技术因素导致失败时,其原因通常就是失控的复杂度。 ----《代码大全》
2. 日常生活人们解决的复杂问题的途径
1) 分解复杂问题;
2)团队内协作,各司其职;
3)几个团队的合作,分工明确,各团队由接口人负责团队间协作。团队间交互形成协议;
3. 层 或 子系统
1)在软件领域无处不再的层(所谓的银弹);
2)是一种抽象:上层不用关注下层的实现;联想7层tcp/ip协议,linux的虚拟文件系统给我们隐藏了不同文件系统的差异,提供统一的系统调用接口。
3) 分层结构,层次职责明确,各层直接耦合度底,交互协议明确。
4 )建立中心控制点。
4. 包和类
1) 类的基础: 是现实世界中的对象建模的过程,是对数据和方法的抽象,封装。 是降低和隔离软件复杂度的最有效表现;`
2) 类的职责明确;功能内聚。
3) 封装容易改变的区域,让变化的影响范围最小化。
4)类的命名: 名+动词 或
3) 不要公开不必要的数据,尽量多的隐藏自己;
5. 方法
1) 职责明确,小即使美。
3) 隐藏自己:别有意报漏自己的行踪。
4) 隔离变化;
5) 方法的命名:准确描述方法做的所有事情。 动词和宾语;(不需要再类名中的名词)
6) 防御式编程
7) 利用掌握函数式编程思想;
8) 方法的长度: 15行左右吧;
6. 提高编程代码的速度
1)分解问题的能力,也就是划分层次,类职责,方法职责的抽象能力。(最开始不要考虑设计模式,功能完成后,再去重构,相信前边的做好了,美的代码会自然的写出来)
2)学会利用封装的武器,应对需求的变化。(隔离变化)
3) eclipse 的快捷键。试着让自己少用鼠标;
总结: 编程不是机械的过程,程序员也像画家一样。用面向对象思想武装自己,以编程语言为媒介,让自己的思想跃然屏幕之上。