最近面试的过程中,很多人都提到自己的职业目标是架构师,对于大部分程序员来说,架构师是一个很神圣的岗位,但是什么架构?架构师又是干什么的?如何能成为架构师?从本章开始,我们一起去探索架构思维相关的知识,帮助我们向架构师成功转型。
何为架构
架构的英文是Architecture,在Wikipedia上,架构是这样定义的:
Architecture is both the process and the product of planning, designing, and constructing buildings and other physical structures。
架构最早来源于建筑领域,建筑的本质就是从自然环境中,划出一块独占的空间,但是仍然能够通过门窗等和自然环境保持沟通。这个时候架构就已经开始了。随着人们生活水平的提高,对于建筑的需求越来越多,空间的切分也会变成很多种,组合的方式也会有很多种,这个时候人们就开始有意识的去设计房子,架构师就慢慢的出现了。
何为架构师
在软件开发领域,架构师可以根据工作的内容、范围进行划分,一般我们可以划分为三个大类:
系统架构师,从系统的维度,负责整体系统的架构设计,主要是基础服务和各系统间协调上,着眼全局不太注重某个应用本身架构,比如关注服务器负载,可靠性,伸缩,扩展,数据库切分,缓存应用等方面的基础架构设计。
应用架构师,从应用程序的维度,负责某个应用的技术架构,主要偏业务系统,关注理解业务,梳理模型,设计模式,接口,数据交互等方面。
业务架构师,从业务流程的维度,关注某一个行业、业务的领域分析,获取领域模型,最终获得系统的模型。也可以叫业务领域专家、行业专家、产品咨询师、资深顾问。
通常我们说的架构师是系统架构师和应用架构师的结合。架构师也可以从开发语言、职责上划分,比如前端架构师、后端架构师、Java架构师、.Net架构师、LAMP架构师等。
何为架构思维
该脑图内容的持续更新可访问:https://processon.com/view/5ed1c9240791290770d11f19
如图所示(上图偏后端架构师),成为一名架构师不是一件很容易的事情,需要你的知识体系既要有深度,更要有广度;不仅要懂技术,也要更理解业务;不仅要有理论,更要有实战经验;不仅可以单骑闯关,更可以运筹帷幄。虽然各种类型的架构师对于技能的要求有很大的区别,但是其架构的本质以及架构的思维是万变不离其宗的,所以要成长为一名优秀的架构师,首先就要具备优秀的架构思维。架构的本质是管理复杂性,抽象、分层、分治和演化思维是我们工程师/架构师应对和管理复杂性的四种最基本武器。这四种思维的具体内容,我将在接下来的章节里通过实际的问题或者案例进行详细的分析。
【架构思维】章节后续部分内容
无抽象不架构
合久必分,分则有度
有时过度设计比设计不足更可怕
菜根老谭,微信公众号:CGLT_TAN,人人都是产品经理专栏作家。经历程序员、技术Leader、研发Leader等多种岗位。关注医疗,早教领域,擅长企业IT架构及互联网产品架构。
点击下方“阅读原文”,查看《程序员思维修炼》该专辑相关文章。如果您感觉该文对您有价值,请点击下方“在看”,让更多朋友看到它。