架构师到底该不该写代码?

简介: 选取了一部分大家可能会感兴趣的问题,汇总此文。

提问:网上有个很有争议的问题“架构师到底该不该写代码?”,您对此怎么看?我旗帜鲜明的认为:架构师应该写代码
做架构设计需要了解业务,任何脱离业务的架构设计都是耍流氓
我比较反对一个公司成立一个所谓的架构师部门,把控全公司所有的架构师资源。我建议是每个业务研发团队都自己的架构师,深入了解业务,针对业务的特点去设计系统架构。

画外音:没有一个架构方案,适用所有的业务场景。


要贴近系统,所以得看代码,写代码。即使完全没有时间去写代码的话,至少详细设计的每一个细节架构师都需要清楚。CodeReview也非常重要, 保证代码至少是有两个人看过 ,而且它的实现逻辑和详细设计是一致的。


我对架构师的建议是: 有时间的话,亲自去写核心代码,如果没有时间的话,要把关详细设计并安排资深工程师去做CodeReview。


提问:当前互联网技术更新非常快,您认为架构师对此应该持什么态度? 先说个人观点,我认为: 对于新技术,需要去关注,学习,研究,但应用到线上,一定要慎重


到家集团、快狗打车的技术体系,拿存储来举例,选择很多,MySQL最成熟,我们就用它,统一非常重要,一定 不能是哪个团队想用什么就用什么 ,统一能够节省很多招聘、运维、测试成本,遇到问题能够查阅社区资料,通过行业牛人沟通快速解决。


提问:大家觉得架构师的知识宽度是很广的,那会不会有什么都懂、什么都不精这样一种现象存在? 首先什么都懂是绝对不可能的,什么都精也是绝对不可能的。
虽然业务不一样,但是 架构设计思路上肯定会有通用的地方
以我个人为例,曾经做过几百万同时在线的即时通讯系统,它肯定有架构领域内通用的东西,比如接入、数据、可用性、扩展性、一致性等,所以这些经验对我后面做推荐系统的设计,支付系统,打车系统等,设计思路上有很大的帮助。


架构师对于知识的宽度和深度都是有要求,我心中合格的架构师,是 “π型人才” ,除了技术宽度,还要有两条腿:一条是 专项深度 ,还有一条是 通用能力 ,比如表达、沟通、解决问题、创新等。


提问:有很多立志于成为架构师的人不知道如何开始?沈老师能不能给一些比较具体的建议? 我认为架构师之路分为 三个阶段 第一是打基本功的阶段 对应我自己的话就是职业生涯的前三年,语言、数据结构、算法、设计模式、研发工具、调试工具等,基本功没打好,其他的一切都是空谈。


第二阶段是业务的深入与技术深度的积累。对于我来说,业务的深入,是职业生涯前五年在即时通讯领域的打拼。业务的深度决定了进入一家公司的时候,你的身价,一个公司要解决某个业务问题,就必须有针对性的招相关的人才, 能够解决某个业务领域内的大部分技术问题,才是你的核心竞争力 画外音:核心竞争力不是Java工程师,而是XX工程师(XX是一个业务前缀,例如即时通讯),很多技术同学容易走偏。


第三阶段,π型人才的另外一条腿,即通用素质。就是你的执行力、责任心、推动能力、沟通表达能力、项目管理能力,这些会让别人觉得你是靠谱的。 在技术能力大家都差不多的情况下,一个事情为什么交给你来做? 因为公司觉得你是靠谱的,靠谱这个评价很高。


提问:没有完美的架构,那好的架构有一个什么样的标准呢? 架构是为业务服务的, 能够满足业务的需求 并且 对它的扩展性多考虑一步 ,我觉得这样的架构就是合适的。 画外音:请注意,是多考虑一步,不是两步,不是五年后。


我曾经被问到“快狗打车从14年发展到现在,架构迭代了很多版,如果回到14年重新做架构设计,其架构会不会是现在的样子”,答案是一定不会跟今天一个样子,一定还是和14年时候一个样子,那个时候的架构,适合那个阶段。
架构不但是设计来的,更是演进而来的。


提问:很多技术人关注公司的技术氛围,技术氛围建立有什么经验分享么?
提几个点吧: 第一,指导人机制很重要。就是任何一个技术人一定会有一个高职阶的人带,有任何技术上的问题一定是有人可以交流和解答的。
第二,技术评审很重要,技术评审是一个很好的契机让大家沟通交流和讨论技术上的问题。
第三,分享机制很重要,每个团队内部定期组织技术分享,让大家沟通交流。 包括我也每周会花时间和团队的同学做一些技术的交流和沟通。


提问:PHP是世界上最好的语言吗? 技术的同学在讨论的时候要避免讨论两个问题,一个是哪种语言是世界上最好的语言,第二个要避免讨论的是Vim好还是Emacs好。
以上纯属 个人看法 ,分享自己认为对的东西。
调研: (1)贵司是 ppt型 架构师,还是 代码型 架构师? (2)贵司是 深度型 架构师,还是 广度型 架构师? (3)贵司是 针对业务 的架构设计,还是 针对晋升 的架构设计? (4)贵司有没有 指导人 评审 分享

