一、设计之道
软件设计两种方法:计划的设计(满足扩展的设计)和演进的设计(极限)
软件架构设计:
1、程序组织(Program )
需求--系统的功能模块(或子系统)--封装成包(考虑解耦--面向接口设计(判断哪些接口可以发布))
2、数据设计(Data Design)
大多时候功能模块的划分与数据库(数据表)一致 考虑:ORM(Object Relation Mapping)、查询性能、扩展、移植
3、安全性(Security)
最基础的保证:数据安全
另外:用户授权、加密与非法攻击的防御
4、性能(Performance)
优化数据库访问、合理的分层、引入缓存
WEB:减少HTTP会话访问降低服务器负载
5、可扩展性(Scalability)
面向对象:AOP、 Web Service面向服务器的架构(Service-Oriented Architecture)
6、可靠性(Reliability)
容错性和错误处理
7、可用性(Usibility)
重构的必然性 《重构--改善既有代码的设计》
UML :面向对象世界的世界语
测试驱动开发