老码农原创小说《码农故事》 46-47回

《码农故事》 第四十六回

赵川回到公司,发现只有段倩还在座位上干活,其他人都没影了。他看到段倩的桌子上还剩了几块披萨,就随手拿起一块,问段倩:“莫楠和裴曼人呢?”

段倩看了他一眼说:“都有约,下班就走了。等一下,这披萨是凉的,我给你热热去。”说完她收起桌上的披萨,顺便把赵川手里那块也拿了过去,到微波炉那边加热去了。

赵川心想,裴曼晚上是没什么事了,莫楠走了可真不应该,好多事还没理清楚呢!自己下午走的时候忘了和他打个招呼,这小子居然就溜了。他能去干什么呢?可能又是和他那帮狐朋狗友去打篮球了吧。

他摇摇头,回到自己座位,看到邮件里有高爽发过来的代码和文档,就先把附件都下载下来,打算一会儿搭个类似的环境测试一下。

这时段倩走过来,把披萨递给了他:“披萨热好了,你赶紧吃吧。”

赵川接过披萨,笑着对段倩说:“我今天去高爽家了。和他讨论了一下,他已经把新的架构模型做出来了,效果真的很不错。”

段倩撇了撇嘴说:“我知道你去他家了,宋琳刚给我发的短信。”

赵川故作惊讶状:“这么快你就得到情报了?你们俩的关系还真是不一般嘛。怎么样,她没对我有意见吧?怪我打扰高爽休息什么的。”

段倩答道:“那倒没有。她就说你拿到结果就匆匆忙忙地走了,连饭都顾不上吃。”

赵川叹了口气说:“我哪有时间等她做饭吃啊!这不急着回来找莫楠讨论嘛,可没想到莫楠这小子跑了。早知道还真不如在高爽家蹭一顿饭。”

段倩笑着说:“我在他们家蹭过几顿,宋琳做菜的手艺可好了,她做的菜比上回咱们在海边度假村里那个中餐厅里的菜都更好吃!下回咱们找个机会再去蹭一顿吧。”

赵川含糊地嗯了一声,拿着披萨吃了起来。他心想,小丫头就知道吃,自己现在哪有心思想这个。这个分布式环境应该让莫楠来搭,就是自己搭,最起码他也得参与,不然他怎么能搞清楚这个架构是怎么回事?更别说在它的基础上做开发了。

正在他着急的时候,听见门咣当一响,赵川一看,是莫楠风风火火地进来了。他赶紧站起身问道:“你小子跑哪儿去了?我还等着你弄新数据库呢!”

莫楠嘿嘿地笑了几声:“不好意思,今天有个约会。我看你出去了,估摸着你最早也得吃完了晚饭才能回来,所以就出去陪小丽在后面小吃街吃了个麻辣烫。再说天天吃披萨也受不了啊,我觉得我自己都快变成一块披萨了。”

段倩假装糊涂的样子问道:“小丽?小丽是谁呀?以前怎么没听你说过。”

莫楠一摆手:“去去去,大人说话小孩子别乱插嘴,你婶的小名也是你随便就能叫的?”

赵川哈哈大笑:“你们俩关系都到这个程度了?够快的啊。哪天带过来让我们见见?”

莫楠赶紧摆手:“咳咳,老大你别当真啊,我这不说着玩的嘛。你也知道咱最近天天没日没夜的,哪有时间泡妞啊?我是怕总不表忠心人家不带咱玩了,所以才溜出去吃了顿饭,意思意思。”

赵川点点头,心里觉得非常愧疚。自己最近给莫楠安排的任务确实太紧了,一点没考虑他的个人生活问题,确实有点欠妥。

段倩哼了一声说:“你别找理由了,不就是嫌披萨不好吃嘛。下回我订几份麻辣烫总行了吧?”

莫楠懒洋洋地答道:“别了,今天我吃得太多,已经吃伤了。下次麻烦大小姐您给订点中餐行吗?咱要求不高,有点米饭有点肉有点菜就齐了。可真不是我嘴挑,别说披萨了,就是大龙虾大螃蟹什么的,它再好吃也经不住顿顿吃啊。老大,你说是不是?”

赵川边吃着披萨边点点头,表示赞同。

段倩有点不高兴:“订餐之前你说句话啊,每次都是订完了发牢骚。真是的。”

