第5章 什么叫防御,性编程啊?
    然后看着控制面板.....没有异常报错。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    “哇,师父,你好快.....”

    这可不兴说.....

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    “否则怎样?”

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

    “艺术就是爆炸!”

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

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

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

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

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

    宛如雕像。