Vue3源码解析,打造自己的Vue3框架-帝城多壮观被服长如春

#1

download:Vue3源码解析,打造自己的Vue3框架-帝城多壮观被服长如春

谈建筑:建筑师除了画建筑图还需要什么?
介绍

“建筑是在处理一些重要的事情,但谁知道它们是什么。

建筑师应该是一个重要且受人尊敬的职位。每次听到某某是某公司的架构师,会不会有一种敬畏的感觉?在大众眼中,架构师通常与系统设计、技术实力、领导力和影响力密切相关。正是因为这个原因,企业中很多架构师的职位都是由经验丰富、技术能力扎实的高级软件工程师担任的。但软件行业对架构师的定义其实并不明确:亚马逊、阿里云等云服务商都有自己的架构师团队,但大多以架构师的名义开展客户售后服务;企业中的架构师无非是利用自己丰富的经验和强大的实力解决技术问题,相当于高级软件工程师。这些都和我们心目中设计高大建筑图的全知全能的建筑师大相径庭。

总工程师
首先,架构师是整个软件项目的总工程师,负责软件工程的总体设计、实施和质量。因此,对于软件架构师来说,需要具备优秀的编程能力,熟悉软件项目开发流程,在各个技术领域有一定的广度和深度。不仅如此,由于架构师是技术方的总负责人,他(或她)通常需要思考模块之间是如何交互的,功能服务的划分是否合理,整个系统的瓶颈会在哪里等等。而这些都是技术性的东西。
当一个软件工程师处理过很多大大小小的项目,他应该对软件工程和架构有很深的理解,再加上一些系统的学习,他应该有资格成为一个架构师。所以从技术角度来说,软件架构师相当于高级软件工程师。
图表重要吗?
可能大家都见过架构师画的各种架构图:层次架构图、物理网络拓扑图、流程图、交互逻辑图等等。但是要回答架构图是否重要的问题,我们需要了解一点为什么需要架构图。图表的主要目的是帮助内部工程师或外部技术人员快速理解其中包含的系统模块信息。所以,那些看似很酷、很专业、很讨喜的架构图,如果缺乏内涵,未必对理解有帮助。相反,一个简洁、清晰、易懂的架构图,即使看起来很丑,对软件开发人员也有很大的帮助。所以架构图固然重要,但主要目的还是为了清晰简洁地展现系统模块的信息。

不仅仅是技术
如前所述,架构师作为软件工程的总工程师,将承担技术方的责任。但现实中很少有只专注于技术工作的架构师,或者至少是精通技术技能的,能在项目中游刃有余的。一个成功的架构师,或者一个有影响力的架构师,至少需要良好的领导力或者团队管理能力。
对中国建筑师的八项技能要求中,有一半与技术没有直接关系。
你可能会惊讶于后半段对架构师的非技术要求,比如为什么架构师需要考虑政治?之前我还是一个单纯的技术人员的时候并不理解,但是随着项目经验的不断积累,直到我自己成为了项目经理,我发现企业中很多架构决策并不仅仅来自于架构本身的技术合理性,而是与企业政治有关。这里的政治不是传统意义上的官僚政治,更多的是指各部门之间的合作或竞争;尤其是当企业规模非常大的时候,这个考虑还是很重要的。限于篇幅,这里不赘述。一会儿我们可以单独聊聊。

精益求精
很遗憾,很多从工程师提拔上来的架构师,继续在技术领域学习,忽略了非技术的东西。所以本文强调的一点是,架构师的责任和要求绝对不仅仅是技术和架构本身,更多的是非技术技能和经验的积累。比如,如何在合规、资源和开发效率之间取得平衡;对自己的软件项目负责,对公司提供什么商业价值,对业务会有什么影响;如何向非技术人员(尤其是老板)解释技术术语;面对不配合的外部部门,如何应对,保证项目顺利进行。这类问题需要非技术技能和经验,想要在职业道路上走得更远的架构师可能需要更多地考虑这些。只有走出自己的舒适区,才能开始有效的学习和成长。