赵川赶紧打圆场:“这样吧,明天晚上咱们出去聚餐一次,你们挑地方,我请客。”

段倩一听就拍着手跳了起来:“太好了太好了!我们去吃烤肉吧!我家那边上星期刚开了一家韩国烤肉,我室友去吃过了,挺正宗的,而且刚开张正在7折优惠呢。”

赵川笑着说:“听起来挺不错啊,吃完了还可以去唱唱歌。莫楠你看呢?”

莫楠无所谓地说:“都行,只要不是披萨我就谢天谢地了。不过,小丫头我劝你还是少吃烤肉,看那玩意儿一烤兹兹冒油,吃多了保你体重蹭蹭地长。”

段倩懒得理会他,她想到明天晚上的活动很开心,就哼着歌回去接着干活了。

赵川吃完了披萨,一拍莫楠的肩膀,让他过来看高爽发的邮件。莫楠看了几眼还是不太明白,赵川又把高爽的设计给他讲了一遍。

莫楠听完,瞪着眼睛说:“连数据库都给换了?这动作也太大,等于把咱的老窝给端了…..”

赵川说:“咱那个破窝是该换换了,到处漏风漏雨的。邮件转给你了,咱们在测试服务器上试试,先按照文档里的说明先把模拟环境搭起来,然后把高爽写的代码部署上去,跑起来你就知道它好在哪里了。”

莫楠站着没动。虽然他相信高爽的水平,但是总觉得底层的代码不能轻易动,更何况是整个重构,还用了完全不熟悉的数据库平台。

他想,老大是有一阵子不做技术了,加上盲目迷信高爽,完全忽视了生产系统的连贯性。别的不说,现有数据怎么办?数据移植可不是件容易的事情。现在的架构是不理想,但是起码能用,而且经过了这几年的考验。要是换掉,谁敢担保高爽的设计在生产环境一定不会出现什么意想不到的问题?万一出问题了怎么解决,大家都没有经验,那么多用户都要受影响,搞不好公司直接就完蛋了。

赵川看见莫楠站着发呆,就知道他有抵触心理。这也好理解,通常前端喜欢玩新技术,后端倾向于保守,但一涉及到生产系统,基本大家的心态都是能不动的地方就尽量不动,就怕玩不好把系统玩死了。只有高爽那样的牛人才敢提出后端大幅度重构的想法,这就是常言说的,艺高人胆大,胆大艺更高。

莫楠思想斗争了一会儿,觉得赵川说得也对,不试一下怎么知道它好不好用呢?于是他叹了口气,转身回自己座位收邮件去了。

赵川一看莫楠干活去了,就打开高爽的代码仔细地看起来。这几段代码其实并不长,赵川目测加起来也就两千行上下,关键的地方都有详细的注释说明,命名也非常规范,再加上实现的功能也是他很熟悉的,所以看起来很容易理解。

唯一费事的就是涉及到MDB接口的部分,他需要对照MDB文档的说明才能看懂。好在MDB接口用的是他很熟悉的javascript语言,所以对照着看了一会,举一反三,他对这部分接口也都慢慢了解了。

看到动态数据生成和管理的方法,赵川忍不住想拍案叫绝。和他们写出来上万行的臃肿代码比起来,高爽的实现简直太优雅了。当然,核心的差别还是在数据库的选择上。相比高爽选用的MDB的灵活性,他们用结构化数据库做出来的应用就像一个脚踝被用石膏固定的人,按照固定的模式走走路还勉强可以应付,可偏偏还经常需要做出舞蹈的灵活动作,就显得非常笨拙而费力了。

代码刚看了一半多,赵川就听见莫楠那边连连蹦出几句脏话感叹词,难道是系统部署出现问题了?他扔下手头的代码,走到莫楠的座位去看个究竟。

莫楠的电脑上接了两块显示屏,左边那块上面出现的是和高爽给他演示的一模一样的浏览器界面,右边那块则是后端数据库的控制台,还有一个小窗口显示代码。赵川仔细看了一下,两边显示的情况都是正常的,说明莫楠已经成功配置好了测试环境,并且代码的部署也成功了。

他问莫楠:“有什么问题吗?我看你这里配置的情况是正常的嘛。你居然这么快就把MDB配置好了,我才刚刚看明白它的接口定义。”

莫楠语无伦次地答道:“何止是正常,简直正常得有点不正常。这么点代码怎么可能做到呢?真是闹鬼了。”

