到底怎样的程序员能称为架构师,程序架构师很厉害吗

本人 作为一名具有10余年后端开发经验的大厂在职架构师,结合本人自身一些浅薄的认知,来认真回答一下这个问题。

0、写在前面

首先,我相信每⼀位程序员都有⼀颗迫切成⻓的⼼。

程序员的成⻓的路上最重要的就是架构设计思维升级,在工作中,我⻅到过很多技术能⼒很强的程序员同学,对于技术能⼒和架构设计如何进⼀步提升依然不能很好的把控,这是因为架构设计的思维方式和具体写代码之间有很大差异,加之许多同学甚至不清楚一名合格的架构师是需要做什么,存在很多误区。

在具体工作的方案设计中,在实践过程中把握不住重点、分不清主次;或者没有彻底掌握架构设计的原则,就容易在具体设计上举棋不定。

其实作为架构师,不仅要知道当前⽤户的需求是什么,还要对需求未来可能出现的变化做出合理预判。预判什么会发⽣,⽽什么⼀定不会发⽣。在这其中,后者更为重要一些,只有这样才能真正防⽌架构的过度设计,把简单的事情复杂化。

要成⻓为优秀的软件架构师,关键在于:掌控全局

⽆论你是个架构新⼿,还是有⼀定经验,希望关注我的公众号「架构精进之路」,里面的架构实战干货分享,希望能够给你的成⻓带来⼀点可汲取的养分,相信只要跨过架构设计思维升级这道鸿沟,就可以变得海阔天空。

1、架构师需要具备什么能力?

可以明确的一点是:一个合格的架构师有责任来帮助团队的进步。

作为该角色的人员,他应该具有非常不错的技术视野/经验以及良好的沟通技巧。他对项目或产品的技术方向负责(准确地说是对结果负责),并作为跨团队沟通的首选人。

对于大中型团队而言,架构师主要的职责包括:

1)指导项目的技术设计及制定开发规范

例如。我们将使用什么技术,我们将如何交付项目,我们将使用哪些模式等。

2)分析风险和跨功能要求

分析风险意味着降低风险:我们可以选择某种方法,还是说有太多未知数。

3)指导/教练经验不足的新人

很可能在你的团队中有不同的经验的同学。一旦谈到项目成本,考虑匹配技能和经验时,它就变得很有意义。因此,需要重视对经验不足新人的培养。

4)关注跨团队协助与沟通

一个项目团队包含各个相关联角色群体,研发、测试、产品、运营甚至需求业务方等等,其他角色同学可能在技术上不如开发人员,他们将使用不同的语言,技术Leader 将需要关注于这一点,并做好协调与沟通。

2、如何做一个合格的架构师?

架构师通常 是一份包含技术和管理双重责任的工作,准确地说应该是:先技术,后领导。

那在实际工作过程中,需要注意做好哪些点呢?

1)倡导技术创新与变革

倡导技术创新与变革,建立积极的思维模式。当一个流程缓慢或者繁琐时,要尝试去改变它,使其变得更好。

在我们的研发过程中,希望改进的是团队的效率和乐趣,以及软件项目的最终交付。

2)坦然面对失败与成功

  • 事情有可能会失败,不用过分担心失败

技术方案落地可能失败,项目开发建设可能失败、部署上线可能失败、系统重要监控点可能被遗漏、系统宕机崩溃可能会发生。

如果你已经为失败做好了十足的准备,那么应该会比较容易应对。

当事情失败时,不要寻找责怪的人!你是技术 Leader,有承担的责任和义务。从失败中汲取教训,将塑造您的方向,并在未来做出更好的决策。

  • 学会为成功喝彩

当团队有成就感时,成员们会感受到快乐,同时积极的情绪会让后面的工作尽可能做到最好。庆祝阶段的小成就非常重要,例如成功地冲刺或完成的功能。

3)保持技术

架构师有很多非编码职责,但不要忽视实践技术活动是非常重要的。

密切关注代码的演变:一段时间后,您所做的实际编码量可能会更低,但您需要及时了解代码的演变。您需要了解系统及其技术限制。

4)良好的时间管理

作为架构师,您应始终为您的团队服务;提问、支持、指导或做出决定。

  • 技术设计 为团队(包括您)准备工作。确保清楚需要实施什么以及如何实施。这通常会考虑很多质量属性,如网络,安全性等。
  • 业务:与客户交谈,查看他们的需求和目标,并将这些与项目的技术愿景相匹配。
  • 项目管理:定义用户故事,估算,跟进。
  • 代码:编写代码,进行代码审查等。

5)成为团队导师

一个好的架构师:

  • 知道什么时候给予输入
  • 知道何时做出决定
  • 知道什么时候退后一步,让团队获得更多的所有权。

