把活儿省下来 · 集 02:给活儿起名字——一次干好,随叫随到
把活儿省下来 · 第一部第 2 篇(零代码)
你有没有发现两个奇怪的现象:
- 写程序的人,越厉害,重复的东西越少——他不是不干活,是把活儿提前装进了"盒子",要用就喊一声名字;
- 带团队的人,越厉害,天天挂在嘴边的越不是"你这步该这么干",而是一份标准作业手册——新人照着做就行,他不用每次手把手教。
这俩人,一个写程序,一个管工厂,看着风马牛不相及。但这集我要告诉你:他们干的是同一件事——把"怎么干"从某个人的脑子里掏出来,变成一个"按名字就能取用"的标准件。 软件里这东西叫"函数",管理里这东西叫"标准动作"。名字不同,魂是一个。
这一集要讲透这颗药是怎么来的,以及它怎么把集 01 的三宗罪治掉第一宗。
一、软件那边:函数,就是把一段逻辑装进"保鲜盒"
一听"函数"俩字,很多人脑子里浮现的是数学课 y=f(x),当场犯困。打住,咱不这么讲。你就把它想成家里的保鲜盒。
1.1 案发现场:同一段活儿,干了五遍
接着集 01 那个网上商城说。系统里有个很常见的需求:算一张订单的总价——单价乘数量,满一千块打九五折。
就这么点事。第一个页面要用,程序员写了一段;过两天订单列表页也要显示总价,又是一模一样的算法,他复制粘贴过去;再过几天,购物车页、对账单、导出的报表……每个地方都要算总价,每个地方他都抄一遍。
五个页面,五份一模一样的"总价算法"。
然后有一天,促销规则变了:"满一千九五折"改成"满八百九折"。这下热闹了——他得把五个页面翻个底朝天,找出那五段算法,一处一处改。漏改一处,顾客看到的价格就是错的。
眼熟吗?这就是集 01 的病根:好办法存在,但每处都是手抄本,抄五遍就埋五颗雷。
1.2 解药:给这段逻辑起个名字,装进盒子
程序员的解法,朴素得会让你笑:把这段算法装进一个"保鲜盒",盒子上贴张纸条,写上"算总价"。
从此规矩是三条:
- 这段算法,全世界只此一份。 谁要用算总价,不许自己再抄一遍,只能"喊名字"——把单价和数量报给这个盒子,盒子算完,把结果递还给你。就像你家那盒贴着"红烧肉"的保鲜盒:想吃,按纸条找到它,开盖就能吃;想带给同事,也是拿这同一盒。
- 盒子只开一个窗口。 原料从窗口递进去(单价、数量),成品从窗口递出来(总价)。至于盒子里头怎么算的?封着盖,外面看不见也不用看。行话叫"封口"——内部的事是它的私人物品,绝不漏出去搅别人的局。
- 盒子的名字是一份合同。 "算总价"这三个字,就是它对全系统的承诺:报我单价和数量,我还你总价。所有用它的人,都是照着这个承诺干活的。
现在促销规则再变,会怎样?打开盒子,改一处,完事。 五个页面拿的本来就是同一个盒子,改完自动全对。
旧世界改规则的动作是"全项目找茬、找齐五处、逐处手改、祈祷没漏";新世界是"改一处、完事"。前者靠运气,后者靠结构。写程序的效率,从来不是比谁手快,是比谁改起来动静小。
1.3 这个念头,跟计算机一样老
有人以为函数是哪位大师灵光一闪。不是。最早的计算机贵得离谱、内存小得可怜,指令一条条存在"格子"里,格子根本不够用。于是最早的程序员就发现:把常用的那段指令放在一个固定位置,要用就"跳"过去执行,执行完再跳回来——省格子,省抄写。这段"存在固定位置、可供反复跳入"的指令,老前辈们起名叫子程序,就是函数的祖先。相当于格子房时代,大家就懂得了"公共工具放公共架子上,谁用谁去拿"。
注意一个关键差别:早期子程序省的是"格子",今天函数省的是"一致性"。 复用最早的推动力常常是资源紧张,后来的推动力才是质量和管理——这个规律,管理那边也一模一样,看到泰勒你就明白了。
给管理者划重点:函数就是"有名字的保鲜盒"——名字是一份契约,规定递进去什么、递出来什么;盒子只此一份,改一处全对。下面你看泰勒,会发现他给工人定的东西,跟这个盒子是同一个结构。
二、管理那边:泰勒的秒表,与"标准动作"的出厂
现在切到 1911 年的美国工厂——序章场景二里那位厂长老亨利,就活在这样的年代。他愁的事,这片土地上真有一位工程师,给出了成体系的解法。
弗雷德里克·泰勒是个工程师,他看着当时的工厂直摇头:每个工人干活的姿势、节奏、工具摆放,全凭老师傅带徒弟时口传心授——同样一道工序,十个人十种干法,效率天差地别,而且谁也说不清"到底哪种最对"。
这跟"同一个算总价的算法,五个页面五份手抄本"是不是一模一样?
泰勒干的事,翻译过来就是——把"怎么干"从老师傅的脑子里抽出来,用秒表测出"一种最好的干法",写在纸上,给它一个编号,谁干都得照这个来。
他最有名的一桩实验:让工人搬生铁。原来一个壮劳力一天搬约 12.5 吨就累趴了。泰勒团队把"铲多大一锹、走几步、歇几秒、怎么弯腰"全部测出来、定成标准动作,再训练工人照做——结果一天干到约 47 吨,人还没原先累。
这就是科学管理的三板斧:
- 工时研究:不再"凭经验估",用秒表实测出最优动作序列——相当于软件里"先想清楚这段逻辑到底要干嘛";
- 标准作业程序(SOP):把最优动作写在纸上、编上号,经验从某人的肌肉记忆变成写在纸上的公共资产——相当于"给逻辑起名字、装盒子";
- 差别计件工资:照标准干且达标的,单价更高——用制度让"照标准干"成为理性选择。
而且泰勒留了个跟"函数契约"一模一样的坑:标准一旦定下,就成了所有人的依赖。 你想改一道工序的标准?得重新培训、重新发文件、重新考核——牵一发动全身。这跟"改了盒子,所有喊过名字的地方都得跟着对"是同一个结构。
三、两张图叠在一起:函数名,就是标准作业号
把两边摆在一起,几乎能逐字对译:
| 软件:函数 | 管理:标准动作(1911) | 两边其实是同一件事 |
|---|---|---|
| 把一段逻辑起名、装进盒子 | 把一套干法测出最优、写成 SOP | 个人经验 → 组织可调用资产 |
| 函数的名字("算总价") | 标准作业号 / SOP 编号 | "按名字取"的契约 |
| 喊名字、递原料、收成品 | 照 SOP 干 = 按步骤执行 | 复用本体,而非重新发明 |
| 改盒子一处,所有用的人自动对 | 改 SOP 一处,全员重训 | 改公共资产牵动所有依赖者 |
| 盒内是私人空间,外面看不见 | 岗位边界:这活归谁、别越界 | 复用让人"放心"靠的是边界清晰 |
结论先拍这儿:函数和泰勒标准动作,是同一台机器的两个作品。 这台机器只干一件事——不断发现"还在重复的东西",把它的共性抽大一号、固化成可复用的资产,让一线执行者只需专注于"变化的部分"。 软件把"重复的算法"抽成函数;泰勒把"重复的动作"抽成标准动作。谁用谁按名字取,改只需改一处。
再留意一个共同的副作用:复用一旦发生,作者就不再是唯一的使用者,他的"私事"变成了"公共事务"。 函数改了,所有喊过名字的地方都得跟着对;SOP 改了,全车间都得重训。两边都为这份便利,付出了"改动要谨慎、要通知"的代价——这是后面每一集都会回响的主题。
四、这一集的账:函数(和标准动作)到底省了什么
省下来的:一段"怎么干"被定义一次、用到哪都对。它省的不再是某一份手抄本,而是"从此世界上只此一份真相,谁取到的都一样"。
怎么个省法:起名 + 按名取用。软件里是喊函数的名字;管理里是"照 SOP 编号干"。都不重新发明,只引用那个被验证过的原版。
省的代价:抽象需要先想清"什么是同一件事"。盒子装太多事("算总价顺便发短信记日志",就像一份 SOP 又管生产又管考勤),谁也不敢动;入口开太多(一个盒子要你报九样东西),用的人得做阅读理解。一句话:省事的办法是好东西,但装得乱七八糟的省事办法就是垃圾——真功夫在"这个标准件好不好拿、好不好懂"。
下一集说:好办法只有一个还不太够——得有人把它们批量打包上架,谁要谁取。
五、今天带走一句话
函数,是给一段"怎么干"起名字、装盒子:只此一份、开一个窗口、名字即承诺;泰勒的标准动作,是把一套干法测出最优、写纸编号、谁干照做。两者都是"把个人经验变成组织资产"的第一块砖——按名字取,只改一处。
而且这一集悄悄立了全栏的看家眼光:省不省事,从来不看"有没有复用",只看"复用品好不好用"。 名字是脸面,窗口是门槛,边界是信用——这套眼光往后衡量货架、零件、框架、平台,一路通用。眼光一旦养成,你看任何新办法的第一眼,就会自动问出那句话:这盒子,好不好拿?
但函数有个天生的限制:它一次只能装一段逻辑。那如果有一百个好函数呢——排序的、算利息的、查日子的——难道每个项目都把这一百段重新装一遍盒子?
总不能吧。得有人把这些好函数批量打包、统一上架。
这个"上架"的动作,就是下一集的主角:函数库——软件史上第一件真正意义上的"复用品货架"。

浙公网安备 33010602011771号