社畜逆袭:从小米开始反卷互联 第4节

  “之前跟你说过,写代码要有面向对象的思维,万物皆对象”

  “这里要把一些通用的代码抽象出来,这样可以避免你进行重复性工作,那就真跟工地搬砖没什么两样了,比如这里可以这么写”

  齐萌萌眼神火热的看着屏幕中出现一行又一行代码,行云流水。

  师父手指在键盘上如穿花蝴蝶般飞舞,键盘声的敲击抑扬顿挫,仿佛暗含着某些神秘的规律,赏心悦目。

  这一刻原本有些小帅的师父在她眼中,简直酷毙了。

  “编程除了实现功能,也是优雅的艺术,原本上百行的代码,现在只有二十多行了。我们跑一下试试.”

  说的再牛逼也得实践见真章,陈默准备重启执行一下。

  看着屏幕中弹出的二次确认窗,仿佛在玩劲舞团,陈默肩带肘、肘带腕、腕带手,最终如鞭子一样抽向回车键。

  “PIA”地一声脆响,注入灵魂!

  收藏不迷路,追读能暴富~~~

第5章 什么叫防御,性编程啊?

  然后看着控制面板没有异常报错。

  打开网页,输入地址,用鼠标点击功能,一切正常。

  如此这般,几个功能全部搞定。

  陈默活动了一下手指,“其实正常流程应该先写单元测试,再实现功能,不过一是时间有限,二是这点程度还不需要我写单测。

  这样你这个项目的工作就完成了,这几天应该可以不用加班了。”

  齐萌萌亲眼看到代码一点点丰满起来,聚沙成塔,充满了玄奥的规则,脸上充满了敬畏。

  这些代码在师父的手里仿佛一个个听话的小朋友,令行禁止,异常听话。

  原计划她一周工作量的功能实现,在师父的手里没坚持过一刻钟。

  看了看时间,13分14秒,这就是她与师父之间的鸿沟,

  “刚才这些,其实有一个统一的名称,叫防御性编程!”

  不知道是否错觉,齐萌萌感觉师父说到最后莫名顿了一下。

  “什么叫防御性编程啊?”

  陈默坐回自己座位,冲对方勾了勾手,示意过来,

  “防御性编程是一种细致、谨慎的编程方法。

  它要求程序员在编写代码时预见可能出现的问题,并提前采取措施来避免这些问题。

  这种编程习惯更加注重错误的预防和控制,以减少可能出现的灾难性后果。

  刚才的代码示范是名门正派的用法,正所谓道高一尺魔高一丈。

  接下来我所教你的乃是防御性编程的邪道用法。

  其实原来是没有这些的,随着公司与员工之间的博弈加剧,往往后者处于绝对的劣势。

  一些前辈就想到了此招,那就通过编写晦涩难懂的代码,令自己手里握有一些筹码,即便自己最后被裁,也要让自己负责的那些代码是不可维护的!

  从而在一定程度上提升自己的‘不可取代性’,达到让公司投鼠忌器的目的!

  要不看你是我徒弟,这招我一般不轻易示人,因为一旦施展,必将引发严重的后果,如同七伤拳,伤人更伤己。

  不过为师目前功力深厚,已经可以无视这种副作用了。”

  说着陈默把自己之前负责的主要功能模块代码找出来,陷入了沉默。

  此时的他再看自己之前所写的这些代码,简直没眼看,只是为了完成功能而完成功能,毫无优雅可言,比齐萌萌那坨代码能强上一些,但也有限。

  过了一会,陈默方才把屏幕稍微向齐萌萌那边偏了偏。

  这一次陈默全功率开动,双手噼里啪啦快速敲击着键盘,速度快的都能看到残影,这是丰富的经验和年轻的肉体融合才具备的功力。

  这让他很是满意现在的状态,年轻真好,随后就听到齐萌萌的压抑不住的惊叹,

  “哇,师父,好快.”

  这可不兴说.

  陈默眼角抽了一下,手中原本行云流水的敲击声瞬间顿了一下,速度稍微降档

  原本的代码被改的面目全非,当然陈默不是跟拼积木一样在上面不断累加,而是怎么复杂怎么来。

  循环嵌套,高级语法,在代码中封装了一层又一层“防盗门”,涉及范围包括不限于代码、配置文件、数据库

  原本二十行就能实现功能的代码,短短几分钟就极速膨胀了近千行,别看多,乍一看充满了代码的美感,如果仔细一读会让人头皮发麻,技术越高的选手越容易陷进去,不可自拔。

  相当于把原本一两句话能说清的事情,水上几十章,比如山坡上突然冒出了一伙山贼,定睛一看竟是梁山一百单八将,他们分别是“宋江、吴用、卢俊义、林冲.”名字念完再念绰号,然后背景羁绊全部整上

  让人看上一眼就忍不住骂娘,简直不当人子。

  在写代码的过程中,陈默每写下一小段,都会跟齐萌萌解释其含义,深入浅出。

  而齐萌萌看着面前的这堆代码,在师父的鬼斧神工下,不断拆解、崩散、融合、重组,变成了一点都看不懂的样子,脸上满是震撼。

  这时一个员工从旁边经过。

  原本已经路过陈默工位的他耳朵微微一动,咦了一声又折返了回来,随后在后面津津有味地看了起来。

  【陈默敲代码的速度见涨啊,都快赶上我了,难道扇老板还有这好处?】

  【哎,这些已经测试完毕的代码为什么要动?】

  【这是在优化?不,这改动程度已经是重构了,现在重构?都快验收了这不是没事找事么?】

  【嗯?这语法还能这么写?倒是学到一招,没白看。】

  【不过怎么看上去像反向重构,越来越复杂了,这样还能跑通么?奇怪.】

  这哥们脸上的神情从开始的好奇慢慢变为费解,随后听着陈默的讲解,表情在疑惑和恍然之间来回切换,好像一个钉在十字路口的红绿灯.

  半个小时后,当陈默把自己之前的代码核心逻辑全部重构一遍,程序开始执行,没有报错,几分钟整个流程点了一遍一次过。

  “这就是所谓的防御性编程,看明白了?”

  齐萌萌瞪着懵懂的大眼睛,情理之中的摇了摇头,有看没有懂。

  陈默欣慰的点了点头,“看不懂就对了,说不定过几天我来看我写的代码都看不懂,这就是眼中有码心中无码的至高境界。

  所以只能祝王德发好运,希望后续这几个功能验收的时候不要有改动,否则.”

  “否则怎样?”

  陈默双手作开花状,嘴里BOOM了一声,

  “艺术就是爆炸!”

  系统能不能验收通过才不是她一个实习生的关注点,齐萌萌有一点比较好奇,

  “师父,你刚才敲代码,不需要思考么?一气呵成,简直.”她一时想不出什么形容词,最后只能竖了个大拇指。

  “我一直在思考啊,最开始停了一分钟我就在想大概代码结构该怎么去构建,然后等实现的时候手里敲这段代码的时候,脑海里面已经提前预判想下一块代码了,跟卖油翁一样,唯手熟尔。

  这都是你往后要学的地方,说多了你也记不住,行了,今天为师灌输给你的东西有点多,你先消化一下。”

  陈默拿着杯子准备去打水,起身发现不知道何时身后一步不动杵着个人,

  宛如雕像。

  收藏不迷路,追读能暴富!

