老码农原创小说《码农故事》第74回

莫楠夸下了海口保证一周完成卫生局的定制功能,于是赶紧把手头的一些事情处理完,周一就马上开始干活。他也知道这一套功能涉及的代码太多太杂,一个星期的时间还真是没把握,所以从第一天开始就全力以赴了。
 
虽然用户功能部分做起来很顺手,到了第四天上午基本都完成了,可他还是发现工作量比他预想的要大不少,主要是用户权限部分。增加了政府机构这样一个用户类型,又涉及到权限的老规则和新规则一致性的问题,对应前端的操作界面也有很多不同之处,看起来非常的复杂。
 
对于这样底层的模块,莫楠也不敢轻举妄动。而且他还考虑到了将来医院加入进来的情况。医院又是一种类型的用户,既不是个人用户,又不是政府机构,用到的功能和权限规则也肯定会有独特的元素。即使是政府机构,也需要考虑它的不同级别,省级市级县级本身还有层次关系,也许将来政府机构的需求还会需要反映这种管辖的关系。这样一考虑,需求的复杂度一下子就提升了好几个级别。
 
莫楠考虑了一下午也没有想清楚这部分功能到底要怎么去做。最简单的当然是hack的方法,只考虑目前的需求,直接把普通用户权限管理的规则复制一份,然后修改成卫生局的就行了。可是这样做对于将来的扩展很不利,莫楠心想,这么干太掉价了,代码头上的注释写着作者是莫某,扩展的时候接手的程序员还不得在心里暗骂本大师乱挖坑嘛,那就遗臭万年了。
 
莫楠想到的另一个办法是把规则部分抽象出来也做成一套服务,每套规则和用户类型无关,然后建立一个规则映射表,保存每种用户类型可以调用的规则的集合。建立新的用户类型的时候,就在规则映射表中记录相应的权限关系,这样可以比较方便地实现灵活扩展。莫楠觉得这样很理想,但是唯一的问题是,这么做的工作量太大,恐怕两个月自己都不一定能做完。
 
莫楠想来想去想不出可行的办法,眼看就要天黑了,只剩下周五一天的时间,充其量还能再加上周末两天,不能再犹豫不决了。他把郭杰找来一起商量,想看看郭杰有什么高招,可是郭杰挠了半天头,也想不出一个万全之策,最后还是建议莫楠先用短平快的方法把补丁打上,等以后有时间的时候再做一套完美的功能。
 
莫楠看郭杰也不比他强到哪去,就把郭杰打发走了,自己一个人坐着发呆。他心想,看来这次要栽了,不知道小丫头会怎么笑话自己呢。这小丫头最近忙得不可开交,同时在协调三个开发小组的工作。她知道自己在忙卫生局定制功能,遇到技术问题也不来找自己了,最近都是直接去问高爽。莫楠心想,小丫头挺善解人意的,办事也确实有两下子。
 
想到高爽,莫楠突然眼睛一亮。这位高大师就像个无所不能的老神仙,以前几次看似不可能完成的任务到了他手里就变成了小儿科的玩意儿。没准这次找高大师也管用呢?
 
事不宜迟,莫楠想到这里马上给高爽打了个电话,本意是想在电话里请教一番,让高爽给指点一下。可莫楠没想到的是,高爽听他说完后,只是简单地说让他等一会就把电话挂了。
 
莫楠坐在办公室里等了半个小时,有点摸不着头脑。高大师也许手头正有点急事要处理,所以暂时顾不上他的问题?或者也许是高大师对这种琐碎的事情不感兴趣?再要不就是高大师对这类问题确实不在行吧。
 
眼看着下班时间都过了,办公室里的人越来越少,莫楠心里直打鼓:到底还等不等高大师回电话呢?要是先回家了,万一高大师的电话打过来问到一些具体问题,手头没有代码还真不好讨论。不回家呢,也不知道等到什么时候才是个头哇。
 
