1.什么是架构
架构是个抽象概念,对于整体需求进行描述,架构是个过程,他将所需完成的任务细分化后各自独立完成再整合。关于组件,连接器和配置。
其定义为“系统在其环境中的最高层概念”。共有两个要素。
复杂问题简单化,简单问题流程化
2.为什么要出现架构
一开始都是二进制,每天对着010101, 太难搞了。
后来就出来汇编,汇编相对简单,但是还是依赖底层,需要调用CPU指令,操作寄存器,段地址,而且不同系统下的指令规范还不一样。
后来就有人做了封装,此时出现了简单的高级语言,但是仍然是简单代码的堆叠,随着代码量的提升,复杂度也跟着提升。
怎么办,拆,就是结构化代码,将代码划分成模块。
后来,硬件生产力大幅提高,但是软件开发效率还是很低。
怎么办,此时就出现了面向对象的高级语言,将相同功能进行封装,需要的时候直接实例化一个对象去执行,这样提高的效率。
再后来,随着对象越来越多,还是复杂,怎么办,这个时候就出现了组件/架构的概念,将整个代码拆分成不同的系统进行解耦。
一句话,复杂了?拆。
代码复杂了,拆成函数,函数复杂了拆成对象,对象复杂了拆成不同组件。
拆的力度越来越粗,层次也越来越高。
这个发展的过程也说明了一个问题:没有什么方案是普适性的(所谓的银弹),随着时代行业的发展,每个阶段的需求都是不一样的,只能说根据需求相对的给出一个最适合的方案,这也就是架构师的作用,判断和选择最适合的。
问题复杂了
3.架构解决谁的问题
架构解决了上层管理者的任务划分和进度调配,为底层工作者合理的分配了任务工作
解决了人的问题
4.实例分析:用MVC模式分析自己家庭架构
Model:从早到晚的一切家庭业务,例如:打扫房间、做饭、吃饭、洗碗等。
Views:
1)自己房间自己打扫,效果较显著,很干净。标准是人看着感觉整洁舒服。
2)早晚饭我做, 午饭父母做。效果:都挺好。标准:爱不爱吃。
3)洗碗:谁最后吃完谁洗。效果:干净。标准:碗中的水既不凝成水珠,也不成股流下。
Controllers:到点了就做该做的事儿。