最后给有志于成为架构师的同学一个建议: 多学习、多交流、多沟通

本文转自“架构师之路”公众号,58沈剑提供。

目录
相关文章
|
3天前
|
SQL 前端开发 关系型数据库
如何开发一套研发项目管理系统?(附架构图+流程图+代码参考)
研发项目管理系统助力企业实现需求、缺陷与变更的全流程管理,支持看板可视化、数据化决策与成本优化。系统以MVP模式快速上线,核心功能包括需求看板、缺陷闭环、自动日报及关键指标分析,助力中小企业提升交付效率与协作质量。
|
25天前
|
NoSQL 数据可视化 安全
如何开发一套车辆管理系统?(附架构图+流程图+代码参考)
本文介绍了如何通过搭建车辆管理系统(VMS)帮助企业摆脱传统管理方式,实现流程化、可视化、合规化和自动化。内容涵盖系统架构、关键功能模块、数据模型、API设计、前后端实现及实施建议,提供可落地的技术方案,助力企业降低隐形成本、提升管理效率与透明度,实现数据驱动决策。
|
7天前
|
JSON 文字识别 BI
如何开发车辆管理系统中的加油管理板块(附架构图+流程图+代码参考)
本文针对中小企业在车辆加油管理中常见的单据混乱、油卡管理困难、对账困难等问题,提出了一套完整的系统化解决方案。内容涵盖车辆管理系统(VMS)的核心功能、加油管理模块的设计要点、数据库模型、系统架构、关键业务流程、API设计与实现示例、前端展示参考(React + Antd)、开发技巧与工程化建议等。通过构建加油管理系统,企业可实现燃油费用的透明化、自动化对账、异常检测与数据分析,从而降低运营成本、提升管理效率。适合希望通过技术手段优化车辆管理的企业技术人员与管理者参考。
|
7天前
|
消息中间件 缓存 JavaScript
如何开发ERP(离散制造-MTO)系统中的生产管理板块(附架构图+流程图+代码参考)
本文详解离散制造MTO模式下的ERP生产管理模块,涵盖核心问题、系统架构、关键流程、开发技巧及数据库设计,助力企业打通计划与执行“最后一公里”,提升交付率、降低库存与浪费。
|
10天前
|
消息中间件 JavaScript 前端开发
如何开发ERP(离散制造-MTO)系统中的技术管理板块(附架构图+流程图+代码参考)
本文详解ERP(离散制造-MTO)系统中的技术管理板块,涵盖产品定义、BOM、工序、工艺文件及变更控制的结构化与系统化管理。内容包括技术管理的核心目标、总体架构、关键组件、业务流程、开发技巧与最佳实践,并提供完整的参考代码,助力企业将技术数据转化为可执行的生产指令,提升制造效率与质量。
|
10天前
|
消息中间件 JavaScript 关系型数据库
如何开发一套ERP(离散制造-MTO)系统(附架构图+流程图+代码参考)
本文介绍了面向离散制造-MTO(按订单生产)模式的ERP系统设计与实现方法。内容涵盖ERP系统定义、总体架构设计、主要功能模块解析、关键业务流程(订单到交付、BOM展开、MRP逻辑、排产等)、开发技巧(DDD、微服务、事件驱动)、参考代码示例、部署上线注意事项及实施效果评估。旨在帮助企业与开发团队构建高效、灵活、可扩展的ERP系统,提升订单交付能力与客户满意度。
|
25天前
|
NoSQL 关系型数据库 BI
如何开发一套固定资产管理系统?(附架构图+流程图+代码参考)
固定资产管理涉及采购、入库、维修、盘点、报废等多个环节,是企业资产保值增值的关键。本文详解固定资产管理系统(FAMS)的核心功能、系统架构、资产全生命周期流程,并提供功能设计、开发实操技巧与关键代码示例,涵盖台账、申购、入库、报修、处置、盘点等重点模块。内容聚焦企业落地实践,帮助提升资产管理效率、降低风险、保障审计合规。
|
4天前
|
监控 供应链 前端开发
如何开发ERP(离散制造-MTO)系统中的财务管理板块(附架构图+流程图+代码参考)
本文详解离散制造MTO企业ERP系统中财务管理模块的搭建,聚焦应收账款与应付账款管理,涵盖核心功能、业务流程、开发技巧及Python代码示例,助力企业实现财务数据准确、实时可控,提升现金流管理能力。
|
4天前
|
供应链 监控 JavaScript
如何开发ERP(离散制造-MTO)系统中的库存管理板块(附架构图+流程图+代码参考)
本文详解MTO模式下ERP库存管理的关键作用,涵盖核心模块、业务流程、开发技巧与代码示例,助力制造企业提升库存周转率、降低缺货风险,实现高效精准的库存管控。
|
3天前
|
前端开发 API 定位技术
如何开发车辆管理系统中的用车申请板块(附架构图+流程图+代码参考)
本文详细解析了如何将传统纸质车辆管理流程数字化,涵盖业务规则、审批流、调度决策及数据留痕等核心环节。内容包括用车申请模块的价值定位、系统架构设计、数据模型构建、前端表单实现及后端开发技巧,助力企业打造可落地、易扩展的车辆管理系统。