赵川呵呵笑着说:“我一开始也不相信,刚才看了一下代码,MDB的树形结构实在是太适合咱们的需求了,绝对是四两拨千斤的经典案例。你稍微等我一会儿,我看完代码给你讲一下。”

莫楠答应着:“行,老子先给它来个压力测试,看看它能不能扛得住我的莫式十大酷刑。”

赵川觉得莫楠这个习惯很好。高爽似乎就没做过压力测试,也不清楚在大量并发请求出现时,MDB的表现是否还能那么理想。他看着莫楠启动了压力测试工具,自己转身回去接着看代码。

这时,段倩刚好干完了自己的一部分活,好奇地跑到莫楠座位边,找了把椅子坐下,看莫楠做压力测试。

莫楠搓了搓手说:“咱也先别太为难它了,就给它来500个并发读写试试吧。”说着启动了测试。

出乎他意料的是,他原以为算是一记重拳的500个并发读写请求,到了高爽的MDB服务那里就像化成了水汽一样,瞬间消失了,所有请求居然全部成功。他再看了一下内存和CPU曲线,只有不到5%的起伏。

这太不可思议了,以前丁勃最怕的就是做压力测试,超过300个并发请求就经常能跑出大量的读写失败错误。

段倩没做过压力测试,看不太明白。她问道:“莫大师,这些点是什么含义,代表都成功了吗?”

莫楠点了点头,他看着屏幕自言自语道:“小子,是条硬汉。这次我给你来2000个并发,不信你不尿裤子。”

果然,2000个并发出去,内存和CPU的占用率马上直线上升,莫楠开始得意地嘿嘿笑,仿佛他真的变成了冷血杀手,正在折磨他的敌人。

可他没想到的是,内存上升了20%左右就不再上升了,CPU的占用率倒是一直居高不下,但是仍然有10%左右的剩余。又过了一会,所有请求都成功完成,内存和CPU的占用也都恢复到初始状态。

段倩有点看明白了。她说:“莫大师,我记得以前丁勃在的时候,好像咱们最大的并发数也就400多吧?这次有2000个并发,比原来提高了好几倍呢。”

莫楠咬了咬牙:“确实,这东西做的有两把刷子。我这次给它来10000个并发,它要还不出错,我立马用鼠标自杀!”

10000个并发果然超出了测试服务器上分布式MDB集群的承受能力,数据库服务很快就崩溃了。莫楠又调整了几次并发数,最后在4500个并发数的时候找到了临界点。

<待续>

 

 

《码农故事》第四十七回

赵川读完了高爽的代码,听莫楠说压力测试的结果也非常理想,顿时心情大好。他给莫楠和段倩把代码讲解了一番,又一起把涉及到MDB的部分研究了一下。

莫楠感叹道:“我老了!跟不上时代了。结构化数据库还没完全玩利索,NoSQL又冒出来了。我说高爽是咋知道这东西的?他不是一直在送外卖和带小孩玩儿嘛。”

段倩也觉得很不可思议:“他真是很长时间没接触这些东西了。我也想不到他这么快就能找到这么好的解决方案。”

赵川说:“这就是程序员的内力,逻辑分析和快速学习的能力。现在有互联网,有搜索引擎,有程序员问答网站,获取信息的途径很多,其实这对每个程序员都是一样的。差别在于甄别、理解和消化这些信息的能力,内功强的人就可以随时找到最适合他的技术,并快速把这些技术投入应用。”

莫楠点头赞同:“以前看武侠小说里顶尖高手一招就能击退上百人,总觉得太扯淡了。都是肉体凡胎,谁能比谁强多少?碰到高爽我才明白了,高手和一般人的差别还真是大,要说高爽一个人能顶100个我这样的程序员,我觉得也没问题。”

段倩插话说:“那高爽起码能顶500个我这样的。”

莫楠扭头看着段倩,皱着眉头说:“按你的算法,合着我1个只能顶5个你这样的呗?小丫头你也太不谦虚了吧!”

段倩不屑地答道:“10个,你能顶我10个,这总行了吧?”

赵川说:“我觉得顶尖高手没法折算。多少普通程序员能顶一个Linus?100万个?我觉得1000万个普通程序员合在一起也做不出Linux。会和不会是1和0的差别,多少个0加在一起去除也还是无穷大。这压根不是数量的问题。”