这时办公室里已经基本没人了,段倩也开始收拾东西准备走,她看见莫楠还坐在座位上发呆,就问莫楠:“莫大师,今天又要加班吗?”
 
莫楠无精打采地答道:“是啊。我都加了一星期的班了。你们那边项目那么复杂,居然还很少加班,你这个项目经理真潇洒啊。”
 
段倩一本正经地说:“当然了,加班是非常手段,只能在非常时期用。要是把加班作为日常必须,就像滥用抗生素一样,会产生抵抗性,时间长了就没用了。到时候真的有紧急任务需要加班,也出不来效率,所以我平时都尽量不安排加班。”
 
莫楠点点头:“这方面本大师是不得不服。你这段话好多PM都会说,但是能做到的很少。就是老大也是有心无力,想当年咱们加班是家常便饭,熬通宵的事都不算少。还是你的计划做得细,考虑得周到,才能游刃有余。”
 
段倩嘻嘻笑着说:“莫大师你居然夸我,真难得。我知道你的好话不白说,是不是又需要我帮忙啊?”
 
莫楠摇摇头:“小丫头片子你帮不上我的忙。我现在做政府机构的权限管理这部分是有点困难,要扩展成通用权限服务,通过配置的方法动态定制很难。本来想找高大师,可是高大师没理我。”
 
段倩惊讶地说:“不会吧?高大哥一向乐于助人,特别是咱们公司的事情,他都很热心的。你这部分要改可不是一天两天能做出来的,就是高大哥恐怕也不一定有什么办法,毕竟工作量在哪儿摆着嘛。不过他肯定不会因为事情难做就不理你,可能你找他的时候正好他有事吧。”
 
莫楠叹了口气说:“也许吧。算了,我还是自己想个办法好了。你没事了就先走,反正你也帮不上忙。”
 
段倩犹豫了一会儿说:“你还没吃饭吧。要不我出去给你买点带回来?加班也不能耽误吃饭,不然时间长了容易得胃病。”
 
莫楠摆摆手正要说话,门被推开了,来人正是高爽。
 
莫楠赶紧站了起来:“高大师,你怎么来了?我还以为你有事顾不上我这头呢。”
 
高爽笑着说:“你的问题不是电话里能说得清的,所以我就直接过来了。”
 
段倩看见高爽来了很高兴:“高大哥,你最近不忙了吧?下个月就是圣诞节,你们去美国玩的事情有没有安排好啊?”
 
高爽点点头:“差不多都安排好了。最近主要是配合莫大师他们研究了一下NJS,单线程异步响应的方式挺不错的。对了莫大师,你的问题我大概知道了,代码给我看一下好吗?”
 
莫楠赶紧找出他正在改的那部分有关权限管理的代码,然后让出座位给高爽,自己在旁边指着屏幕解说了一番。高爽边看着代码,边和莫楠来来回回地讨论了一会儿。段倩觉得这是个难得的学习机会,就站在莫楠旁边认真地听着两个人的对话。
 
高爽来来回回看了一阵子代码,又问了一些问题,然后看着屏幕沉思起来。
 
莫楠和高爽讨论了这么一番,感觉高爽是倾向于自己的第二套方案,因为他压根没往hack方案方面问问题。他想,这才是大师风范啊,至于那些动不动就hack一下打个补丁敷衍了事的,不愿意挑战自己,永远也成不了大师,只能做一辈子的码农。
 
高爽很快地考虑了一会儿,就开始在命令行终端操作,他连续敲入命令,在本地开发环境安装了一组包,然后生成了一些配置文件之类的东西,让莫楠看得眼花缭乱。过了一会儿操作完成了,高爽就又在代码中新建了一个测试类,很快地往里面输入了两三百行代码,然后开始执行。
 
莫楠对里面的代码看不太懂,似乎是新安装的一个包里带了一些特殊的类,然后高爽用这些类来配置权限。他想,难道高大师自己做过权限管理的插件?
 
