编写高质量代码--web前端开发修炼之道-编写高质量代码:web前端开发修炼之道
建筑师是一个神秘而神圣的名词。 作为软件开发领域的设计师,架构师肩负着太多的责任和挑战。 对于程序员或者工程师来说,架构师就像一个目标,一条路,或者一座山。 如何成为一名合格的建筑师? 建筑师应该具备哪些素质? 架构师如何实现持续成长和改进? 带着这些疑问,我们请来了InfoQ中文网的五位同时也是各个领域杰出的架构师或顾问的编辑,来聊一聊他们心中的“架构师的实践”。 他们是:
\
1) 在你心目中,架构师是什么意思?
\ 张龙:架构师是一个项目团队的灵魂。 他决定了整个系统的技术选型、总体架构和模块划分,也可能起到与领导沟通的作用。 从某种意义上说,架构师在很大程度上决定了项目的成败。 俗话说,火车跑得快,全靠头带。
王禹衡:对我来说,建筑师一直是一个很混乱的词。 似乎每个人的理解都有些不同。 我觉得架构师更像是一个投资人,需要权衡各方面的利益和风险,反复思考,最终得出一个现实可行的方案,力求以最小的风险获得最大的收益。
李明:在我看来,建筑师不仅仅是一个头衔,更是一种责任。 所谓“身在其位,谋其政”,我觉得建筑师更像是父母,而制度和项目就像孩子,需要建筑师耐心的呵护和培养。 完成一个项目绝不是建筑师工作的全部。 通过代码重构和架构改造,让这个项目像有生命一样逐渐成长起来,这才是架构师的最终目标。
\
2) 建筑师应该具备哪些技能或素质?
\ 宋伟:架构师应该具备一定的业务知识和业务分析能力,能够准确把握需求。 你必须有很强的学习能力,能够快速掌握新兴技术、框架和工具。 基本功扎实编写高质量代码--web前端开发修炼之道,能够把握技术方向。 良好的沟通能力,能够清楚地表达自己的意图和想法。
李明:代码能力是绝对必要的。 我见过太多只会画图的建筑师。 “知识通常是非正式的”这句话不适用于建筑师。 作为架构师,必须对系统的性能和可扩展性足够敏感,不仅要充分利用现有资源,还要做好长远规划。 另外,对业务的理解是很多技术架构师忽略的。 只有深入了解业务需求,技术才能派上用场。
赵杰:在我看来,一个合格的建筑师需要有开阔的视野。 各种平台、系统、项目可以随意组合。 唯一的目标是为正确的环境选择正确的方法。 这显然需要在成本和质量之间做出权衡。 作为架构师,要有很好的“弹性”。 在真实的环境中,你很少会遇到和过去一样的情况。 因此,也要求建筑师能够大胆尝试,灵活应对,务实严谨。 推测。 一个架构师还必须有足够的沟通和交流能力,以恰当的方式将自己的想法告诉别人,并根据别人的反馈不断调整自己的观点。 没有什么是永远正确的,但是一个人往往倾向于自己的结论,而作为一个合格的架构师,需要能够认识到自己的不足,并用各种方法来弥补。
王禹衡:建筑师需要放眼未来,从外部功能和内部结构两个方面考虑可能发生的变化。 正如周爱民所说,架构师在开发1.0版本时应该想到2.0、3.0,甚至更远。 但是,在考虑未来的同时,也不能脱离现在,不能因为对未来的假设而大大增加当前的开发成本。 如果未来不来,所有对未来的投资都将毫无意义。 因此,架构师需要平衡投资与风险的关系,以适当的风险获得最大的收益。 架构师需要具备良好的沟通能力,以便将自己的想法呈现给开发团队中的每个人,并确保整个团队对系统架构有一致的理解。 架构师不能避开并设计一个要么不可能实现要么成本高昂的架构。 同时,对于一个实际的团队来说,也需要了解团队成员的能力,知道什么样的结构可以做,什么样的结构不可以做。
张龙:很多优秀的架构师都是由优秀的开发人员转型而来,但并不是所有优秀的开发人员都能成为合格的架构师。 与架构师相比,开发人员需要承担的任务相对狭窄,他们最大的目标是写出优秀的代码,做好测试,写出高质量的文档; 而架构师要面对的则比较广泛。 除了过硬的技术,还需要良好的表达能力和宏观上对整个系统的把控能力。
\
3)架构师需要不断实践和提高的是什么?
\ 宋伟:扩展知识面,了解很多技术和框架的特点和适用范围。 了解非功能特性的相关技术和方法,包括可用性、容错性、可扩展性、扩展性等; 了解系统安全的技术和框架,系统性能和状态监控的知识和工具。 除了技术方面,架构师还应该拓展业务知识,不断提升业务分析能力。 要实现持续学习,就必须对各种技术、框架和产品保持浓厚的兴趣。 此外,还要掌握各自的优缺点和对应的适用场景。 学习的方式方法有很多种,但可以肯定的是,架构师之间经常交流对成长是非常有益的。 InfoQ 的“架构师”提供了一个很好的交流平台。 通过大家的广泛参与,相信《建筑师》能够起到分享经验、促进交流的积极作用。
李明:我觉得这个问题可以从两个方面来谈。 一方面,架构师要紧跟技术趋势,了解技术发展和趋势,运用新技术、新方法提高团队生产力,将技术转化为效益。 这就需要架构师更多地关注他们所在领域或社区的最新消息和报道。 最简单有效的方法就是每天查看InfoQ中文网。 另一方面,建筑师要培养自己的专业领域。 虽然从技术角度来看,很多解决方案都是通用的。 但是,从商业的角度来看,将多个行业的解决方案放到另一个行业中未必可行。 这就要求架构师必须对自己所在行业的业务有很好的了解,这也是平日里需要去实践的地方。
赵杰:建筑师的学习过程是痛苦的,也是美好的。 一个合格的架构师应该能够从学习过程中发现,至少要追求“建筑之美”,把建筑当成一门“艺术”,并且能够传播这种美,并带领技术团队将这种美转化做成产品,让更多人体验。
张龙:架构师的道路崎岖不平,充满荆棘和挑战,却是无数开发者的梦想。 架构师是多种技能和素质的结合。 每一个以此为目标的开发者都需要在日常工作中不断提升自己。 在此衷心祝愿建筑师的梦想能照耀到每一位有心人。 现实。
\
张龙还详细列出了一个合格的建筑师应该具备的素质和技能:
\ 曾有人说,20多岁的编程天才好找,30多岁的优秀架构师难找。 做建筑师有多难? 除了敏锐的洞察力,我认为一个好的架构师还必须具备以下素质:
\
通过以上的发言,我们可以看出,架构师必须是一个“多面手”,不仅在技术和业务上要“两手抓,两手都要硬”,更需要不断的实践和培训。 只有学习,才能成为一名合格的建筑师。 虽然这是一条充满挑战的道路,但也充满了乐趣和收获。 俗话说“险峰无限风光”。 读者们,你们准备好了吗?
\
本内容整理自《建筑师》8月刊编写高质量代码--web前端开发修炼之道,更多内容可免费下载《建筑师》。
\
为InfoQ中文网投稿或参与内容翻译,请发邮件至editors@cn.infoq.com。 也欢迎您加入InfoQ中文站的用户讨论群,与我们的编辑和其他读者进行交流。