软件工程之美
宝玉
Groupon 资深工程师,微软最有价值专家
44272 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 55 讲
软件工程之美
15
15
1.0x
00:00/00:00
登录|注册

23 | 架构师:不想当架构师的程序员不是好程序员

选择好的平台,能给更多的实践机会
选择一个合适的行业
通过实践学习
先把业界成熟的流行的架构吃透
技术好是成为架构师的基础条件
能理解业务需求,设计符合业务特点的架构
有助于验证架构设计
需要大量的编码练习
通过文档、会议讲解架构给其他人听
需要和产品经理打交道
技术选型不能局限于一种技术
重要性在写程序时也很重要
好的架构设计是逐步演进的
提升开发效率的方法
通过对相同内容的抽象实现复用
通过约定好的协议集成分解后的部分
对复杂系统进行分解
从小学习的数学中获得抽象思维训练
为满足业务需求进行抽象
选择好行业和平台
多模仿多学习
成为优秀的程序员
懂业务需求
编码经验
沟通能力
技术深度和广度
迭代思维
复用思维
分治思维
抽象思维
如何成为好的架构师
好的架构师
架构师思维

该思维导图由 AI 生成,仅供参考

你好,我是宝玉,今天我想与你讨论一下要想成为架构师,你需要具备哪些能力。
很多程序员的梦想,就是将来能成为一名架构师。包括我刚学编程那时候,也是以当架构师为目标,觉得不想当架构师的程序员不是好程序员,希望将来能成为一个优秀的架构师。就像拿破仑那句名言:“不想当将军的士兵不是好士兵。”
随着工作经历的增多,我也开始参与到架构设计中。对架构设计了解的越多,我越发觉得,其实做架构设计,并不代表一定要有一个架构师的头衔。
拿破仑那句名言,原句是“Every French soldier carries a marshal’s baton in his knapsack”,意思是“每个士兵背包里都应该装有元帅的权杖”。
元帅的权杖,意味着大局观,元帅的思维方式。当士兵背包里装有元帅的权杖,就意味着士兵也能胸中有大局观,能有元帅的思维,理解元帅在特定战场上想什么,这样能更好的执行命令,提升整体的战斗力。
其实拿破仑的本意是激励每一名上战场的士兵都要有大局观,有元帅的思维,并不需要每一个人都一定去当将军、当元帅。
这也适用于技术领域,对于程序员来说,并不代表一定要有一个架构师的头衔,而是心中有大局观,有架构师的思维,从而能理解架构设计,能写出好的程序。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

