1. “手写代码已老”这句话,到底在哪条赛道上才成立
我们上一家公司有个内部审批系统,开发团队花了三周做出来,上线两周后又因为审批流程调整要改代码,改完还要发版、走发布窗口,业务方在群里催了三次,研发负责人也委屈——明明需求一变就响应了,是流程本身就重。项目复盘的时候,带过几十人研发团队的老技术人说了句:“以后谁还手写这种玩意儿?”
这句话我第一次听只觉得是气话,后来认真琢磨,才发现它放在特定场景下是有道理的。手写代码在这个时代没有被淘汰,但大量本该用低代码承载的需求,确实不该再一行行手敲了。这篇东西不是劝所有人都去拥抱低代码,而是想把手写与低代码的边界讲清楚:哪些场景下低代码确实应该“立”起来,哪些场景手写代码依然是唯一答案,以及最容易被忽视的一点——两者从来不是替代关系,而是分工关系。
如果你正在评估低代码选型,或者被老板一句“咱们要不要上低代码”问住了,再或者你是一线开发,担心自己的饭碗被拖拽画布抢走,这篇内容都值得看完。
1.1 断言从哪里来:不是技术过时,是供需环境变了
“手写代码已老”这个判断,不是从技术先进性出发的。Java、C++、TypeScript当然都活着,而且活得很好,单论语言能力,低代码平台那些可视化规则连它们的尾灯都看不见。问题出在需求侧。
十年前一家公司有三五套系统就够用了:一套ERP、一套OA、一套财务,剩下零星报表都靠Excel顶一顶。但现在的业务运转越来越依赖数字化工具,光内部系统就能拆出几十个:库存核对、客户跟进、渠道对账、活动报名、审批流、数据看板、门店巡检、设备报修……每个需求都不复杂,但架不住量大、变化快。
结果就是开发资源被拖拽得干干净净。我见过一个交付团队,全年投入几乎全在内部后台系统的增删改查上,核心产品的功能迭代反而要排队。需求方等得急,开发也委屈——整天写CRUD,技术成长在哪里?
低代码登场的核心逻辑,不是“用手写不行了”,而是“用传统方式生产这些低复杂度系统,单位成本越来越不划算”。标题里说“当立”,本质上是供需矛盾积累到了一个临界点。不是新技术打败了旧技术,是环境变了,工具得换。
1.2 手写的真实成本:多写一百行,就多一百行要养的“债”
很多人对“手写代码成本低”有误解,觉得写个后台管理页面也就一两天,怎么算都比低代码贵不到哪去。这个账只算了建设成本,没算后面的持有成本。
一个内部系统,上线之后至少还有这些事情等着:业务方改了一个审批节点,你要找出逻辑、改代码、测试、走发版;部门调整了组织架构,权限树要重新设计,改完还要同步给所有相关系统;半年后对接了一个新系统,接口联调动一发牵全身;再到后来,写这段代码的员工离职了,新人接手光读代码就花了两个星期。
这些成本不会写进项目立项报告,但会实打实消耗公司资源。以我的经验,一个内部系统的生命周期里,维护成本通常远远超过建设成本。而低代码平台把这块边际成本压低了很多:配置改完即时生效,不需要发版;业务字段调整在页面上拖一拖就完事;流程变更画连线就行,不用翻代码。这个差异在“需求稳定”的系统中不明显,在“天天都在变”的系统中就是天壤之别。
1.3 低代码重新分配了什么
说“手写代码已老”,其实最准确的说法是“手写应用层代码不再是决定性工作”。低代码做的事情,是把原本需要人一行行敲出来的逻辑,拆成了三层:
第一层是平台本身,也就是低代码引擎,它一定要写代码,而且水平要求很高;第二层是配置工作,业务人员或者研发用平台搭建应用,这层用的是模型、规则、组件;第三层是集成对接,低代码生成的系统要接入企业的账号体系、核心数据库、消息通知,这又需要传统代码能力。
所以程序员并没有被低代码干掉,而是从“重复实现功能”里抽身出来,去干平台建设和集成整合这些更难替代的活。低代码真正重新分配的不是岗位,是精力。
2. 低代码不是玩具:拨开营销话术看它的能力边界
市面上低代码的宣传很多,看多了容易产生两个极端:要么觉得它无所不能,要么觉得它就是个给业务人员摆弄的玩具。两个想法都错得离谱。
它在我眼里更像“精装修交付的楼房”:开发商把户型、水电管网、墙面地面都做好了,你不需要自己抹灰、布电线,只需要挑户型、选软装、搬家具。但你不能因为它交付得快,就要求它变成一套你在宅基地上从打地基开始定制的独栋别墅——那是两种完全不同的施工方式,各有各的适用场景。
2.1 低代码到底做了什么:把高频逻辑变成可配置资产
低代码平台的核心逻辑,是把软件世界里高频出现的通用能力预先抽象成资产。常见的几个基础组件:表单引擎负责收集数据,流程引擎负责审批和状态流转,页面编辑器负责布局和展示,权限模型负责谁能看到什么、能改什么,报表引擎负责把数据汇总成图表。这些骨架在所有管理系统里几乎都一样,区别只在业务字段和流程走向。
传统手写模式是每来一个需求,都从零搭一遍骨架,哪怕这个骨架你已经搭过二十遍。低代码模式是骨架已经盖好,你只需要填房间用途。它节省的不是理解业务的时间,而是重复搭建骨架的时间,这部分通常占到一个管理系统开发工时的四成以上,省下来之后,剩下的时间就留给真正有业务价值的部分。
2.2 能力边界表:哪里能打,哪里最好不要碰
我根据自己的项目经验,把低代码的适用边界列成一张表:
| 场景类别 | 是否适合低代码 | 原因 |
|---|---|---|
| 内部管理系统(增删改查、权限、审批) | 非常适合 | 结构标准化、逻辑规则明确、需求变化频繁 |
| 流程类应用(工单、审批流、状态机) | 非常适合 | 可视化编排比写代码维护流程直观得多 |
| 报表与看板(聚合展示、多数据源) | 适合 | 数据接入和图表配置效率高,尤其低频报表 |
| 快速原型与概念验证 | 非常适合 | 一天出Demo,用来验证业务假设足够 |
| 轻量集成(消息、API网关、第三方接口) | 部分适合 | 简单编排可行,复杂协议转换还得写代码 |
| 高并发核心链路(交易主流程、秒杀) | 绝对不适合 | 性能、事务、可观测性都不可控 |
| 复杂算法与计算引擎 | 绝对不适合 | 低代码平台不具备承载复杂计算的结构 |
| 底层框架与中间件 | 绝对不适合 | 这是低代码平台本身赖以运行的底座 |
| 强实时低延迟系统 | 绝对不适合 | 可视化引擎的调度开销就是天然劣势 |
| 深度定制交互体验 | 不适合 | 炫酷动效和桌面级体验,低代码给不了 |
这张表不是我拍脑袋写的,每一项背后都有真实案例支撑,后面详细展开。
2.3 三个判断标准:结构、逻辑、变更
判断一个需求能不能上低代码,不需要看复杂指标,先问三个问题就够:
第一个,业务结构是否规则?如果需求能清晰拆成实体、字段、列表、详情、表单、报表,那低代码完全接得住。反过来,如果需求描述里到处都是“这是个例外”“这种情况比较特殊”,说明需求本身就不适合标准化,强行上低代码,最后大概率把例外条件堆成一座逻辑屎山。
第二个,业务逻辑是否确定?低代码擅长表达“如果A则B”的规则,擅长画流程连线,但不擅长处理逻辑本身还在演化中的业务。逻辑都没想清楚的需求,不管用什么工具,都会被改得面目全非。
第三个,需求变更是否频繁?这是低代码最容易被误解的优势——它不只是开发快,更是“以后改起来快”。如果一个需求上线后三五年都不动,那手写和低代码差别不大;如果一个月一变,低代码的维护成本优势就是压倒性的。
顺带提一个容易踩的坑:任何低代码平台都不可能覆盖所有需求,所以选型时一定要考察它的“逃生舱”——能不能写脚本、能不能自定义组件、能不能通过API对外暴露能力。没有逃生舱的平台,需求一到边界就只能干瞪眼。
3. 真实落地的三个样板场景:我见过它真刀真枪顶上去的地方
讲理论和边界终究抽象,我把这几年见过、参与过的低代码落地场景挑三个出来复盘一下。它们都不算“大项目”,但恰好说明了一个核心事实:低代码的价值,往往是靠很多个“小场景”累加出来的。
3.1 样板一:内部运营后台,从排队开发到自助搭建
有个做供应链的公司,运营部门每年要启动十多个新的业务工具:渠道对账表、仓库盘点单、司机考核表、客户回访记录……每一个单独拎出来都不难,就是一个实体加几个页面,配上审批和权限,团队里随便抽个初级开发都能写。但问题是,这些需求全部塞进排期表之后,核心产品的迭代就永远被插队。
后来他们搭了一套轻量低代码平台,把权限、表单、流程在平台里做成标准模板,运营同学自己按模板搭工具,两三天出一个。开发团队只负责三件事:维护平台稳定性、处理模板覆盖不了的特殊需求、把平台搭好的应用接到公司统一的报表中心和消息系统。半年下来,开发团队的人均重复性工作减少了六成以上,运营侧的响应速度更是质的提升。
这个案例里有句值得记住的话:低代码上线的不是某一个系统,而是一条“业务自助生产系统”的通路。
3.2 样板二:面向客户的服务流程,低代码做“接线员”
另一个案例来自一家提供售后服务的企业。他们的客户服务流程横跨客服登记、技术勘察、报价审批、工单派发、回访确认五个环节,参与角色有客服、工程师、财务、主管,流转条件多,而且业务规则每个季度都会调整。
传统做法下,每一次规则调整都意味着开发改流程引擎代码,测试回归,然后等发版窗口。业务方和开发经常因为“为什么改个审批线要两周”吵架,本质不是因为开发偷懒,是因为手写流程的修改成本就是这么高。
后来他们把这段流程搬到低代码平台上,用可视化连线把五个环节编排起来,对接了原有的客户档案接口和财务系统的报价写入接口。低代码只做编排,不碰数据底层。业务规则调整时,业务运营人员自己进平台改流程配置,测试两轮就能上线,不用再等发版窗口。那个季度,流程调整的平均交付时间从两周压缩到两天。
但注意,这个案例成立的前提是底层的客户档案系统、财务系统API够稳定。低代码只负责“接线”,不负责“发电”。如果底层系统本身都天天在改,那低代码在这里也救不了场。
3.3 样板三:突发需求的快速响应,三天上线和一天上线
第三种场景更小,但频率极高:临时数据收集、一次性活动报名、短期市场调研。
举个例子,某地分公司临时要搞一个客户满意度调查,问卷要发到几万人,数据要实时汇总,还要按渠道、地区、时段出看板。按传统开发流程,前端要写、后端要写、数据库要建、权限要配,没有五天拿不下来。但用低代码表单加报表看板,一个上午就搭完了,当天投放,当天就能看到数据回流。活动结束时配置停用,数据导出归档,整个过程没有留下一行烂摊子代码。
这种短生命周期、结构简单、用完即拆的需求,本质上是“业务操作的一部分”,而不是“软件工程的一部分”。用手写模式生产它们是杀鸡用牛刀,低代码的短平快才是正解。
4. 选型保守派和激进派的通病:手写也不代表高质
低代码这个话题最大的争议不在工具本身,而在选型的人。我观察过太多团队,发现真正把项目带进沟里的,往往不是技术选型选错,而是选型时的心智模型有坑。
4.1 激进派的坑:把核心系统塞进表单引擎
比较常见的激进错误,是领导层觉得低代码“什么都能做”,把订单主流程、库存扣减、结算对账这种核心链路也塞进低代码平台。初期Demo演示确实快,页面拖一拖就有了,数据流画一画就通了。可一上生产,并发一起来,页面渲染调度、可视化引擎的执行效率就扛不住了。出了问题还很难排查——平台封装太厚,日志链路断在引擎内部,你根本不知道是哪个环节挂了。
这不是说低代码垃圾,而是说工具与场景错配。你不可能用精装修房的标准去盖一个需要抗震级别的数据中心,这是选型者的问题,不是低代码的锅。
4.2 保守派的坑:用“正统”拒绝合理工具
另一类常见错误,是把“手写代码”等同于“高质量”。不少技术团队为了证明自己的工程能力,坚持一切系统都从零手写,连内部的一个字典管理页面都要自己搭框架。结果是什么?业务方等不及,纷纷用Excel和在线文档管理数据,影子系统遍地开花,数据孤岛越建越多,比低代码还可怕——Excel根本没有任何权限、审计和流程约束。
技术人员的“正统洁癖”是可以理解的,但“手写”不等于“更可靠”。写三天接口文档才交付的后台系统,和低代码配置一天就上线并有权限管控的系统,在内部工具这个场景里,后者对组织的价值反而更大。
4.3 绕不开的三个争议:锁定、扩展、二次开发
选型讨论里逃不开的还有三个争议点,我经常被人问到,这里直接回答。
第一个是平台锁定。低代码平台确实存在锁定风险,但这取决于选型标准——数据模型是否可导出,应用配置是否可迁移,平台是否提供了开放API和命令行工具。真正成熟的产品会把数据自主权还给用户,选型时把“能不能带走数据”列为硬性考察项,比事后抱怨要明智得多。
第二个是扩展能力。没有平台能覆盖所有需求,差距在于遇到平台覆盖不了的需求时,你是只能绕路,还是可以写自定义代码块。看一个低代码平台的上限,就看它的扩展点设计:能不能自定义组件、能不能写脚本、能不能通过API网关进出流量。扩展点越开放,越能往核心场景渗透。
第三个是二次开发。低代码应用不是建完就完事的,它本身也是资产,也要做版本管理、环境隔离、变更记录。忽略这一点的团队,一定会为配置面板上的一次误操作付出代价。把这些工程纪律前置约定清楚,低代码项目的上限会高很多。
5. 组织里的角色会怎么变:程序员的产出重新分配
低代码对整个研发组织最深远的影响,不是省了几个开发名额,而是改变了“谁在做什么”的底层结构。这个变化不以任何人的意志为转移,越早看清,越能提前站位。
5.1 职位结构在变:配置师、组件工程师、平台管理员
过去一个管理系统项目,标配是前端工程师加后端工程师加测试。低代码引入后,岗位结构变成了另一种形态:配置工程师用平台搭建应用业务流程;组件开发工程师根据业务需求沉淀新的页面组件、规则包;平台管理员负责账号权限、环境管理、运行监控。
我第一次见到这种分工是在上一家公司的新部门里,最初也觉得别扭,但运行两个月后发现,这种拆法其实是在向成熟行业看齐——就像盖楼不再需要每个工人都自己烧砖,而是有人专门烧砖、有人砌墙、有人铺管线,每个人只在纵深方向上钻得更深。问题不在分工本身,而在于每个人有没有找到新的不可替代性。
5.2 程序员没有被淘汰,而是从写功能变成搭平台
很多人担心低代码让程序员失业,我理解这种焦虑,但从实际项目看,低代码平台普及之后,程序员的需求反而更集中在高价值的“平台层”。登录认证、权限模型、数据字典、组件库、集成网关,这些过去每个项目都要重复做一遍的东西,在低代码模式里被沉淀为平台能力,一次建设,全组织复用。
也就是说,程序员的产出从“实现功能”升级为“沉淀能力”。写代码的人并没有变少,但写的代码离业务价值更近了。我自己感受很深的一点是:以前想到某个业务要建个后台系统就头疼,现在的第一反应是“这个字段模型怎么设计、权限怎么分、哪些组件需要新建”——问题从“怎么实现”变成了“怎么设计”,工作的含金量是上升的。
5.3 低代码一样需要工程纪律:配置也要代码评审
特别想纠正一个误会:低代码不需要工程纪律。实际上低代码应用的项目管理和配置管理一样要严肃对待。配置面板上的每个改动都是变更,应该有记录、有评审、有回滚预案;应用里的每个页面都要有命名规范和归属人;数据和权限要从一开始就做最小化管理。
我见过一个团队,低代码平台用了一个月,页面就建了三百多个,命名混乱到分不清是给哪个部门用的,权限也全用管理员账号统管。这种状态下,低代码平台本身就变成了一个新的技术债仓库,比写烂代码还难收拾。低代码只是换了生产方式,并没有豁免管理义务。
6. 我个人的决策框架:先划边界,再谈技术,最后算总账
说了这么多,最后给一套我自己这些年一直在用的决策框架。每次有人来问我“这个项目能不能用低代码”,我都走一遍同样的流程。
6.1 四步判断框架:复杂度、频率、技能、生命周期
第一步,看需求复杂度。把需求拆成“流程复杂度”和“规则复杂度”。流程复杂并不可怕,低代码可视化编排反而更直观;规则复杂才是麻烦,逻辑分支多、依赖深的需求,需要谨慎评估平台的表达上限。
第二步,看变更频率。这决定了低代码的价值比重。一个半年内必然调整流程和字段的需求,低代码的维护优势非常明显;一个三年都不会动的稳定系统,手写和低代码的差别就被拉平了。
第三步,看团队技能。这里说的不是团队会不会写代码,而是团队有没有能力驾驭低代码平台的扩展点。只会拖表单的团队,和能自己写自定义组件、能接API网关的团队,使用同一个平台,产出和风险完全不同。平台选型不只是选产品,也是在选自己团队的能力上限。
第四步,算生命周期总账。把系统未来三年的建设、维护、改版、交接、培训成本全部折算出来,再和手写方案对比。多数项目算到这一步,结论就已经很清晰了。
6.2 一个可以直接抄的决策表
不同场景给出一版我常用的结论,可以直接作为初步参考:
| 项目类型 | 我的建议 | 一句话理由 |
|---|---|---|
| 内部简易后台、报表、审批流 | 首选低代码 | 结构标准、变更频繁,低代码的综合成本最低 |
| 核心交易链路、实时系统 | 全部手写 | 性能和可控性要求高,低代码顶不住 |
| 复杂算法、重型数据处理 | 全部手写 | 这是低代码表达能力的盲区 |
| 流程型业务、规则经常调整 | 低代码加脚本扩展 | 流程用可视化,特殊规则用代码兜底 |
| 混合型系统(页面简单但核心模块复杂) | 分层混用 | 界面配置化,核心模块手写并对外暴露API |
6.3 我踩过的坑:没有“切换阈值”的混合架构会混战
说一个真实教训。我曾经参与的一个项目,原本定了纪律:低代码只负责内部后台和流程编排,核心业务模块一律手写暴露API。结果到了赶进度的时候,有人觉得“都用低代码拖不是更快吗”,把几个核心功能的页面也改成低代码实现,底层逻辑却还是手写服务。表面上看开发确实快了,但问题爆发在平台升级那一次——内部引擎接口变了,核心页面跟着崩了一片,团队排查了两天半,最后不得不回滚平台版本。
那次之后我们立了一条铁规矩:凡是核心链路的入口页面,一律手写;凡是内部管理类页面,一律低代码。中间没有灰色地带。混用的项目不是不行,但必须在立项时就把边界划死,不能靠每次讨论临时决定。没有明确阈值,每次“例外”都会把系统往混乱推进一步。
6.4 收回唯一结论:边界清晰比工具选择更重要
如果把问题从“手写代码和低代码谁更强”换成“什么工作该交给什么工具”,很多争论其实根本不存在。低代码“当立”的地方,是那些规模不大、逻辑明确、变个不停的应用场景;手写代码固守的阵地,是核心链路、复杂算法、大规模性能敏感系统。这两条边界越清晰,组织的综合效率越稳定。
让我最后用一句个人体会收尾:“手写代码已老”不是一个事实判断,而是一个提醒——提醒那些没必要的重复劳动,的确到了该交班的时候了。下一次再有同事跟我说“这个内部页面为什么要手写”,我不会再解释一遍低代码的好处,只会问他一句:这页面你打算维护几年?