写了三年CRUD,很多人会陷入一种隐秘的焦虑:每天在Controller、Service、Mapper之间来回穿梭,需求一个接一个,代码越写越熟,却感觉离“架构师”越来越远。增删改查本身没有错,错的是我们只把系统当成一张张表、一个个接口。真正的瓶颈,从来不是CRUD,而是CRUD思维。
从“实现功能”到“理解质量属性”
CRUD三年,最容易形成路径依赖:产品说要一个订单列表,你就写分页查询;说要导出,你就加个Excel工具类。但架构师会先问:这个列表给谁看?数据量多大?延迟要求多少?是否允许脏读?下游有没有缓存?如果数据库挂了,这个功能能不能降级?
功能只是冰山一角,水下的非功能属性才是架构的核心。一个订单查询接口,可能涉及索引设计、读写分离、缓存一致性、限流熔断、链路追踪、灰度发布。你不需要每一层都亲手实现,但必须知道它们的存在,并能在设计时做出取舍。突破的第一步,就是每次接到需求,强迫自己多问五个“如果”:如果流量涨十倍?如果数据量过亿?如果依赖服务超时?如果部分节点宕机?如果需求三个月后要扩展?
从“技术点”到“架构决策”
很多开发者喜欢追逐技术:Redis、Kafka、Kubernetes、Service Mesh。但架构师的价值不在于用了多少组件,而在于能否在约束条件下做出合理决策。比如,为什么选最终一致性而不是强一致性?为什么用单体而不是微服务?为什么这个场景适合CQRS,而那个场景只会增加复杂度?
建议从写ADR(架构决策记录)开始。每次做技术选型,用一页纸写清楚:背景、备选方案、决策、理由、代价。坚持半年,你会发现自己的思考从“哪个技术更酷”转向“哪个方案更合适”。这是从执行者到设计者的关键跃迁。
从“我的模块”到“系统全景”
CRUD三年,你可能只熟悉自己负责的两三个服务。但架构师必须看得见全貌:系统的上下文边界在哪里?数据在哪些服务之间流动?部署拓扑什么样?故障会如何传导?画图是最好的训练。试着画出你所在系统的上下文图、部署图、数据流图,然后问自己:如果我要加一个新功能,会影响哪些节点?瓶颈最可能出现在哪里?
更进一步,主动参与线上故障复盘。不要只关心自己的代码有没有bug,要关心整个链路为什么没有兜住。故障是系统最真实的反馈,也是架构思维最好的教材。
从“交付代码”到“交付价值”
架构师不是技术官僚,而是用技术解决业务问题的人。你需要理解业务目标:公司靠什么赚钱?当前最大的成本在哪里?效率瓶颈是什么?一个看似“低级”的CRUD优化,如果能减少30%的客服工单,它的架构价值可能高于引入一套时髦的微服务框架。
学会算账:这个重构能节省多少机器成本?能减少多少人力?能提升多少转化率?当你开始用业务语言描述技术方案,别人才会把你当成架构师,而不是“写代码的”。
从“个人贡献”到“技术领导”
架构师的影响力不来自职位,而来自判断力和推动力。主动写文档、做技术评审、带新人、制定规范、推动自动化。不要等有了架构师头衔才做这些事。你可以从一次分享开始,从一份设计文档开始,从一个跨团队的对齐会议开始。当你的方案被采纳,当你的规范被遵守,当你的判断被信任,你已经在履行架构师的职责。
三年CRUD不是枷锁,而是土壤。它让你熟悉了业务的血肉,现在你要做的是长出系统的骨骼。每天留出一小时,读源码、画架构、写决策、复盘故障。一年后,你不会再问“如何成为架构师”,因为那时你已经走在成为架构师的路上。