一、描述软件架构与框架之间的区别与联系
- 区别:
软件架构就是把系统分解为一些部件,描述这些部件的职责及它们之间的协作行为。当软件工程具一定规模时,软件开发不完全是以数据结构+算法的形式存在,而是基于技术选择和用户需求等众多因素将软件“分而治之”,架构师的主要任务是将软件分割成不同的模块,并定义模块之间的接口。
框架是特定语言和技术的架构应用解决方案。例如 Java Spring web framework,它包含了 Java 开发 web 应用的各种业务场景的具体解决方案。其主要特征包含三点:
框架是具体语言和技术相关的
框架是一种或多种架构的组合的实现
框架是集成了代码和多种第三方解决方案的工具,主要聚焦业务逻辑代码,而不是技术实现 - 联系:
学习者、开发者需要在在架构的指引下,集合一些案例代码,进行对框架的学习和开发。
框架官方代码因为代码简洁的需要破坏架构。解决方案,看实际应用代码结构,并在应用中按软件架构准则调整。
框架是一种或多种架构的组合的实现,而架构决策往往会体现在框架之中,框架技术和架构技术的出现,都是为了解决软件系统日益复杂所带来的困难而分而治之的结果。