这是高爽指着屏幕出现的输出内容对莫楠解释起来,他利用一个现成的安全框架做了个通用型权限管理功能的演示版,可以自由配置用户分类和权限之间的关系,这些关系都保存在一张请求映射表里,思路基本上和莫楠原先考虑的最优方案是一致的。
 
莫楠看着高爽的演示觉得简直是喜出望外。没想到这也有现成的东西可以用,这样他既不用写出既难看又难扩展的代码,也不用从头开始做一个大工程了。
 
段倩也觉得这个解决办法太神奇了,她好奇地问:“高大哥,你是怎么知道有这么个东西可以用的?这也是你做的吗?相比之下我们原来那套权限管理做得就太弱了。”
 
高爽笑了:“我哪有那么厉害,什么都能做。这是个通用的安全框架,里面有动态配置用户权限的模块,我只是以前用到过,所以比较熟悉它。”
 
莫楠对段倩的话却有点不服气,他嘟囔着说道:“我觉得咱们原来的权限管理不弱。原来的需求就没有考虑动态用户分类和权限管理,虽然灵活性不行,但是它实现的效率还是挺高的。”
 
高爽点点头赞同莫楠的看法:“我同意莫大师的看法。现在的方式虽然灵活,但是付出了牺牲性能的代价。我读过这个框架的源码,里面大量采用了meta-programming的模式,方法的加载都是在运行时动态进行的,这样代码执行的效率肯定会低一些。当年我用这个框架的时候配套的服务器资源不足,要处理的并发请求量又很大,因为性能问题来回改了好几次,其实最后没有采用它来管理权限,还是自己写了大量代码。好在现在硬件性能提高了很多倍,用它来增加灵活性应该可以接受了。对了,莫大师你可以再查一下,我用的这个版本是好几年前的,现在应该有更新的版本,可能代码还可以更简单一些。”
 
莫楠高兴地答应着:“太好了。明天我好好查一下,应该很快就能搞定。其实吧,有你的这个版本都够用了,高大师你真是救我于水火啊!今天晚上不干活了,我请客,咱们去招待所吃顿好的,补补脑子。”
 
段倩笑嘻嘻地问道:“我最近也需要补脑子,莫大师你们能带上我一块吗?”
 
莫楠看了她一眼说:“行啊。虽然说你的脑子再补都快要超过本大师了,不过看在你刚才主动要给我带饭的份上,本大师肯定得带上你。”
 
高爽提议道:“我看不用去那么好的地方了,咱们三个一块吃点面条什么的就好。去那么正式的地方聊天,聊天的成本也太高了。”
 
莫楠赶紧摆摆手:“高大师,吃饭这事吧你还是听我的,咱们要个包间,可以撒开了聊。正好我刚看完NJS,也稍微练了练手,还有一些问题想请教你呢。”
 
高爽一向是客随主便,看莫楠坚持要去也就不说什么了。于是三个人从办公室出来,一路聊着着来到招待所,莫楠找前台问了一下餐厅的位置,就带着高爽和段倩上了二楼。
 
正在莫楠找服务员要小包间的时候,段倩看到从餐厅里面走出来几个人,走在最前面的是一个官员模样的中年男人,陪在旁边正说着话的人正是孙熙,跟在后面的是一个浓妆艳抹的漂亮姑娘,还朝她笑了笑。段倩觉得这人很眼熟,仔细看了几眼才认出来,原来是陈艺!现在她化的妆那么浓,要不是先看到孙熙还真想不到会是她呢。
 
孙熙一眼也看见了他们三个,脸上掠过一丝尴尬的表情,但他很快换上了一副笑脸,停下和中年男人的对话走了过来:“这么巧,是你们啊!有一段时间没见了。怎么样,你们都还好吧?”
 
段倩礼节性地答道:“还好还好。我们今天加了会儿班,过来吃个饭。孙总最近忙什么呢?”
 
