架构设计需要关注内容:
1.程序组织(Program Organization)
划分功能模块,正确描述模块间关系,
利用高内聚低耦合设计思想与原则对功能模块以组件或者包的形式进行封装。
根据面向接口设计原理将组件和包进行抽象,公开暴露服务接口。
利用分层架构模式,通过引入分层模式,分离不同的功能模块,根据层次定义模块边界。
(逻辑视图、领域模型驱动设计这个还不太懂,后期研究)
2.数据设计(Data Design)
很多时候功能模块的划分应与数据表的划分保持一致,基于功能需求进行数据设计。
考虑对象与关系的映射(ORM)、数据查询性能、数据库未来的扩展及数据库迁移
3.安全性(Security)
软件层面:考虑数据安全、用户授权、加密与非法攻击的防御
硬件层面:硬件系统的物理分布、网络拓扑、软件部署环境等
4.性能(Perfermance)
改善硬件系统
从架构层面考虑性能优化:优化数据库访问、合理分层、引入缓存、Web系统设计时应该通过减少HTTP会话实现降低服务器负载的目的。
根据需求评估架构性能指标。
有效编码,代码评审
5.可扩展性(Scalability)
既要考虑后期维护与更新又要考虑不能过度设计
面向对象设计思想、面向方面编程技术(Aspect-Orientied Programming,AOP)、利用Web Service实现面向服务架构(Service-Orientied Architecture)
6.可靠性(Reliability)
包括容错性和错误处理。
统一异常处理机制。
分布式架构考虑远程服务出现问题时可通过智能代理,在远程和本地服务之间选择或者通过本地缓存的数据支撑系统正常运转,直至远程服务恢复正常
7.可用性(Usibility)
UI设计界面风格及操作必须统一,充分考虑用户体验,保证操作流程符合业务规则。