/p>
长久以来,架构都是一个十分模糊的概念
你可能会听到,架构是一个软件的抽象,或者是一个软件的骨架
这些概念听起来感觉是对的,但是往细里想,仿佛又没讲清楚
那么,本期我们就来聊一聊架构实际上是什么
架构的组成部分
1.环境架构
2.软件架构
3.开发规范
1、环境架构
首先,我们来介绍环境架构
环境架构
环境架构指的是软件运行时的环境结构
一般而言,除自身开发以外的软件或硬件都算是环境
环境是一个软件运行的前提
对于环境架构的设计而言,更多的是去选择现成的软件或硬件
2、软件架构
接着,我们来介绍一下软件架构
软件架构
软件架构指的是自身团队开发的软件的基础结构
通常来说,根据具体的软件形态,宏观的软件架构是相对统一的
例如,APP有其特定的宏观软件架构、 站系统也有其特定的宏观软件架构
对于软件架构的设计而言
其实就是在明确软件形态的基础上
去选择开发语言、基础开发框架
除此之外,还需要根据具体的软件,进一步细分子模块、通用模块等
关于 站系统的软件架构,请观看往期《技术架构》
不过,从严格意义上讲,往期提到的《技术架构》不完全等同于软件架构,其中PaaS、IaaS、SaaS分层其实是省略化的环境架构。
3、开发规范
一般而言,架构指的是环境架构和软件架构
那么我们为什么要强调开发规范呢
因为在实际项目当中,我们发现了一个问题
那就是,即使使用了相同的环境架构和软件架构,最终的软件质量可能是天差地别的
有的软件运行顺利,项目顺利结束;有的软件经常出BUG、项目严重延期
抛开项目管理、开发人员能力等因素的前提下,造成这些区别主要在于:开发规范
开发规范的目的,是让开发团队拥有大体上一致的编程行为
而一个团队开发人员的编程行为是否大体上一致,直接决定了最终的软件质量
也决定了软件项目是否会延期、是否会成本超支
对于开发规范具体需要关注哪些问题,会在后期讲到前端架构、后端架构时提及
当开发规范完整到一定程度,拥有其特有的工程结构和编码行为时,则会形成顶层架构
需要说明的是顶层架构是我们自己定义的一个概念(所以不放在传统的架构含义当中)
顶层架构思考的是“人如何写代码”、“软件质量和生产效率如何最大化”等问题
简单地说,顶层架构是一套完整的规范化标准
它改变和约束开发人员的开发方式,以拥有更加流畅的生产过程
顶层架构虽然是我们自己定义的概念,但也是有迹可循的
以比较流行的技术为例
Vue-CLI等脚手架和Spring Boot的Controller、Service、Dao分层都是顶层架构
Vue-CLI加入了编译器、包管理等工具,改变和约束了前端工程结构和开发人员的编码行为
以提升前端的开发效率,而最终运行的代码,还是会编译成HTML、JavaScript、CSS
Spring Boot的Controller、Service、Dao分层,约束的是编码行为,让后端代码大体上是一致的
我们自研的三套架构都是顶层架构,他们都没有增加新的技术
只是在流行的技术上增加了使用规则,它们已经帮助了多个项目缩减项目周期和项目成本
感兴趣的同学可以到我们的官 查看
总结
架构设计的目的是,保证最终的软件质量和加快软件的生产效率
以现实生产一个产品为例
明确环境架构相当于明确产品的使用环境
明确软件架构,相当于明确产品的原料、产品的结构
明确开发规范,相当于制定开发流程,生产合作规则
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8665 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!