孙熙点点头:“你们程序员总是这么辛苦。我最近在忙那个酒店项目,陈艺现在负责酒店项目的市场和销售了。这样啊,今天我有客人就不和你们多聊了,改天有空请你们吃饭好不好?今天你们吃饭就挂我的帐上,我到楼下跟他们说一声就行。”说完他又朝着高爽笑了笑,就转身匆匆地走了。
 
段倩本来想说不需要挂他的帐,可孙熙走得太快,根本来不及说。这时莫楠和服务员问好了包间回来,也只看到孙熙离去的背影。他也懒得多问,就带着高爽和段倩进了小包间。
 
点好菜以后,三个人边吃着饭边聊了起来。莫楠先谈了一会儿看NJS的体会和问题,和高爽探讨了一番。段倩插不上话,就一直边吃东西,边听着他们的讨论,偶尔给他们续点茶水饮料。
 
莫楠聊了一阵子感叹道:“高大师我太羡慕你了。作为一个程序员能活得这么潇洒,我做梦都不敢想啊。”
 
段倩插话说:“高大哥也是经历过很多不如意的事情,熬出来挺难的。谁不想活的潇洒,可是我觉得只有放弃很多东西才能潇洒得起来,而一般人很难做到。”
 
高爽微笑着说:“是啊。我也是这几年想明白了很多事情。有时候事业、家庭和健康是不能兼得的,这时候不同的人就会有不同的取舍,其实每个人都有自己的道理,但是如果你每个都舍不得放弃,可能最后的结果也未必理想。所以我这段时间最大的收获可能是学会了做减法,主动放弃一些东西,能让自己活得更轻松。”
 
段倩若有所思地想了一会儿,然后总结道:“我有点明白了,事业、家庭、健康就像我们项目管理里面的进度、成本、质量的三角关系,要有很清楚的定位才能过的顺利。否则的话难免会有某个因素容易出现问题,这时候倒也不是不能补救,就怕三个都舍不得调整,这样就非失败不可了。”
 
莫楠哈哈笑了起来:“本来高大师都已经说得通俗易懂了,小丫头片子一发挥给说成了项目管理,反而让人听不懂了。这是职业病,以后要把事情往简单里想,知道不?”
 
段倩马上反驳:“我觉得看似简单并不是真正的简单,往往只是含糊地知其然而不知其所以然而已。就好比人们都觉得苹果熟了掉到地上是个很简单的事情,只有牛顿觉得这件事不简单,最后发现了万有引力定律。所以真正的简单是把一个模糊的问题纳入一套完整的模型里,这样就能一下子看清楚所有关联的问题。这种抽象后的简单才是有用的,不然还不如让它保持复杂状态呢。”
 
高爽听段倩说完,赞叹地说:“小倩,你这段话说得太有水平了。我简直不敢相信是你这个年龄的人能说出来的观点。反正我听了有一种恍然大悟的感觉,以前从来没思考过这个问题。”
 
段倩得意地对莫楠说:“莫大师,怎么样?服了吧?连高大哥都觉得我说得有水平呢。”
 
莫楠挠着头,也觉得不可思议:“听着是挺像回事的,有点世外高人的意思。你这是跟哪学的?我不信你一个小丫头能自己琢磨出这么高深的道理。”
 
段倩嘻嘻笑着说:“莫大师你真聪明。这是我哥的观点,他现在每天都在做一些基因工程的实验,又投资了很多创业公司,感慨可多了。我听他说了好多东西,就对他这个观点的印象最深。”
 
莫楠感叹起来:“小丫头片子最近各方面水平提高得都很快,难怪了。技术上有高大师指点,管理方面又有个这么牛的亲哥罩着,真是福分不浅。我说我怎么一把年纪了还这么窝囊,看来是先天资源不足,后天再努力效果也不行啊。”
 
