几个软件概念的理解
作者:互联网
软件从业人员不可避免的会接触到数据结构、算法、设计模式、软件架构设计等概念,本文结合笔者的个人软件设计开发经历,梳理对这几个概念的理解。
狭义上来说我们编写程序的目的就是将现实中的问题通过编码转换,映射到计算机中存储的数据和一系列有穷、有序、确定的指令集,通过对指令集的执行,得到问题结果。一个软件通常要处理多项业务、解决多个问题,那么就会设计到业务的控制流转和具体的处理逻辑,通常处理逻辑只要合理提炼是可以做到通用化的,而控制流转通常面向不同的用户是千变万化的,所以对于控制流转与处理逻辑的分离,以及提炼控制流转的范式是非常有必要的。在对软件功能理解后,如何划分软件的模块去实现软件功能,以及软件全生命周期内的部署、维护、变更,也是非常重要的。
数据结构是计算机存储、组织数据的方式,数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率,数据结构往往同高效的检索算法和索引技术有关。数据结构研究数据的逻辑结构(集合结构、线性结构、树形结构等)在数据的存储结构(顺序、链接等)上实现的范式。
算法是以一步接一步的方式来详细描述计算机如何将输入转化为所要求的输出的过程,或者说,算法是对计算机上执行的计算过程的具体描述。算法具有有穷性、确定性、零个或多个输入、一个或多个输出、有效性的特点,典型的包括查找、排序、路径搜索等等。常见的算法类书籍通常给出一些典型算法的程序实现范式。
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式实际上更多的是总结了常见的代码控制流转的范式,用户可以直接借用来构建易于扩展的代码框架。
软件架构就是软件的基本结构,涉及到模块边界划分,配合逻辑,部署方式,组件间的依赖关系等,好的软件架构可让软件系统独立于软件框架、具有可测试性、易于扩展、部署简单。
总体来说,几个概念的关系如下图所示:
数据结构和算法保证业务处理逻辑的简洁高效;设计模式总结组件的控制流转关系模板,面向特定的场景,采用一致的流转架构,使得软件控制易于调整重构;软件架构设计更多考虑组件的分层、解耦,以及优化部署设计,支持软件的变更扩展。
标签:数据结构,流转,概念,算法,理解,软件架构,软件,设计模式 来源: https://blog.csdn.net/weixin_45522766/article/details/122521313