成为好的架构师需要具备抽象、分治、复用和迭代等思维能力。架构师思维是这些思维的集合,通过抽象思维将业务需求转化为计算机可执行的模型,分治思维将复杂系统分解成简单部分并通过约定好的协议集成,复用思维提高开发效率,迭代思维逐步演进架构设计。这些思维模式在架构设计和日常编程中都有重要作用。程序员应该具备这些思维模式,以提高代码质量和开发效率。 要成为好的架构师,需要具备架构师思维、业务理解能力、丰富的编码经验和良好的沟通能力。成为优秀的程序员是成为架构师的基础条件,需要通过大量编码实践逐步培养架构师思维。此外,多学习业界成熟的架构设计,选择适合自己的行业和平台,积累行业知识和实践经验也是成为好的架构师的关键。 在选择行业和平台时,需要考虑行业领域的业务经验和技术结合的架构经验,这将成为个人独特的优势。好的架构师还需要具备良好的沟通能力,能够与产品经理反复确认需求,让团队理解架构设计。 总之,成为好的架构师并没有捷径可走,需要通过努力成为优秀的程序员,多学习架构设计,选择适合自己的行业和平台,并具备良好的沟通能力。这样才能设计出好的架构,组织好人员和技术,满足需求和需求变化,以及保证系统的运行。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《软件工程之美》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(16)

  • 最新
  • 精选
  • 易林林
    架构师是一个概念性职位,没有明确的界定,需要具备的能力和素质也是千差万别,每个开发人员心目中的架构师画像也都不一样,神秘的IT牛人,高级的保姆,无休的恶魔...。 在我看来,一名优秀的架构师应该具备良好的技术思维、产品思维和项目管理思维。技术思维是基础,评估技术难度、分析技术复杂度、准确把握技术方向,这些都是架构师在设计架构时面临的技术决策;产品思维是骨架,在产品思维上构建起来的整体全面的产品意识,可以对业务、功能、模块进行明确的抽象、分治、迭代等等;项目管理思维是方向,无论是敏捷管理模型还是瀑布管理模型,都需要在不同的时间、不同的环境条件下去关注金三角理论的取舍所带来的影响,降低技术以外对项目带来的局限性。 不过呢,架构师也不是想象中的那么神秘。开发人员和架构师的差别,最主要是层次和格局上的差别,导致最终产生了不同的结果而已。试想,两个能力相同的开发人员,一个的目标是每年涨工资(80%开发人员),他会去努力的多做事,拓展技术的深度;一个的目标是CTO(20%开发人员),他会去努力多做事,多思考,多学习,多交流,尽力做到面面俱到。几年以后的结果就不言而喻,至少坚定的目标能够推动过程的发展。

    作者回复: 👍严重认同。虽然说并不需要每个人都去当架构师当CTO,但是把架构师当职业目标,并且按照架构师的要求去努力,对职业成长的帮助是非常大的,今后可以选择的路会很宽。

    2019-04-20
    3
    16
  • Charles
    初浅理解: 互联网架构师无论是b应用还是c应用,目标是希望更多用户使用,所以必须要考虑到网络、并发性能、可用性、安全性已经各种存储的横向扩展等架构问题 企业架构师更多的是如何针对一个行业深度挖掘需求并抽象,把复杂问题简单化,最短路径满足多场景使用以及易扩展、易维护等架构问题 一个疑问,请教老师: 有着正常职位或头衔的架构师,一个全新的项目理解产品需求后进行架构设计,一般会产出哪些“东西”,来满足后续的架构讲解和项目开发过程中的沟通? 由于一直创业公司和小公司待着,有点不好理解,期待老师解答,谢谢

    作者回复: 👍我觉得你对互联网架构师和企业架构师很到位。互联网产品特点是用户多,企业产品特点是业务复杂,所以架构的侧重点不一样。 架构师在架构设计后,产出首先是架构设计文档,让大家理解架构。 然后还要写架构开发的文档,比如如何基于这个架构开发功能模块,有哪些公共API可以调用,怎么样是最佳实践,要遵守哪些规范等。 再要帮助搭脚手架和基础模块或示例项目,也就是要搭建一个最基础的可运行项目,通过这个项目,大家可以直观的理解你的架构是怎么落地的,通过基础模块或者示例项目,可以知道如何基于框架开发,后面就也可以照葫芦画瓢照着实现。 还有就是在开发过程中,要答疑、解决架构中存在的问题,对架构做优化,还要做代码审查,对于不符合架构规范要指出和修正。

    2019-04-20
    2
    11
  • alva_xu
    讲到架构,我想先得谈一下康威定律。康威在1967年曾说过,“Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.”通俗地说,就是组织形式等同于系统设计。所以系统架构设计的进化,是和组织形式的变化结合的。从ITIL来说,BIA,(business IT alignment)是IT的核心,所以充分认识组织的业务模式和运营方式,才能让架构师设计出适合于企业的系统架构,架构设计的最高境界就是适合企业业务的运营。从单体架构到微服务架构,从前后端分离到中台,都是架构适应业务(功能与非功能需求)的体现。所以架构师首先必须要有业务思维、产品思维。TOGAF把企业架构分成业务架构、应用架构、数据架构、技术架构四个子域,我觉得相当全面。 从程序员开始,如果能培养好老师讲的架构师能力模型中的四个思维和三个能力,我们可以给自己规划出一个架构师的成长路径,从单个业务应用开始,然后扩展到一个业务领域,最终到达企业架构师,甚至成为跨企业应用架构师的境界。

    作者回复: 👍谢谢你从组织架构维度的补充,组织架构和系统架构确实是相辅相成的关系,例如像微服务,一个拆分的原则就是看组织架构要不要细分,否则并不一定要分拆成微服务的架构。

    2019-04-22
    5
  • 青石
    经验积累就是个过程,付出的越多,努力的越多,收获自然越多。看源码学设计是件很不错的事情,当你思考为什么这么设计的时候,同样问题未来就很有可能按此设计。 成功的道路没有捷径,前面弯弯曲曲的道路,只是让你更容易面对后面的严峻陡峭。

    作者回复: 👍感谢分享

    2019-04-21
    4
  • dancer
    个人觉得架构师这个称谓在国内用过了。。。其中不乏一些PPT架构师。。

    作者回复: 是的,头衔不重要,还是看有没有架构师的能力水平。

    2019-04-23
    3
  • bearlu
    其实最难是选择行业,请问老师有什么建议?

    作者回复: 抱歉这个我还真没啥好的建议,通常第一份工作会对从事的行业有很大影响。 我建议你可以请教下你身边的朋友,同时结合下你自己的资源、特长、兴趣爱好等综合选择一下。

    2019-04-20
    3
  • hua168
    老师,我发现市面上很少有架构类的书,有几本感觉OK, 张开涛亿级流量网站架构核心技术》、陈康贤的《大型分布式网站架构设计与实践》、 李智慧的《大型网站技术架构:核心原理与案例分析》 感觉只是讲了一个大概而已,具体深入都是靠自己。 58沈剑的《架构师之路》,还有点详细,链接地址如下: https://www.w3cschool.cn/architectroad/

    作者回复: 谢谢分享👍

    2019-04-20
    3
  • hua168
    老师,你可以继续写个专栏叫《架构师之路》😄

    作者回复: 七牛CEO许式伟已经写了一门课《许式伟的架构课》,应该不错:)

    2019-04-20
    3
  • Dora
    关于最后提到的问题,我想到一点,不知是否正确。互联网架构,要考虑互联网很快的迭代速度,所以对于扩展等特别注意。企业架构,内部IT系统相对稳定,对比互联网架构,更简单?

    作者回复: 👍挺好的分析。 帮你补充几点: 互联网架构不仅迭代会快一些,用户规模通常更大,但业务也会单一些。 企业应用通常业务比较复杂,尤其是和行业会有一些结合,但是用户规模要小很多。 这些特点,都会影响架构设计的选择。

    2019-04-20
    2
  • 小老鼠
    1、可否结合具体案例,介绍抽像思维。2、发现成为一个好的架工程师构和成为一个好的软件测试工程师有许多相同之处。

    作者回复: 1. 举例来说,用户提一个需求,要做一个图书管理系统,那么你就需要针对这个需求,运用你的抽象思维,去抽象出来图书对象、抽象出来图书分类和图书的关系等 2. 👍是的,有很多共同之处

    2019-09-20
    1
收起评论
显示
设置
留言
16
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部