高爽笑着说:“莫大师你别妄自菲薄了,我这一段时间看了不少你写的代码,质量挺高的,移植到云平台这件事也干得很漂亮。”
 
段倩露出不屑的表情说:“高大哥,你别夸他了。莫大师就是有这个毛病,听到有人夸我就浑身不舒服,非要想办法让别人也夸夸他,找回这个平衡。”
 
莫楠正低头啃着一块鸡腿,一时顾不上反驳段倩,只是从鼻子里哼了一声表示反对。
 
高爽哈哈笑着说:“实话实说嘛。我觉得你们现在这个开发团队真的挺不错,工作效率和质量都是一流的,至少在我待过的团队里还没有人能和你们比。”
 
段倩有点不敢相信:“高大哥,你这是说真的吗?我没在别的团队里待过,不过你原来工作的那个团队水平肯定比我们这些人高多了吧。”
 
高爽摇摇头:“团队是一个整体,原来我那个团队虽然个人的技术水平高一些,但是不管大环境还是团队内部气氛都不如你们这边,所以配合方面做得不太好。可能公司文化里鼓励内部竞争,协作就受到影响。所以说大公司有大公司的毛病,规模大了以后,管理复杂度成倍增长,工作效率的下降就难免了。”
 
段倩似懂非懂地点了点头:“嗯,我也觉得内部气氛挺重要的。反正我情愿业务规模小点,挣钱少一点,也要待在一个气氛比较融洽的团队里。多少钱也买不到心情愉快啊。”
 
莫楠啃完鸡腿抹了抹嘴,插话说:“这个我也同意,小丫头你在项目管理过程中也挺人性化的。不过气氛这东西就像对象一样,可遇不可求。你没办法刻意地去营造一种什么气氛,它就是一群人聚在一起自然而然形成的。我刚读完乔布斯传,乔大神在一个访谈里说他在苹果干的最有挑战性的工作就是把不合适的人赶出去。其实他老人家得罪那么多人图个啥啊?不就是为了保持一种追求卓越的氛围么。这多不容易啊。要是咱们老大也能像乔大神那样就好了。”
 
段倩提醒他说:“莫大师你这么说老大不太公平。前一段时间老大把孙熙和陈艺赶出去也挺不容易的。”
 
莫楠喝了口汤,看了看段倩,又看了看高爽,然后说:“今天在座的都不是外人,我就说说我对这件事的一个感受吧。开始我看见孙熙被赶出去还觉得老大挺有魄力的,后来我慢慢感觉吧,孙熙走了之后公司的氛围还是那样。老大虽然赶走了孙熙,可是孙熙的那些思维方式已经渗透到老大的脑子里了。说得难听点,老大赶走了孙熙,然后自己又变成了孙熙。或者说,老大自己已经变成了另一个孙熙,他就不再需要孙熙了。”
 
高爽对这些事情不了解,只是边吃着饭,边静静地听着他们俩的议论。
 
段倩琢磨了一会说:“莫大师你是说那些KPI考核的事情吧?咱们不是想办法改了一套还可以的指标吗?老大也同意了。这个月的考核结果你看到了吗?我看基本还反映了每个人的贡献大小,那几个想走的程序员现在也不闹意见了。”
 
莫楠摇摇头:“不光是这个事情。虽然咱们偷偷把KPI体系给hack了一下,保护了小团队氛围,但是从长远趋势来看,我基本上不指望以前那种氛围还能保持下去。说实话,上个月我有一次进城,路过咱们以前那个办公楼,还忍不住上去看了一眼。看到物是人非,还真有点伤感。我当时心想,我咋还伤感起来了呢?这绝对不是本大师的风格嘛。”
 
段倩默然无语。她倒不是完全赞同莫楠的看法,至少她还感觉不到莫楠说的这种趋势,可是心里却隐隐有一丝担忧。
<待续>

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

打赏作者

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

任选一种支付方式

1 收藏 评论

关于作者:老码农

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

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部