第6章 来自全栈工程师的降维打击

  看着像是被流浪法师禁锢住的张超,陈默问道,

  “额,张超,有事?”

  张超使出净化恢复正常,哈哈尬笑一声,提了提手里的杯子“没啥,我原本是想打水,刚好路过”

  “要不,一起?”

  “额,好。”

  两人打完水往回走,张超还在想着刚才一幕,脑筋一动,

  “咳咳.那个陈默,我碰到个诡异的问题,要不你帮我瞅瞅?”

  想着当初张超这小子跟自己前后脚入职到这家公司,算是同期,以前工作中两人相互间帮助几回。

  陈默笑着说道,“没问题,不过没解决不要怪我。”

  “哪能呢。”

  张超说着自己遇到的诡异问题,然后领着陈默回到自己位置,正好路过技术部经理李建超的工位。

  当听到两人对话,李建超嗤之以鼻,一个BUG还能讨论的有来有回。

  陈默是他招进来的,身上有几斤几两他是最清楚不过了,技术水平一般,就靠一股子钻牛角尖的拼劲,产出也只是中规中矩而已,这还是算上加班的时间。

  张超自己都搞不定的问题,找跟他水平相差无几的陈默就能搞定了?

  程序可不是靠猜就能搞定的。

  最终陈默万一没搞定,张超最后还不是兜兜转转找自己帮忙,这是舍近求远。

  李建超摇了摇头,想这些有的没的干嘛,赶紧看着自己碰到系统底层核心逻辑的问题,明面上的报错都解决了,错误信息也没有,怎么还是跑不通呢?

  一会就要给客户演示了,李建超陷入了冥思苦想。

  这边,陈默听完张超的问题描述,看了一遍对方给出的代码范围。

  从异常信息表面来看问题是出在代码上,但他刚才看了张超的代码,判断其代码没有问题,那么真相只有一个.

  随后他打开数据库,把里面需要的数据清掉,根据代码逻辑,手动添加了一条,再跑一次,功能正常。

  “程序没问题,数据库里有脏数据(被手动破坏污染的错误数据),如果之前正常或许调试过程中被污染了,你这是导数据导进来的吧,可以从数据导入脚本入手排查.”

  陈默找出原因,给出解决问题的思路就完事了,毕竟对方不是齐萌萌不需要手把手教,否则就是看不起人家了。

  “靠,原来问题出在这,我之前就总感觉好像是数据问题,但不太确定,还在死磕代码差点跑偏,这下明白了,谢啦。否则今天死磕代码就是通宵加班都解决不了。”

  如此效率就解决掉在他看来很是棘手的问题,让张超既意外又感激。

  “客气啥,小事。”

  陈默起身刚要走,就听到身旁传来一个怯怯的声音,

  “那个,陈哥,也帮我看看这个问题呗?刚才我和前端同学联调死活跑不通.”

  陈默一瞅,是刚转正不久的同事,

  “好。”

  5分钟后,问题搞定。

  “谢谢陈哥。”

  “刚才那个问题解决了?”这个同学对面的前端工程师突然站了起来,然后更新了代码试了一下,

首节上一节4/213下一节尾节目录