在谈怎样成为架构师之前,我想先说点别的,大部分程序员肯定都听过架构师这个职位,只知道架构师很牛,也许在你们公司也有架构师的存在,但是表面上架构师好像不用做什么事,针对这个问题我们首先来看看架构设计的重要性,请看以下几点:
1、软件架构能够满足系统的品质
2、架构设计使受益人达成一致的目标
3、架构设计能够支持计划编制过程
4、架构设计对系统开发的指导性
5、架构设计能够有效地管理复杂性
6、架构设计为复用奠定了基础
7、架构设计能够降低维护费用
8、架构设计能够支持冲突分析
意识到了架构的重要性了,还得知道如何去设计架构,那么什么是好的软件架构,什么又是糟糕的软件架构呢?
看图
上面的图即是一个乐高玩具,它即可以以一个完整的模型卖给你,你也可以把它全部打碎了重新从一个模型自由的再去组装成另一个模型,因为每一个乐高的模块在横向、坚向里都有标准的接口,这就是我们常说的高内聚、低耦合。
下面的图一个是清代的八股文,一个是孔乙己。还记得回字的四种写法吗?那么你专门就研究回字的四种写法 ,但你有没有想过我把回字折开来又可以变成几个字?是否好折?
继续往下看
左边的图是美国的“阿利伯克级”宙斯盾驱逐舰,右边的是印度模仿美国的宙斯盾自己设计和建造的”德里级”的“咖喱盾”驱逐舰。
一个是模块化的设计,整体线条流畅,战损时模块可以任意替换。
一个却是拼拼凑凑,线路外露,甲板上布满了各种电子设备和天线,一旦战损,极难维护
架构师的工作并不是简简单单设计一个能工作的架构就可以了的,他需要考虑的因素有很多,他需要懂得写程序,才知道怎么设计的架构最简单高效,而程序员到了一定阶段之后就和搬砖差不多意思了,代码都熟悉了,在他们眼里写程序就和打字没有区别。说了这么多,下面我们来说点架构师的事,它的职责是什么?
如上图,架构师的第一职责就是关注:non-functional requirements,即非功能性需求(小伙伴不懂非功能性需求的话可以百度上查查)
下面才是重点,那么怎么样才能成为架构师呢?
关于技术方面的我就不讲了,在前面也发了很多架构师需要学习的技术,想了解的小伙伴可以看看我以前发的文章,今天谈几点一个好的架构师应该懂的一些东西
1、学习之道
2、需要掌握的基本功中的基本功,下面的列表有先后顺序哦
3、Bad artist copy good artist steal
4、放正你的心态
5、不断的需要自我激励
如果有小伙伴们想要学习或者一起交流大数据架构师的技术,可以加下图片下方的交流群,群里有很多学习视频都可以下载,而且每天都会有老师在群里分享大数据架构师的技术。