职场求生攻略
臧萌
PayPal 数据处理组技术负责人,《Java 入门 1 2 3》作者
11259 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 34 讲
结束语 (1讲)
职场求生攻略
15
15
1.0x
00:00/00:00
登录|注册

25 | 系统架构:如何从写代码的程序员,成长为软件系统架构师?

你好,我是臧萌。这一节,我们来聊聊软件系统架构师。软件系统架构师简称架构师,它可以说是每个做技术的程序员心向往之的职位。这个职位对于很多人,还有些许神秘的味道。在这节课里,我就来和你谈谈我眼中的软件系统架构师,它其实并没有那么神秘。

软件系统架构师是干什么的

架构师的输入

软件系统架构师的工作,有两个输入。一个输入是要解决的问题,这里说的问题,可能是一个系统,可能是某一类相似的业务等,我们也可以把它认为是一个产品。另一个输入是为了解决这个问题,所能使用的资源。这里说的资源,包括系统的工期、团队和公司的技术储备。以及人才储备、业界可以使用的技术、公司的基础设施等等。
也就是说,在架构师的输入里,一手是问题,一手是资源。当然,这两个东西不是一步到位的,不会有人准备好送给架构师,而是架构师要自己去深入了解和摸索。

架构师解决问题的理念

随着对问题理解的深入,架构师会在脑子里慢慢形成自己对问题的理解。这时候,架构师作用中最重要的一点就会慢慢形成,那就是架构师解决问题的理念。换句话说,就是架构师如何定义这个要被解决的问题。
问题本身要尽量客观地去认识,但是如何看待和定义一个问题,就不是一个客观的事情了。这会受到每个人的理念影响。其实对一个问题的定义,很大程度上就决定了如何解决一个问题。架构师看问题的理念不同,也直接影响了应对问题的不同方案。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

