首页 > 其他分享 >浅谈软件体系结构

浅谈软件体系结构

时间:2023-02-16 11:45:41浏览次数:34  
标签:拆成 架构 浅谈 复杂 代码 软件体系结构 组件

1.什么是架构

架构是个抽象概念,对于整体需求进行描述,架构是个过程,他将所需完成的任务细分化后各自独立完成再整合。关于组件,连接器和配置。

其定义为“系统在其环境中的最高层概念”。共有两个要素。

复杂问题简单化,简单问题流程化

2.为什么要出现架构

一开始都是二进制,每天对着010101, 太难搞了。

后来就出来汇编,汇编相对简单,但是还是依赖底层,需要调用CPU指令,操作寄存器,段地址,而且不同系统下的指令规范还不一样。

后来就有人做了封装,此时出现了简单的高级语言,但是仍然是简单代码的堆叠,随着代码量的提升,复杂度也跟着提升。

怎么办,拆,就是结构化代码,将代码划分成模块。

后来,硬件生产力大幅提高,但是软件开发效率还是很低。

怎么办,此时就出现了面向对象的高级语言,将相同功能进行封装,需要的时候直接实例化一个对象去执行,这样提高的效率。

再后来,随着对象越来越多,还是复杂,怎么办,这个时候就出现了组件/架构的概念,将整个代码拆分成不同的系统进行解耦。

 

一句话,复杂了?拆。

代码复杂了,拆成函数,函数复杂了拆成对象,对象复杂了拆成不同组件。

拆的力度越来越粗,层次也越来越高。

 

这个发展的过程也说明了一个问题:没有什么方案是普适性的(所谓的银弹),随着时代行业的发展,每个阶段的需求都是不一样的,只能说根据需求相对的给出一个最适合的方案,这也就是架构师的作用,判断和选择最适合的。

问题复杂了

3.架构解决谁的问题

架构解决了上层管理者的任务划分和进度调配,为底层工作者合理的分配了任务工作

解决了人的问题

4.实例分析:用MVC模式分析自己家庭架构

Model:从早到晚的一切家庭业务,例如:打扫房间、做饭、吃饭、洗碗等。

Views:
1)自己房间自己打扫,效果较显著,很干净。标准是人看着感觉整洁舒服。
2)早晚饭我做, 午饭父母做。效果:都挺好。标准:爱不爱吃。
3)洗碗:谁最后吃完谁洗。效果:干净。标准:碗中的水既不凝成水珠,也不成股流下。

Controllers:到点了就做该做的事儿。

标签:拆成,架构,浅谈,复杂,代码,软件体系结构,组件
From: https://www.cnblogs.com/z13516221762/p/17126123.html

相关文章

  • 浅谈微服务架构的演变史
    本文将介绍微服务架构和相关的组件,介绍它们是什么以及为什么要使用微服务架构和这些组件。从单体应用到微服务并不是一蹴而就的,这是一个逐渐演变的过程。本文将以一个网上......
  • 浅谈 DDP 与 广义矩阵乘法
    浅谈DDP与广义矩阵乘法目录浅谈DDP与广义矩阵乘法更好的阅读体验戳此进入引入例题#1广义矩阵乘法DDP例题#0例题#0.5例题#1例题#2例题#3UPD更好的阅读体验戳......
  • 浅谈数论
    浅谈数论待更欧几里得算法gcd(a,b)=gcd(b,a%b)说人话就是辗转相除法证明:$$令a=bk+c\\thereforec=a-bk\设有公约数d|a,d|b\\therefore\frac{a}{d}-\frac{......
  • 云计算浅谈之一:云计算介绍
    微软前一段通知,微软的云计算平台windowsazure在中国的服务将会于10月1日开通。微软承诺未来90%的开发人员将从事云计算方面的工作。在这个重要的时刻,是时候提醒更多的开发......
  • 【大型软件开发】浅谈大型Qt软件开发(四)动态链接库的宏冲突问题、COM组件开发的常见问
    最近工作的时候有一个链接库的对接工作,在对接时发生了一些小问题,这篇FAQ是办公室写这个库的工程师戴工写的,这里记录一下:一、编译工程时报链接错误“不允许dllimport静态数......
  • 如何利用人工智能改善医疗行业?浅谈ChatGpt在医疗元宇宙的应用
    随着技术的不断进步,广州华锐互动打造出了适合医疗行业的元宇宙,并且也在不断寻找更加高效的方法来改善患者的医疗体验。这里,广州华锐互动为大家介绍一种利用人工智能的方法:C......
  • (一)浅谈人工智能:ChatGPT
     欢迎关注微信公众号专注于网络安全领域,跟踪漏洞动态,深耕互联网,做一个深谙攻防之道的公众号。同时涉足多个领域,是哲学,抑或是文学与艺术,关注金融市场,研究全......
  • 浅谈JS词法环境
    JavaScript词法环境本文主要讲解JS词法环境,我们将看到什么是词法环境,词法范围如何工作,函数内部的名称如何解析,内部属性,弄清楚词法环境利于我们理解闭包。让我们开始吧.........
  • 浅谈mybatis返回单一对象或对象列表的问题
    目录mybatis返回单一对象或对象列表一、说明二、代码测试UserMap.xml映射文件dao文件UserMap.java测试代码和结果文件mybatis返回的对象包含集合 mybatis......
  • 浅谈Pytest中的warning处理
    浅谈Pytest中的warning处理没有处理warning我们写一个简单的测试importpytestdeftest_demo():importwarningswarnings.warn('testwarn',DeprecationW......