浅谈软件体系结构

1.什么是架构

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

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

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

2.为什么要出现架构

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

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

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

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

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

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

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

 

一句话,复杂了?拆。

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

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

 

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

问题复杂了

3.架构解决谁的问题

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

解决了人的问题

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

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

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

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

posted @   一个人的空梦  阅读(160)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示