日常工作中,很业内人士框架和架构经常混为一谈。她们在日常的会议、邮件中经常出现框架和架构这样的措辞。时间朝阳了,感觉框架和架构几乎查不会,没有区别。甚至肤浅地认为框架就是架构,架构也就是框架。业内人士况且如此,外行人士更是滥用概念了。今天就来说说框架和架构和具体含义。
软件架构(Software Architecture)是指一个软件系统的基本组织结构,它决定了组成这个系统的各个软件元素的属性、行为以及它们之间的相互关系,并提供了软件开发者描述系统各个层次的体系结构的一些基本原则、原则和范式,以及实现这些原则和范式的具体策略和方法。
常见的软件架构包括以下几种:
- 分层架构:将一个大型的系统拆分为多个垂直层次的组件,每一层次都具有不同的功能,每个组件只与相邻的组件交互。
- 客户端-服务器架构:将软件系统分为客户端和服务器端两个部分,客户端发送请求并接收响应,服务器端接收请求并返回响应。
- MVC 架构:将软件系统分为模型、视图和控制器三个部分,模型表示应用程序中处理数据和业务逻辑的组件,视图表示用户界面,控制器表示用户通过图形界面发送的命令响应。
- 微服务架构:将软件系统拆分为多个可以独立部署、独立运行的微服务,每个微服务都具有自己的数据库和 API 接口。
- 事件驱动架构:系统中的元素通过在事件发生时触发事件来相互协作,事件驱动架构可以提高系统的灵活性和可扩展性。
- 领域驱动设计架构:将软件系统按照业务领域进行组织,通过统一的业务语言来实现开发人员和业务人员之间的交流。
软件开发框架(Software Development Framework)是指一套经过完善、优化、测试的组件、模块和工具的集合,可加速软件开发过程、提高代码质量和可维护性。具体含义如下:
1.概念上,软件开发框架包括软件设计模式、优化策略、编程规范、测试规范、质量保证等内容,这些内容共同构成了软件工程的基础。
2.技术上,开发框架是一组已实现的代码库、工具和应用程序接口(API),包括用户界面(UI)、数据库访问、安全性、网络通信、错误处理、配置等软件开发的关键领域。
3.操作上,通过使用框架,开发人员可以使用已有的标准化和预定义的代码模块,以及不同的类、库、插件和工具,来加速软件开发、提高代码质量,大幅度降低开发成本。
4.大规模上,开发框架可以确保不同开发人员之间的协同工作,从而减少代码的冲突和重复。同时,框架可以为大规模软件开发提供一致的代码、实现思路和代码库规范,确保代码可维护性和可扩展性,避免在开发的过程中出现各种不必要的问题。
拿.NET技术栈来说,三层架构、MVC、DDD、微服务都是架构,它是一种思想方法。EF Core,Nhibernate、NPOI,SqlSugar这些是框架,它更多的是一种库的概念,是封装的一套程序集和代码规范。
框架(Framework)和架构(Architecture)在软件领域中是两个不同的概念。框架可以用来支持软件系统的各个模块,而架构则决定了整个软件系统的设计规划。软件架构不仅仅是技术问题,而是多个方面的问题,涉及到业务领域、技术、组织和资源的问题。好的软件架构应该考虑到软件系统的所有方面,能够支持软件系统的可扩展性、可维护性、可靠性和安全性。
软件开发框架是软件工程的核心部分,通过统一、标准化的方式进行代码开发,提高了开发的效率和质量,同时也使得代码开发更加具有规范性。
【小结】
日拱一卒,必有所获。人与人之间最大的区别是概念及其关联。对概念的掌握程度,决定了日常表达的逻辑和条理性。