软件系统架构师是程序员成长的目标之一。成为一名合格的架构师需要夯实技术实力,注重架构师能力培养,以及保持开放的心态。首先,程序员需要打好学习技术的基础,理解程序设计的技巧,并建立自己的技术领地。其次,要注重看问题、理解问题、分析问题的能力,从熟悉自己做的系统的架构设计开始,学习优秀的开源框架的架构设计,并主动承担一些小模块的设计工作。最后,软件系统架构师需要保持开放的心态,不固守己见,跟上发展,打破常规。文章强调了架构师的个性化职业特点和对问题理解的深度能力,以及对行业和技术的积累和眼界的重要性。总的来说,成长为软件系统架构师是一个逐步有侧重地走的过程,需要实际经验的积累和开放的心态。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《职场求生攻略》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • Sdylan
    如何脱离问题而构建出来的架构,不要去看,基本都是费的。好的架构都是从业务问题来的,然后再抽象出来。一个很好的例子就是Kafka。看完此文章后,也开始慢慢理解公司设计出来的内部架构,以前觉得这玩意不就是那Spring系列,值得这么整么。其实发现是自己对业务的理解过于狭窄,随着接触的业务多了,开始慢慢明白为啥这么做。总之,架构师首先是业务架构师,本质上是业务与架构的tradeoff,关键是对问题思考和抽象层度。

    作者回复: 有内味了有内味了~! 所以你也理解为什么软件工程师有饭吃吧,个人的理解,不是为了重复造轮子,虽然都是轮子,但是对于每辆飞速行驶的车,对轮子上各种细节的雕琢,都可能会对业务带来巨大的提升,这辆业务的车是在沙漠里开,还是在湿路上开,还是在山路上开,都会对轮子提出非常具体的要求。甚至沙子是细沙还是粗沙,都不一样。所以只要全世界的业务还都没挪到软件系统上,只要业务还在发展,软件工程师就一直有饭吃。 当然,重新造轮子,得到最大锻炼的就是架构师。架构师要珍惜珍惜再珍惜每一个重新造轮子的过程,深入理解公司业务的需求,构建业务模型,打造能帮助公司飞驰的轮子。这种公司花钱出人让人得到实践锻炼的机会,遇到了做梦都能笑醒。

    2020-07-13
    10
  • 有学识的兔子
    1. 我有个疑问,有哪些方式可以让自己更好地获得业务信息;有哪手段可以帮助自己熟悉业务;熟悉业务之后怎么指导自己工作并提升工作业绩呢? 2. 我不是构架师,但觉得自己承担了一些相关的职责;例如:基于理解架构的设计前提下,去添加新业务功能时,尽可能对业务进行抽象分离关注点并依赖现有组件或合理扩展组件功能来实现。 3. 有的,似乎有些共同点:熟悉业务,对负责的业务未来几年的发展有比较清晰的认识;骨干架构简洁,即使后续各种原因堆砌了“烂代码”,对系统的影响仍然是局部;还有对业务的适配比较好,设计能对应业务,基于此开发,难度不高; 看了这些问题,我也想借老师经常用的做饭例子来回答。 1.职责;

    作者回复: 你貌似没写完哈哈哈。 获取业务的信息,先从自己做的系统入手。虽然我们平时最多的工作可能就是写代码。但是我们要想理解业务,还是要能跳出代码的世界,理解自己所做的系统解决了业务的什么问题。这个可能要具体系统具体分析,但是很多时候,我们所做的系统都远比我们自己想象的要更重要。 很多时候,正是像你所说的,“骨干架构简洁,即使后续各种原因堆砌了“烂代码”,对系统的影响仍然是局部;还有对业务的适配比较好,设计能对应业务,基于此开发,难度不高;”。这时候,业务的精髓都在架构里了,而业务开发很多时候只要做一些外围的事情,无需理解全局也能产出成果。但是,这并不是对自己的发展有利的事情。 我还是回到做饭的例子。核心的架构和系统搭建好了,就好像有了一个自动炒菜的机器。平时做业务代码,就是洗菜切配,按照菜谱喂给自动炒菜机。然后菜就做好了。感觉好像做菜就是这么简单,但其实真正核心的业务并不是洗菜切配,而是这个自动炒菜机。 如果要熟悉业务,我们就要克服自己的惰性,顺藤摸瓜也好,打破砂锅问到底也好,把自己系统的业务吃透。我可以给你一个方法你试试看。就是顺着数据这条路走。摸清自己业务的数据从哪里来的,分别代表什么含义,经过了哪些系统处理,这些系统又对数据做了哪些事情。 然后就是自己的系统,摸清数据在自己系统里的各个流向和处理方式。数据最终落地到了哪里,或者返回给了哪些系统。 最后就是再顺着数据走,看看这些落地的数据或者返回给别的系统的数据,是如何被使用的。

    2020-07-14
    2
  • Eden Ma
    哈哈遇到过只虚头巴脑,但是一直无法落实,还把责任甩给组员说是他们太菜,老写一些烂代码,还说历史遗留问题太多无法解决,需要一个得力助手让公司招,还谁都瞧不上,半年也招不到的架构师。

    作者回复: 架构师要做的是根据资源解决问题的事情,不是列出问题强调难度、推卸责任的事情。 历史遗留问题,人员水平问题(如果真的是的话),都是架构师需要考虑的问题。架构师最没资格说这有问题那有问题。 啥都没问题还要架构师干嘛。

    2020-07-18
    3
    1
  • 王智
    从大学时期就有一个思想:写代码其实就是创建一个世界,这个世界怎么创建,完全是由你来决定的。直到现在我依然这么觉得,只不过毕业工作近两年,感觉自己的进步不是很大,接下来该静下心来思考思考了。

    作者回复: 打好技术基础,这是构建世界的基本能力。

    2020-07-14
    1
  • 源以南
    做起事情来,多想多学多看多问多尝试。架构师级别的能力自然而然就会有。能力的提升没有捷径,就是时间和精力的投入。

    作者回复: 投入时间精力,自己主动思考。

    2020-11-10
  • E
    让你的工作经验跑赢工作年限,是唯一可以避免年龄危机的办法。

    作者回复: 嗯呐,年龄增长,靠拼时间精力,靠硬怼,会越来越吃力。俗话说拳怕少壮,乱拳打死老师傅。职场上年龄大了,继续靠这种蛮力拼杀,会越来越吃亏。 从技术路线上来看,随着工作年限的增加,要越来越注重自己内功的修为。比如,系统架构,理解业务等。不要再痴迷于高投入,低输出的事情,要注意让自己投入的时间和精力,可以用在完成更高阶的工作,完成那些需要经验积累才能完成的工作。

    2020-10-12
收起评论
大纲
固定大纲
软件系统架构师是干什么的
架构师的输入
架构师解决问题的理念
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部