背景
每个系统都有自己的架构,看过一些书以后,觉得架构关乎两件事:决策和分解。
常见应用开发架构决策
- 使用何种应用架构风格?
- 在技术维度,系统如何分层?
- 每个层有哪些元素?
- 层与层之间如何交互?
- 如何选择每个层的实现技术?
- 在业务维度,系统如何分区?
- 区与区之间如何交互?
- 都使用哪些应用架构模式?
- 如何管理事务?
- 如何管理并发?
- 如何使用异常?
- 如何使用日志?
- 是否使用IOC容器?
- 是否使用AOP技术?如何使用?
- 如何处理安全性?
- 如何处理性能问题?
- 如何处理易用性?
- 如何处理可用性(稳定性)?
- 如何处理可伸缩性?
- 如何处理可扩展性?
- 如何处理可重用性?
- 处理处理可维护性?
- 如何处理互操作性?
- 如何处理可移植性?
- 如何处理可测试性?
- 是否支持移动应用?如何支持?
- 是否支持云计算?如何支持?
- 是否支持开发性?如何支持?
- 使用何种报表平台?
- 是否有可以复用的基础应用?还是需要重新开发?
应用开发架构关乎分解