莫楠眨了眨眼睛说:“要说高爽相当于洪七公,老大你大概能算全真七子这个级别的,我呢最多也就是江南七怪吧。”

段倩好奇地问:“那我能算什么级别?”

莫楠想都没想就说:“你啊,算黄蓉……那是不可能的。我想想啊,这部剧里还缺个群众演员,最早出场的,而且还有一句台词呢!你有兴趣么?”

段倩哼了一声:“没兴趣,我知道你狗嘴里吐不出象牙。我才不要听呢。”

赵川忍不住插话说:“一句台词就是‘啊!’的一声死了么……”

莫楠哈哈大笑:“老大真聪明!开场就被金兵杀死的村妇甲,我觉得比较适合小丫头片子。”

段倩立刻还嘴说:“那你最多演个金兵,杀了我以后被丘处机干掉。”

赵川困惑地说:“我演的是丘处机?那岂不是一开场咱们三个就自相残杀么……你别说,我看段倩的风格还真有点像黄蓉,一开始武功不高,但是总能得到高人指点,最后成为顶尖高手。我看老朱可以算黄药师了,呆在自己的小院子里埋头玩生物,不问世事。”

莫楠插嘴说:“我看Tony像是欧阳锋……”

赵川干咳了几声:“这个啊,不太恰当。刚才我说什么来着?老朱算黄药师,给段倩传了不少行走江湖的经验。还有你不是说高爽算洪七公么?他已经帮过段倩好几次了,再过一阵子传授给段倩打狗棍法也未可知啊。”

段倩捂着嘴笑着说:“等我学会了打狗棍法,第一个就先把莫大师给打一顿。”

莫楠瞪着眼睛说:“小丫头片子,骂人不吐脏字啊!你这都跟谁学的?我说这谁家孩子啊?赶紧给领走,天天没大没小的。”

赵川笑着说:“还能是跟谁学的,咱们这个办公室也就你有这个实力。我记得段倩刚来的时候话挺少的,没一个月就跟你贫上了。好啦,咱们趁热打铁把开发计划落实了吧,然后就可以通知Tony过来敲定投资计划。”

他们一块儿修改了开发计划,进展非常顺利,因为有了更轻量级的底层架构,上层功能的开发任务也清晰多了。

莫楠看着修改完成后的开发计划,有点自恋地感叹说:“这个计划简直太完美了!这么多年我从来没有看到过这么清晰细致而且可操作的计划,从计划里就已经依稀看到了项目成功的影子。我简直都有点佩服我自己了。”

赵川点点头:“都说计划决定项目70%的成败,以前也做过很多项目都是输在了起跑线上,不过真正好的计划还真是很少见到。这次做出这么漂亮的计划,多亏了高爽的架构设计,也要感谢Tony利用他的经验给我们挑出很多毛病,不然咱们最初那个想当然的计划到了执行阶段肯定会漏洞百出。想想还真是后怕啊。”

段倩看着计划,有点疑惑地问:“如果是这样的开发进度,好像就不需要那么多开发人员了对吧?”

赵川想了想说:“还真是。莫楠你看,开发路径变简单了,人员需求也会下降。”

莫楠看着甘特图,边数着任务节点边在心里计算着,过了一会他说:“没错。我大致估计了一下,开发团队可以缩减五六个人吧。”

赵川站起来说:“那我还得回去再修改预算。真是牵一发而动全身啊。不过这是happy problem。”

过了一会,整体计划和方案都修改完成了,赵川很满意。他看看时间,已经是半夜了。

赵川把整体方案通过邮件发给裴曼、Tony和朱斌,提议下周一再见面继续谈。干完这些活,三个人就各自回家休息去了。

第二天中午,赵川接到Tony的电话。Tony对中间这段开发计划的调整提出了强烈的质疑,怀疑他们为了获得投资而刻意低估了工作量。赵川解释了半天未果,Tony最后同意下周一来讨论,但要求观看演示以证实他们的调整是合理的。

赵川被Tony批得满头大汗,放下电话不禁长出了一口气。莫楠在旁边听了个大概,嘿嘿笑着说:“怎么样?欧阳锋不好对付吧?”

赵川楞了一会说:“也奇怪了,本来咱们是有把握的,没做亏心事不怕鬼叫门嘛。可是刚才Tony一通质问之后,我怎么有了一种做贼心虚的感觉呢?放下电话才慢慢缓过劲来。”

