新三国外传——挥泪斩马谡

共 2489字,需浏览 5分钟

 ·

2021-10-17 17:10


小说连载系列是我第一次尝试的新的技术讲解方式,希望通过小说的形式将技术细节讲解清楚。

第二篇中长篇连载小说《新三国外传》,主要讲解一些架构、新技术以及程序员工作中的一些轶事,希望大家能够喜欢。


郑重声明:小说人物和故事情节取材自三国演义,作者融入了技术元素,做了大量修改,未经同意禁止任何形式的转载,侵权将进入法律程序。大佬除外。

欢迎大家转发文章,谢谢!




三国中后期,诸葛亮率兵开始蜀汉北伐大业,街亭当时是蜀国要道,派何人实现驻守街亭这一核心功能,深深考验着作为CTO的诸葛亮。


马谡


不过最近蜀汉口碑直线下滑,核心人员离职的离职,创业的创业,早已不是几年前良将如云随便挑的时候了。

诸葛亮左思右想,突然脑海中闪过一人。此人清北毕业博士学位,又有各大ACM程序竞赛金牌获奖经历,有着这种履历的人在蜀汉已经不多了,此人正是马谡。

诸葛亮正想重用此人,旁边参军说到,马谡从未做过实际项目,没有实战经验,恐怕不能胜任啊。

诸葛亮也想起刘备曾经对他说过,马谡言过其实,不可重用。但是马谡平时经常与诸葛亮讨论算法,各种奇淫技巧连诸葛亮都自叹不如,又是诸葛亮的嫡系,所以诸葛亮还是把这一核心任务交给马谡。


街亭


    话说马谡接到这一任务,马上开始召集众人开会,会上先是吹嘘一番自己的学历和竞赛经历,以服众人。

    

    然后开始分析项目核心业务逻辑,但是发现与自己竞赛时完全不同。

    

    竞赛时往往是几个单一问题,每个问题都有相当的难度,但是问题之间没有联系,只需要个人能力强,各个突破就行。

    

    但是驻守街亭这一核心功能,业务很复杂,工作量巨大,绝对不是一个人能完成的,所以它需要的是如何拆分模块进行解耦,模块如何设计接口才能方便其他模块调用,如何将各个模块有效组合完成复杂的业务功能。

    

    可是马谡哪考虑过这些,他赶紧拿出设计模式这本书,从书上找了几个复杂的设计模式,什么访问者模式,备忘录模式等往技术方案上照抄。


实施


手下将领们拿到马谡给出的技术方案叫苦不迭,不仅概念抽象复杂,更要命的是没有考虑细节,是一个典型的PPT方案。但是马谡也不管这些,他还自己实现系统中的一个核心功能模块。

他要求将士们加班加点,007的节奏来开发。但是这一天24小时的时间,大部分都花在开会重新讨论实现的各种细节上面去了,真正有效率编码的时间不到10%

幸好将士中有几个曾经跟过关羽张飞打过实战,学了一点皮毛,勉勉强强将功能堆了出来。


对接


到了对接的时候,将士们看到马谡的接口,从函数名根本无法知道是啥意思,也没有注释。没办法只能跟进去看代码,这不看不要紧,一看简直颠覆认知。

一些开会时规划的很清晰的业务,看到代码里面却是各种dp,dfs啥的,还有这样一段代码

a=a^b

b=a^b

a=a^b


将士们看半天看不懂到底啥意思。

马谡见状,嗤之以鼻,连这都不会?这是最简单的面试题,不用第三个变量交换两数呀。而动态规划,深度优先搜索,这些都是竞赛中最简单的题啊。

可是他不知道,写业务代码不是竞赛,业务代码要求的是可读,易懂,可维护,可扩展,这样才能和不同水平的人相互配合,更不容易出错

将士们虽然深深明白这个道理,但是也劝不动马谡,在马谡手把手的指导下,凌晨五点的时候,终于完成了对接。


攻陷


决战时刻到来,魏军张郃仅一回合,便将马谡击败。

原来马谡的线上系统还没有做过全链路测试,虽然每个人都给自己的模块写了很全面的测试,都能通过,但是合在一起的时候,由于工作量太大,难免有一些意想不到的错误发生。

平日里一向自信的马谡这会儿也慌了神,他想去打断点调试,但是已经来不及了。想去看日志,但是日志根本没有接入日志系统,还得一台一台服务器登上去看,排查起来也是相当复杂。他想直接看代码来发现问题,但是代码量巨大,而且大部分都不是自己写的,想看都不知从哪看起。

天地不仁,以万物为刍狗。上天也不会可怜马谡,流量过来的时候,系统直接崩溃,紧接着就是线上P0故障,马谡直接弃街亭跑路。


复命


马谡带领将士们回到诸葛亮处复命,诸葛亮痛心疾首,失了街亭,大军将陷入巨大的被动,马谡也肯定是呆不下去了。

诸葛亮让马谡总结失败经验,马谡也悔恨万分,这次的经历给了他很多教训。

他也诚恳地总结:“我不该在代码里滥用奇淫技巧,也不该照搬书上的设计模式,更不该没有经过全链路的系统测试就上线。”

“还有呢?”,诸葛亮问到。

马谡想来想去竟想不出其他原因。

这时候诸葛亮才意识到,马谡,还差得太远

诸葛亮补充到:“你的设计里面仅仅实现了基础功能,考虑过稳定性建设吗?出问题怎么排查?日志系统接了吗?监控报警有没有?出现流量洪峰的时候有扩容机制吗?”

马谡根本没想到还有这么多事情要考虑。

诸葛亮继续:“而且你让将士们007节奏工作,有违天道,必遭天谴,这是带兵之大忌。一将无能,才导致累死三军啊!”

马谡听后羞愧难当。

诸葛亮羽扇一摇,HR部门火速开了马谡。

当然诸葛亮自己也有过失,误用嫡系导致大军陷入被动,自己也自降三级。




本文以马谡的经历告诉我们,一个真实业务系统的开发,和平时做面试题或者竞赛题是完全不一样的,而一个线上的真实业务系统,也绝非仅仅实现业务逻辑这么简单,还需要考虑其他的很多因素,比如稳定性,可维护性,可扩展性等等。




第一次尝试写技术小说,如果你喜欢这种形式,麻烦动动手指转发一下,你不经意间的动作,可能就会给大家带来一部伟大的技术小说。


更多三国技术小说:

【技术小说连载】新三国外传——游说东吴

【技术小说连载】新三国外传——献连环计

【技术小说连载】新三国外传——赤壁之战

【技术小说连载】新三国外传——大宴铜雀台

【技术小说连载】新三国外传——煮酒论英雄

【技术小说连载】新三国外传——隆中对

【技术小说连载】新三国外传——草船借箭

【技术小说连载】新三国外传——徐庶赴曹

【技术小说连载】新三国外传——桃园结义






浏览 61
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报