程序员必须懂的架构入门课

程序员,真有必要了解架构吗?

在解答这个疑惑之前,我们先来看一则故事:旅行者路过某个工地,建筑工人们都在忙碌。出于好奇,旅行者问第一个人在干什么,那人头也没抬地回答道:我在搬砖。旅行者问第二个人在干什么,这个匆匆抬起头认真地说:我在砌墙。旅行者问第三个人在干什么,那个人脸上充满了光彩,很自豪地说:我在建造圣索菲亚大教堂,将福音传播给更多人!

有的人只关注眼下的“点”,有的人看到了延伸的“线”,还有人畅想出未来的“面”。就像在丛林中穿越,当你迷路找不到方向时,最好就是登上山顶或者爬上树冠,让自己有更宽广的视野,从而找到通往目的地的最佳路径。既要脚踏实地、低头赶路,也要抬头望天、畅想未来,正确的方向比速度更重要。接下来,我们来看看架构跟你的“点、线、面”关系。

  • 一点

跟垒土坯房不同,建造摩天大楼离不开各式各样的设计图纸,构建复杂的应用系统也离不开架构设计。相信你所在的团队也配了架构角色,或由资深开发兼任,或由专职架构负责。不管你从事哪方面工作,包括产品、开发、测试、运维或项目等,你都要跟架构师打交道,例如:产品可研、概要设计、技术选型、详细设计、测试规划、部署规划、问题解决、招聘面试等等。如果对架构缺乏了解,那你就不清楚你跟架构师之间的协作界面,不知道架构师能给你提供哪些支持或帮助,不知道如何跟架构师高效地协作。如果只关心自己眼前的一亩三分地,那你很容易就滞留在“搬砖”层级。

  • 二线

中年危机,35 岁定律,这些命题对于你来说都是客观存在的。随着 IT 技术的不断更新换代,普通程序员在市场上竞争力跟年龄成反比,除非你能提前构建出转型升级所需的新技能树。如果沿着技术通道发展,可选的晋升方向有两个:技术专家,扎根于某个垂直的技术领域,往纵深发展;架构专家,构建出更加全面的技术体系,往广博发展。虽然进化方向不同,但殊途同归,最终帮你战胜危机、突破自我,晋升到更高的职位,获得了更好的薪酬。如果个人性格特质更适合往架构方向发展,那你有必要提前了解架构师的主要职责和必备技能。十年磨一剑,五年小成,十年大成,转型升级所需的专业技能不是一朝一夕就能练就的。如果你现在就主动筹备 35 岁这场战役,那你很容易从”搬砖”跃迁至“砌墙”。

  • 三面

学而优则仕,即使修炼成了技术大神,但个人能量总归是有限的,管理岗是所有通道的终极进化方向,只有带领更多人,你才能做更大的事。在互联网行业,“科技是第一生产力”体现的最为淋漓尽致,不管往产品还是管理发展,拥有深厚技术背景都是优势。架构师,从某种角度看,就是全面了解各种技术或中间件的优劣,然后让它们在你所设计的方案中扬长避短、优势互补,发挥出最佳的合作效用。这跟产品维度的业务架构、管理维度的组织架构有异曲同工之妙,等你从技术架构中学习到知人善任、调兵遣将、排兵布阵等道理,那你就可以站上更高的平“面”了,从“砌墙”跃迁至建造宫殿。

25 岁入行搬砖,30 岁前担任技术经理、兼职架构,35 岁前转型应用架构专家,一路走来老兵哥我积累了大量转型、架构、培训和咨询等实战经验。近些年我将这些经验做了整理输出,曾面向初中级程序员开设过多门面授架构课程,累计参训学员超千人,颇受好评。接下来,老兵哥我准备在 CSDN 这个分享平台,把大家关注度最高的这些架构问题梳理出来,希望你持续关注:

  • 架构到底是什么?它都有什么作用?
  • 架构的演进过程,不同架构的特点?
  • 架构风格、模式、框架的相互关系?
  • 架构设计的输入、输出和工作流程?
  • 不同岗位应该关注架构的哪些方面?
  • 是否有标准来评价架构设计的优劣?
  • 架构师核心职责和必备能力有哪些?
  • 哪些特质适合往架构专家方向发展?
  • 架构专家需要搭建怎样的知识体系?
  • 如何从资深开发成功转型架构专家?
  • 架构师之后有哪些可选的发展方向?

今天先分享到这里,如果你觉得有价值,麻烦动动手指 转发 给其他需要的小伙伴。另外,老兵哥我后续还会分享职业规划、应聘面试、技能提升、影响力打造等经验,关注「 IT老兵哥 」,赋能程序人生!

posted @ 2019-11-25 16:22  IT老兵哥  阅读(2416)  评论(0编辑  收藏  举报