莫楠晃着脑袋说:“人家要扔进来那么多钱,不整明白了哪行?咱们这个调整确实也太翻天覆地了,要我是Tony我也不信。”

过了一会儿,郭杰背着个包进来了。他刚办完上一家公司的交接,就匆匆忙忙地赶了过来。

莫楠热情地招呼郭杰:“老郭,你来的正好。我这里刚拿到一套九阴真经的秘籍,咱们正好一块研究一下。”

郭杰一脸茫然的样子,显然不明白莫楠在说什么。但他还是答应了一声,又和赵川打了个招呼。

赵川和郭杰握了握手,介绍郭杰和公司的其他员工认识,然后就简略地告诉郭杰昨天他们测试过的基于MDB的动态数据架构,让他去和莫楠一起研究一下。

郭杰听完兴奋地对赵川说:“哦,MDB啊,这东西现在挺火的。我们上一个项目里给用户推荐过这个技术,我为了写咨询报告也大概看了一下这个平台,不过没有具体用过。咱们也要用MDB么?那太好了!”

莫楠抬起头来说:“真的?你研究过MDB?那太好了,我正看着费劲呢。要不你先给我们讲讲呗?”

郭杰挠挠头说:“我倒是做过一套PPT介绍它的,但是自己没有真正用它做过开发,讲的时候挺心虚的。你们为什么不请高大师来讲呢?我也好学习一下。”

莫楠哈哈笑着说:“心虚啥,只要用户比你懂得少,你就是胡说八道他们也听不出来。我们以前这样的事儿干得多啦。至于高大师,他老人家是神龙见首不见尾,能出手帮咱们搞定架构已经是意外之喜,培训这种技术含量不高的活咱就别惊动他老人家了。”

赵川也鼓励道:“没事的。我们也是昨天才刚刚看到有关的文档。你既然研究过,先给我们介绍一下也好,有什么遗漏的地方咱们再一起学习,这样可以节省不少时间。”

郭杰想了想说:“好吧。那我就班门弄斧了。其实我对MDB的理解也还在很初级的水平,可能还不如你们。我这就算是抛个砖吧。”

段倩听说有MDB讲座也凑过来了。郭杰一开始有点紧张,讲起来磕磕巴巴的,慢慢地才进入状态,一口气讲了将近2个小时,中间还回答了不少问题。

赵川听完讲座,感觉郭杰对MDB是很有研究的,他之前是过于谦虚了。也许他确实没有用MDB做过开发,但是他对数据库的理解深度应该不在自己之下,用MDB开发应该很快就能得心应手。

莫楠也对郭杰竖起了大拇指:“哥们,深藏不露啊。我差点给你骗了。你说你没用MDB做过开发,我不信。”

郭杰听到莫楠的夸奖,白白胖胖的脸上抑制不住地露出了笑容:“过奖了过奖了。真的没做过开发,也就是在研究的时候试了试命令行操作。当时就觉得这个数据库特别强。看来我来得太是时候了,一来就赶上能用MDB做开发,这太棒啦。”

段倩也赞叹说:“你讲得真好,连我都一下子就听懂了。不过它的接口我还是有点不习惯,既不能用SQL语句,又没有ORM插件,都是底层读写操作,好像挺难用的。”

赵川接过话题说:“这就是个习惯问题,其实也没什么难度,直接调用数据库接口访问速度才快嘛。正好Tony下周一要看演示,高爽这个版本还缺了点外围功能,我担心Tony太挑剔,这个版本还说服不了他。正好,莫楠你和郭杰一块儿把外围功能加进去,争取周一能做个比较全面的展示。”

莫楠和郭杰连连点头赞同。莫楠让郭杰坐他旁边的座位,俩人就一起热火朝天地讨论起来。

<待续>

 

打赏支持我写出更多好文章,谢谢!

打赏作者

打赏支持我写出更多好文章,谢谢!

任选一种支付方式

1 收藏 2 评论

关于作者:老码农

搞得定代码,罩得住娃;治得好跟腱,踢得了球。Hi,我是老码农,蜀黍有练过,小盆友们不要随便模仿喔。(新浪微博:@老码农的自留地) 个人主页 · 我的文章 · 122 ·    

相关文章

可能感兴趣的话题



直接登录
最新评论
跳到底部
返回顶部