引言
1,需求整理分析
有人认为架
构师是在需求规格说明书完成后介入的,但我认为架构师要从项目最开始的阶段就参与进来.理由有很多:首先,第一手的信息损失最少,架构师能够更好的把握需
求;其次,分析人员在与客户交流时,往往不会深入挖掘需求,因为有很多隐藏的需求客户自己都不见得意识的到,而架构师则可以依靠敏感的软件嗅觉发现这些需
求,减少以后的变数;第三,分析人员往往脱离开发团队,盲目接受客户需求,而架构师能够清楚把握现有的研发团队能做什么,不能做什么,提前预知风险,降低项目失败的机率.
2,系统分解
在收集完信息后,架构师需要将用户需求转化为软件需求,同时要补充非业务需求,如健壮性,扩展性等等.如何区分和化解用户需求与软件需求,如何有效把握用户需求与软件需求的区别,是系统分解的核心.这是最考验架构师的地方,也是只有架构师参与的工作.
3,技术选型
这一步要根据对软件需求决定项目该使用何种架构,开发模型,及依赖选项.如使用多层架构还是分布式架构,是瀑布模型还是RUP,是使用MySQL还是
SQLServer,是否需要使用企业库,是否需要使用ORM.但是,架构师对项目的技术选型要提供多种不同的方案,并为每种不同方案提供详细说明文档,
用来阐述每种方案的优势,劣势,可行性等内容.这些文档供项目经理或领导决策最终的技术选型.
4,系统设计
依据软件需求和技术选型,架构师需要和软件工程师一起将软件需求落实到软件详细设计说明书中.架构师负责将软件需求分解,重组织为子项目,子系统,组件和模块,以及它们之间的逻辑关系,从而形成不同的逻辑组成部分,最后还需要确定各个子系统及组件间的接口.这些都是作为进一步的团队分工的依据.同系统分解一样,系统设计是考验架构师能力的重要职责.
5,培训与指导
在软件详细设计说明书完成后,为保证项目的顺利进行,架构师需要对整个团队进行技术培训,让团队中的每个人明白自己的职责范围,该做什么,不该做什么.
在项目实施过程中,架构师需要参与到具体开发过程中,给与每个开发人员有效指导,以避免团队成员对系统设计的误解而造成项目的延误.在我看来,这点对于新
手比较多的团队尤为重要.因为国内新手的一个通病是眼高手低,刚学会了一点点就认为自己什么都会;当他们拿到真正的设计时又往往不知所措,畏首畏尾.
6,保持沟通
沟通是保证项目顺利开展的有效保障.架构师要从多方面跟踪项目进度,及时与项目经理或直属领导汇报项目进展,与技术开发人员沟通遇到的问题,如果是迭代开发,还需要与用户沟通需求变更.
如何成为一名优秀的Java架构师
架构与架构师
可能绝大多数的程序员都想成为一名优秀的架构师,每天都能从事技术架构的相关工作,编点框架代码,画点架构图,写点PPT,帅气地站在讲台上给程序员们进行技术培训.大家普遍认为,架构师的代码比别人写得少,但是工资却比别人拿得多,架构师是技术团队中技术最牛的人,别人搞不定的技术问题,在架构师眼中都是小菜一碟.
这样的人真的是架构师吗?
我们认为,他们不是架构师,而是技术专家.其实架构师与技术专家有着本质的区别,从他们所关注的技术方向来看,架构师更偏向技术广度,而技术专家更偏向技术深度
换句话说,架构师需要有较强的综合能力,他们需要接触的技术领域较广,但他们所掌握的技术专业能力却没有技术专家那么深.如果我们想成为一名架构师,那么就不应该把所有的精力都投入在某个技术领域上,而是要学会分散自己所关注的层面,做到在众多技术领域上都要有一定的深度.
架构师除了需要具备在技术上所需的"硬技能",还需要不断完善自己的"软技能",比如沟通、组织、学习等技能.有时候软技能可能比硬技能更加重要,甚至软技能还会影响自己的职业发展.如果没有较好的软技能,架构师将无法将自己所设计的架构顺利地移交到程序员们手中,并指导他们将其真正落地.架构师正是通过他们所具备的综合能力来带领技术团队,解决不断出现的技术挑战.
架构师的职责是什么?
我们的回答是:制定规范 + 指导落地.
架构师根据业务需求所制定的合理且可落地的技术规范,我们将这样的规范称为架构.
将架构工作做好犹如我们用两条腿走路一样,左腿迈出去表示"制定规范",右腿跟上来表示"指导落地"
如果左腿迈出去,右腿没跟上来,那不是架构师,可能是需要拄拐的人.然而,我们身边却有一些这样的不合格的架构师,他们只懂得制定规范,却忽略了指导落地.如果架构无法落地,那么就无法称为架构了.
此外,还有一些架构师认为,架构只是技术层面上的问题,自己设计的架构应该用到市面上最为流行的新技术,比如别人公司在用微服务,那么自己公司也要用起来.如果将架构工作脱离于业务需求,我们认为这不是做架构,而是玩技术.脱离业务来设计架构是对架构的不尊重.微服务是一种应用系统架构,需要架构师围绕业务进行设计.
但是,我们绝不要为了微服务而去微服务.
从事微服务架构工作的架构师,相比传统架构的架构师而言,所要求的技能更加全面.他们不仅仅是系统架构师,也是业务分析师,他们的责任重大且挑战艰巨.
从大的方向来看,微服务架构师需要具备以下基本职责.
(1)分析业务需求并切分微服务边界.
(2)定义架构规范与文档标准.
(3)确保微服务架构顺利落地.
(4)改善微服务架构并提高开发效率.
职责与挑战往往是无法分离的,微服务架构师必须面对并克服这些挑战.
(1)架构需要适应不断变化的业务需求.
(2)架构具备稳定性、扩展性、安全性、容错性等.
(3)使技术团队深刻理解微服务思想.
(4)展现微服务架构的价值.
我们认为,传统架构师转型为微服务架构首先需要做到的是深刻理解业务,而不是表面上了解需求.业务和需求其实是两码事,业务的背后反映了客户的刚需,而需求往往是产品经理根据业务刚需所指定的解决方案.作为微服务架构师,我们需要透过需求的表象去理解业务的本质.其次需要做到的是不断优化架构,让架构变得更加简单,更加轻量级.我们要将昨天最好的表现,当成今天最低的要求,只有在技术上不断要求自己,才能让架构变得更好.
总结
以 上就是我对Java开发大型互联网-如何成为一名优秀的Java架构师问题及其优化总结,分享给大家,希望大家知道什么是Java开发大型互联网-如何成为一名优秀的Java架构师问题及其优化.觉得收获的话可以点个关注收藏转发一波喔,谢谢大佬们支持!
1、多写多敲代码,好的代码与扎实的基础知识一定是实践出来的
2、可以去百度搜索腾讯课堂图灵学院的视频来学习一下java架构实战案例,还挺不错的.
最后,每一位读到这里的网友,感谢你们能耐心地看完.希望在成为一名更优秀的Java程序员的道路上,我们可以一起学习、一起进步!都能赢取白富美,走向架构师的人生巅峰!
本篇文章是由济南达内培训为您呈现,希望给您带来更多更好的文章,喜欢的朋友们可以添加微信公众号.
更多济南达内相关资讯,请扫描下方二维码