分担责任,给予所有权,但同时要保持负责。

到底怎样的程序员能称为架构师,程序架构师很厉害吗

 

6)学会做评估

项目工时评估很难,如果你经常这样做,你会变得更好,但你仍然会有可能犯错。

作为架构师,掌握评估是一生的旅程,它会让你与众不同。合作方会将你与专业、稳定和高质量的工作联系起来。

7)擅长与外部沟通对接

非技术利益相关者使用的语言可能与开发团队的语言是不同的。架构师 必须找到一种以非技术人员可以理解的方式交流思想的方法。

这在 DDD (领域驱动设计)世界中,这意味着建立一种连接上下文通用语言。

与客户密切合作,尝试从他们那里检测需求,并不断地将他们的需求与正在进行的实施相关联。

3、总结

作为架构师,除了以上列举的几项之外,还存在其他很多软性的素质能力。

欲求木之长者必固其本, 欲求流之远者必浚其源:

  • 业务感知的背后, 是对商业社会的理解, 是对需求的洞察;
  • 人员培养激励的背后, 是对人的理解, 是对人性的洞察。

总结就是:每个人都是团队的一员,应该重视每个人的意见。

因为你团队的力量不是单个成员的才能,而是他们的合作,坚韧和相互尊重的整体效能的体现。

到底怎样的程序员能称为架构师,程序架构师很厉害吗

 

我是张张,「架构精进之路」公号作者,欢迎大家同我一起交流,一起学习成长~

热心网友回答

到底怎样的程序员能称为架构师?首先要知道架构师是做什么的,架构师主要职责是确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。

那么怎样从一个程序员成为架构师呢,我总结了以下几个方面:

意识方面

首先程序员自身想往架构师方向发展,然后换位思考与架构师的差距,该如何努力才能符合一个优秀的架构师,所以关注范围是不同的,程序员专注于具体细节,而架构师专注于“宏观视角”,整体大局出发,所以不能只专注写代码。

技术方面

架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作,所以要想成为架构师,自身的技术能力一定要提升,基础一定要扎实。还有就是要去掌握一些知识来提升自己的抽象能力,提高自己的建模能力,因为架构师所需要具备的就是能够从很纷繁复杂的需求当中抽象出一个共同的东西出来。

平时积累方面

优秀的架构师要满足业务需求和能够灵活对各个人士的技能,同时也对了解多种框架熟悉应用,清洗明确适应场景,这些都需要程序员长期的积累,从开发工作中提升自己的技术,从项目中积累中提升业务能力。

架构师专注宏观,但通晰微观;开发框架,又精通需求;熟练当前技术,还能前瞻未来发展。成为一个架构师绝对不是一朝一夕就能突破的,是要从基础开始一点一滴积累而来。而作为程序员更是要打好自身的基础,开拓自己的视野,用自律的心态和积极向上的意识敦促自己,跨越台阶,成为合格的架构师。

热心网友回答

作为一名从业多年的IT人,我来回答一下这个问题。

首先,架构师是程序员发展的一个重要方向,也是IT行业中的重要岗位。

一个软件产品的开发需要一系列角色的配合才能够完成,从一个产品的设计到最终的部署需要产品经理、策划、交互工程师、视觉工程师、架构师、产品经理、程序员、测试、运维工程师等一系列角色的配合。

到底怎样的程序员能称为架构师,程序架构师很厉害吗

从研发的角度来说,程序员可以简单划分为两类,一类是设计,另一类是实现。负责设计的程序员通常也就是所谓的研发级程序员,主要解决系统级问题,比如平台的研发、接口(API)的设计等工作,通常针对的是行业级问题。而负责实现的程序员通常是所谓的应用级程序员,通过接口来完成平台功能的调用从而实现具体的业务逻辑,工作的重点在于具体功能的实现,往往针对于具体的应用场景。

技术领域的架构师也通常分为两个大类,一类是平台架构师,另一类是应用架构师。平台架构师制定的是平台的研发策略和技术指标,通常要结合功能定位和行业定位来进行具体的设计。平台架构师通常是研发级程序员成长起来的,同时具备一定的行业前瞻性。比如James Gosling(Java创始人)和Linus Benedict Torvalds(Linux创始人)就是典型的平台架构师。

通常所说的软件架构师大部分指的是应用架构师,针对于具体的应用场景给出软件产品的设计方案、技术选型和接口设计等,通常应用架构师需要对各种平台产品有较为清晰的了解,并能够紧跟技术发展趋势来不断优化设计方案。另外,应用架构师需要具备一定的行业背景,对于方案的技术瓶颈有丰富的解决方案。应用架构师通常是应用级程序员成长起来的,往往具有多年的行业开发经验。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网方面的问题,或者考研方面的问题,都可以咨询我,谢谢!

(0)

相关推荐