很多人对微信有一种技术上的敬畏感。
十几亿用户同时在线,每天几百亿条消息,红包、朋友圈、小程序、视频号,这么庞大的系统能稳定运行,背后的技术一定极其复杂吧?那些处理高并发、分布式事务、弱网环境的代码,一定是最顶尖的程序员才能写出来的吧?
是的,这些确实复杂。但我要说一个反直觉的判断:这些技术层面的复杂度,恰恰是整个微信里最容易被解决的部分。
所谓技术上的复杂,拆开来看,绝大部分是"边界情况"——也就是那些正常流程之外的意外场景。
两个人在同一毫秒给同一个群发消息,谁排前面?用户在地铁里信号时断时续,消息发了一半怎么办?有人发了一个红包但网络超时,钱已经扣了但对方没收到,怎么处理?一亿人同时抢一个红包呢?
听起来让人头大。但如果你仔细看,这些边界情况有一个共同的特征:它们本质上是有限规则的排列组合。
网络状态无非就那么几种——正常、弱网、断网、恢复中。用户操作无非就那么几类——发送、接收、撤回、重试。系统状态无非就那么几档——正常、过载、降级、故障。把这些维度交叉排列,你就得到了一个虽然庞大但有限的矩阵。每一个格子就是一个边界情况,每一个格子都有一个确定的处理方式。
排列组合,恰恰是AI最擅长的事情。
过去处理边界情况靠的是什么?经验丰富的程序员。他们写了十年代码,踩过无数的坑,知道"这种情况下大概率会出这种问题"。但人脑有天然的局限——你不可能穷举所有情况,总会有漏掉的。而且人会疲劳、会侥幸、会偷懒。
AI不会。
现在的AI测试工具已经可以自动分析系统行为,生成几千甚至上万个测试场景,覆盖人类工程师可能永远想不到的边界组合。而且它不会累,不会遗漏,每次执行都一样精确。
这意味着一件事:在整个软件开发过程中,边界情况的处理正在从"最容易出错的环节"变成"最可靠的环节"。因为它的本质是穷举,而穷举是机器碾压人类的领域。
如果技术复杂度不是最难的,那什么才是?
答案是判断。
微信做到今天这个体量,中间有无数个关键决策,这些决策没有一个是技术问题。
要不要做朋友圈?做的话要不要有评论功能?评论功能要不要让所有人可见,还是只有共同好友可见?后者的体验更好但技术上更复杂,值得吗?
要不要做公众号?做的话是鼓励长文还是鼓励短内容?是让所有人都能发,还是设置门槛?如果所有人都能发,内容质量下降了怎么办?如果设置门槛,会不会扼杀了潜在的好内容?
要不要做红包?春节红包应该是定额还是随机?随机更好玩但有人手气差会不会不开心?随机的算法应该偏向均匀分布还是偏向极端?哪种更能刺激传播?
这些问题没有标准答案,没有最优解,无法穷举,无法用排列组合来覆盖。它们是价值判断——取决于你想让这个产品变成什么样,你对用户心理的理解,你对社交关系的洞察。
一个不同的判断,就是一个完全不同的产品。微信和米聊的代码质量可能差不多,但判断力的差距让一个成了国民应用,另一个消失了。
边界情况可以穷举,判断不能。
因为判断涉及的是人——人的需求是模糊的、矛盾的、不断变化的。用户说"我想要简洁",但真给他一个极简界面,他又觉得功能少。用户说"我要隐私",但看到别人的朋友圈又忍不住想看。用户自己都不知道自己想要什么,你怎么穷举?
而且判断还涉及时机。同一个功能,2013年做是对的,2018年做可能就是错的。微信在早期刻意做减法,如果现在一个新社交App还学微信做减法,大概率活不下来,因为用户的期待已经变了。
判断力来自于对人的理解、对市场的感知、对时机的把握,甚至包括一点审美和直觉。这些东西AI目前做不了,我甚至怀疑AI未来相当长时间内都做不了。因为这不是一个计算问题,这是一个关于"什么是好的"的问题。
如果你现在问我,未来做软件产品最核心的能力是什么,我的回答不是编程,不是架构,不是算法,甚至不是AI技术。
是判断力。
知道什么该做,什么不该做。知道先做哪个后做哪个。知道做到什么程度就该停下来。知道用户嘴上说的和心里要的不一样。知道一个功能上线之后会怎么改变用户的行为,而那个改变是不是你想要的。
技术问题正在被AI消化掉。代码可以AI写,架构可以AI设计,边界情况可以AI穷举,测试可以AI覆盖。这些都会变成水电煤一样的基础设施,便宜、稳定、随时可用。
当技术不再是瓶颈,所有的竞争都会回到同一个起跑线上:你到底理不理解你要解决的那个问题,你到底懂不懂你要服务的那群人。
这件事,不需要会写代码。但它需要你真正懂一些关于人的东西。而这种"懂",暂时还没有什么AI能替你完成。
我建了一个AI学习群,目前几十来人,都是在真正动手学AI的人。如果你也在自己跑模型、写代码、做项目,欢迎加我微信,备注"你在做的AI方向",我拉你进群。纯围观的就不加了,群里大家都在真搞。
