**热文索引,坚持原创不易,请小伙伴们不吝「点赞」**支持:
架构师,老兵哥刚参加工作那些年业界还没有这个职位,那时候跟技术相关的岗位就是开发工程师、测试工程师和系统工程师,后来随着软件规模不断增长而产生的,尤其是在互联网浪潮下用户数和访问量都是海量化的。在各种机缘巧合下,老兵哥结合个人喜好选择了走架构师路径,从懵懵懂懂边做边学,到现在总算摸出了些门道,回顾这个过程还是有很多经验可以分享的,接下来我准备把这些内容梳理后分享出来,给需要的小伙伴参考。今天我们先来看看什么是软件架构?它对软件研发来说有什么独特的价值?
1. 教科书式定义
软件体系结构,又称软件架构,目前业界尚无统一的定义,常见定义如下:
在一定的设计原则基础上,从不同角度对组成系统的各个部分进行搭配和安排,由形成系统的多个结构组成了架构。它包括该系统的各个组件,组件的外部可见属性及组件之间的相互关系。组件的外部可见属性,指其他组件对该组件所做的假设。软件架构,还包括符合系统完整性、经济约束条件、审美需求和样式,它并不仅注重对内部的考虑,而且还在用户环境和中对系统进行整体考虑,即同时注重对外部的考虑。软件架构,输出系统整体结构与组件的抽象描述,一系列关联的抽象模式,一个系统的草图,用于指导大型软件系统构建的各个方面设计。