软件架构师如何工作
软件架构师如何工作
初步接触架构,阅读了资深架构师王概凯的架构漫谈博客,学习软件架构师如何工作。
架构师的主要工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。架构师从事更高层次的开发构架工作。
架构师首先要对架构的概念有一个正确的认识,能够发现概念背后所代表的问题,发现架构是在解决什么问题。什么是架构?我简单的理解为一种解决问题的模板。深入了解发现架构是为了解决由人执行的
工作、解决分工合理明确、提高生产效率的问题。架构对提高生产效率是很有帮助的?那么,怎么提高生产效率呢?除了科学技术带来的生产力的提高之外,剩下就是人的问题了。由于每个人的时间精力有限,
并且在同一时间一般只能专注做一件事,因此就有了分工。分工的合理明确就提高了生产效率。由此引用架构漫谈中的定义就不难理解了。1、根据要解决的问题,对目标系统的边界进行界定;2、并对目标系统
按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间;3、并对这些切分出来的部分,设立沟通机制;4、根据3,使得这些部分之间能够进
行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。
识别问题,架构师其次应该做好架构的识别问题。做好架构首先需要做的就是识别出需要解决问题的本质。如果把真正的问题找到,那么问题就已经解决80%了。那么如何识别问题呢?识别问题的一个最大前提
就是要搞清楚是谁的问题,之后边界也会确定,一旦确定主体,就去弄清楚主体有哪些问题,可以直接对主体进行访谈等具体寻找问题。架构师要解决的,基本都是别人的问题,来找架构师的问题,绝对不是真正的
问题,架构师一定要知道:发现问题永远比解决问题更重要。
系统分解,确定好问题之后,也就明白用户想要解决什么问题,架构师需要解决问题了。将系统进行分解,一般分为纵向分解和横向分解,纵向分解是将整个系统分层,从而将整体系统分解成下一级的子系统与组
件。横向分解是在系统分解成不同的逻辑层或服务后,对逻辑层进行分块,确定层与层之间的关系。
确定技术选型,在系统分解之后,架构师架构了软件整体架构,数据库的确定、前端用户的确定等各个方向的技术选型,架构师在技术选型阶段会提供参考信息给项目经理,项目经理再从预算、进度、人力、资源
等各方面情况来权衡,最终确认。
制定技术规格说明,架构师是软件开发过程中起指导性作用的人物,要有一定的组织能力和人员分工能力。制定技术规格说明时,架构师要协调起所有的开发人员,与开发人员保持沟通。
架构师自身要具备相当的专业技能,基础知识要扎实,review别人的代码并给出合理的建议,对于某一个技术领域或者业务领域,一定要有一门技术是精通的,因为这样你才能体会到以后遇到自己不懂的技术的时候,
如何能够快速成为这一方面的行家。最好能够在精通一门语言的基础之上,学习其他的语言,从而站在一个更高的角度,对于程序语言有一个更高层次的认识。
总结,架构师的工作职责是确定需求、系统分解、确定技术选型、制定技术规格说明书。