第19章 特攻团队(1 / 2)
「深哥,真的只有十五天了?」
从会议出来后,林深坐在工位上,正在给绿萝喷水,动作不紧不慢,陆川凑到他旁边,声音压的很低。
「嗯。」林深确定的点点头。
「那……来得及吗?」陆川似乎有点不确定,但看着林深的状态,却是莫明的很心安。
林深放下喷壶,转过头看他:「陆川,如果你必须在十五天内学会游泳,否则就会淹死,你学得会吗?」
「我……应该会拼命学吧。」
「不是拼命,」林深纠正,「是『用一切方法学会』。拼命可能意味着胡乱扑腾,最终体力耗尽沉下去。而『用一切方法』意味着:找最好的教练,研究最高效的姿势,分析自己的弱点,在浅水区练基本功,在深水区练勇气。」
他顿了顿:「我们现在就是那个快要淹死的人。但好消息是,我们知道怎麽游泳——我们有技术,有产品,有团队。我们需要的不是恐慌,是方法。」
陆川似懂非懂地点头。
「所以,现在该找方法了!」
林深从电脑里调出个文件,走向陈默。
「陈老师,关于我的负责的两个功能,我有个建议。」
「说。」
「这两功能虽然是我提的,但实现起来需要前后台紧密配合。」林深的目光扫过王浩和张维,「我建议成立一个临时『特攻小组』,我和陆川丶后台出一个兄弟丶客户端出一个兄弟,坐在一起开发。物理距离缩短,沟通成本降低,就像——」
他想了想:「就像把三根单独的绳子编成一股,绳子还是那三根,但结实多了。」
陈默略一沉吟:「可以。王浩,你派个人;张维,你也派个人。今天上午就搬过去。」
王浩从屏幕后抬起头,声音沙哑:「我让小李过去,他对消息协议最熟。」
张维点头:「程向东吧,他做过消息列表,对客户端状态同步有经验。」
「好。」陈默看了看林深,意思很明确,现在人给你协调了,该拿出你的方案了。
临时的特攻小组围绕着林深搭建了起来,而他也开始自己的分工。
「三位,」林深搓了搓手,「咱们接到的任务,本质上是在盖两座小房子。」
他在白板上画了两个歪歪扭扭的方框。
「这座,叫『@所有人小屋』。功能是:当群主或管理员发出一条特殊消息时,这消息必须『踹开』所有成员的门,跳到他脸上,大喊『快看我!』」
小李推了推眼镜:「技术上,就是定义一种新消息类型,伺服器识别后做强制推送。」
「对,但不止。」林深在房子旁边画了几个小人,「难点在于:第一,怎麽『踹门』才不让人反感?要明显,但不能吓人。第二,如果有人把门锁了(免打扰模式),我们是把门拆了,还是把消息从门缝塞进去?」
程向东接话:「视觉上,我们设计一个特殊样式的气泡,带震动或强提醒。免打扰模式……可以破例,也可以不破,这是个产品决策。」
「问得好。」林深在房子上画了个问号,「所以我们得先去『产品部』借把尺子,量量踹门的力度。这事儿交给我。」
他指向第二个方框:
「这座,叫『撤回后悔药铺』。功能是:发错消息的人,可以在短时间内吃一颗『后悔药』,让那句话从所有人的记忆里消失——当然,是数字记忆。」
小李皱眉:「技术上,撤回不是真删除,是标记删除。原消息还在伺服器,但客户端不显示。时间同步是最大的坑。」
「没错。」林深在药铺前画了一条歪歪扭扭的时间线,「A发消息,B和C同时在线,秒收。A在5秒内撤回。理想情况:B和C的手机上,消息『咻』地消失了,像变魔术。」
「但如果B当时在电梯里,没信号,10秒后才收到消息呢?」小程提出关键问题,「他看到的是一条已经『被撤回』的消息吗?那更诡异了。」
林深在白板上画了两个平行的时间轴,一个标注「在线」,一个标注「离线」。
「所以我们的『后悔药』得分两种。」他用不同颜色的笔画圈,「第一种,给在线的人吃『立即消失药』;第二种,给离线的人吃『从未存在药』。」
小李眼睛一亮:「你的意思是……伺服器要做判断?如果接收方当时在线,就走实时撤回同步;如果离线,就在他下次上线时,直接不给他推送那条消息?」
「对,但还有更复杂的情况。」林深在时间轴上又画了几个分支,「如果B在消息发出后第3秒离线,A在第5秒撤回。B第10秒上线——他该看到什麽?」
三人陷入沉默。
似乎他们没想到,一个小功能的开发,居然还有这样的问题。
陆川却像是突然明白了什麽,「深哥,就像三个人在不同的时区,试图同时点燃一根鞭炮。点火时间差几毫秒,有人听到『砰』,有人只看到烟,还有人刚捂住耳朵,鞭炮已经炸完了。」
林深赞许的眼神投了过去,他就说这小子是有点天赋的。
程向东随即问道:「那怎麽办?统一时区?」
「不。」林深摇头,眼神变得锐利,「我们得接受『时差』的存在。撤回的本质不是让消息『从未发生』,而是让它在『社交层面』失效。所以我们的设计原则应该是:尽最大努力让所有人看到撤回效果,但接受极少数边缘情况下的不一致。」
他在白板上写下几个大字:
「撤回不是时间魔法,是社交契约。」
小李盯着这几个字看了几秒,缓缓点头:「我明白了。技术方案上,我们可以这样设计……」
接下来的两个小时,三人的讨论从抽象比喻落地到具体协议。林深用他那些看似疯癫的比喻,把复杂的技术问题拆解成一个个生动的场景,让三个人频频点头,甚至偶尔会心一笑。
陈默端着水杯经过时,听到林深正在说:
「……所以我们的消息协议里,要加一个『撤回标记』,就像给消息戴上一顶『我死了』的帽子。客户端看到这顶帽子,就把消息藏起来。但如果客户端还没来得及见到消息本人,只收到一顶帽子——」
他双手一摊:「那就把帽子挂墙上,等消息本人来了,一看帽子,哦,我死了,自行消失。」
程向东笑道:「那要是消息本人永远不来呢?」
「那就永远挂着帽子。」林深也笑,「一座衣冠冢,纪念一条从未谋面的消息。」
陈默听得一愣一愣的,端着水杯走回自己工位,低声嘟囔:「这四个人……这都什麽跟什麽啊……算了,疯就疯点吧,我也快疯了!」
逻辑梳理的差不多,林深又走向了李婷。
「婷姐。」
李婷抬头,看见是林深,表情微妙地顿了一下,随即恢复职业性的平静:「有事?」
「李经理,关于@和撤回的两个产品细节,需要您拍板。」林深开门见山,把刚才讨论的几个关键问题列在纸上,推到李婷面前。
李婷快速扫了一眼,眉头微蹙:「免打扰模式下,@消息要不要破例?这确实是个问题。」
她思考了几秒,看向林深:「你的意见呢?」
「我的意见是……」林深顿了顿,「看我们想塑造什麽样的『群主权威』。」
李婷挑眉,示意他继续说。
「如果把群主比作船长,成员是水手。」林深用手指在桌面上画了一条船的轮廓,「正常情况下,船长用喇叭喊话,水手可以选择听不见——比如戴着耳塞。但如果船长拉响的是『警报』,意味着有冰山或海盗——」
他看向李婷:「这时候,耳塞应该被强制摘掉吗?」
李婷沉默片刻,缓缓道:「你的意思是,@消息分等级?普通@和紧急@?」
「可以这麽设计。」林深点头,「或者更简单:群主的@一律破例,管理员的@不破例。这传递的信息是:群主有『最终紧急呼叫权』,但这权力要慎用。用多了,水手会觉得『狼来了』,真到冰山时,他们可能已经学会无视警报了。」
李婷的手指在桌面上轻轻敲击,这是她深度思考时的习惯。
「有道理。」她最终点头,「就按这个思路:群主的@破例,管理员的@不破例。但要在产品文案里解释清楚,避免滥用。」
「好。」林深在纸上记下,「第二个问题,撤回的时间窗口。多长合适?」
「竞品一般是几分钟?」李婷反问。
↑返回顶部↑