一读小说 » 玄幻奇幻 » 重生学霸的黑科技系统 » 第48章 程序猿的基本素养

第48章 程序猿的基本素养

    看着全息面板上任务的详细信息,秦川很快就被任务奖励上的“一次抽奖机会”吸引。如果拿到一等奖,到时候四大成功发表,岂不是就凑够3次机会了?

    “秦川?秦川?”

    “啊......”

    “看你刚才一直在发呆,怎么了?”

    “没事没事。”

    秦川摇摇头,确认着报名信息,果断选择了报名。

    “秦川,我就等着你的好消息了。”

    秦川抹了抹头上的汗,无奈道:“老师,我只是去试试水,别抱多大希望......”

    怎么似乎除了自己,所有人都觉得他能获奖呢?

    ......

    10月27日。

    天上罕见地飘起了丝丝小雨,给秋天的京城带来了一丝迷濛。

    这段时间秦川他们团队又增加了几名计算机学院的成员,林语墨有课不在,在场的几个成员正在争分夺秒地进行着开发工作。

    “秦川,技术架构里面的代码我们基本上写完了,到时候就可以直接使用了吗?”一个刚入行的新成员发问。

    秦川缓缓摇摇头:“不行。”

    “不行?”

    几个人都一愣,他们这段时间天天熬夜肝代码,结果负责人竟然轻描淡写地说不行?

    “你这话什么意思?”

    秦川睃了这些猴急的新成员一眼,大部分都是大一新生,一个人负责java,一个人负责PHP,一个人负责SQL,最后代码拿到自己眼前,他直接眼前一黑。

    完全是各写各的!

    这也怪不得他们,大一新生没有项目经验很正常,他们这是拿自己这个项目试水当跳板啊!但秦川也没办法,现在项目缺人,有人来就谢天谢地了,自己可不敢挑挑拣拣。

    秦川头痛道:“我还要把你们的代码优化优化,过段时间......”

    “可是我们的代码都快写完——”

    “Varnish、Redis还有移动API。”

    “什么东西?”

    秦川扶额,只能解释道:“Varnish是一个高性能反向代理服务器和http加速器,你,负责把这部分代码搞出来;Redis是为了应对高并发,研发出来的一款NoSQL数据库,你,在SQL的基础上,改进一下我们原来的代码;移动API就不用说了,我们到时候推出APP,你还指望大学生用电脑点餐吗?写一个移动API接口!”

    “先把javaweb开发学会,还有Springboot、SpringCloud都要学,以后都用得到。”

    几人连忙点点头,有个大佬带就是不一样,有问题直接问,实在不会就丢给他!秦川看着眼前这几个新兵蛋子,叹了一口气,适巧又觉些许倦乏,拿出手机,打开了自己的围脖账号。

    “大一新生秦同学”,朴实无华的名字。简介更是简单:“已发sci论文6篇,我真的不是天才!”

    秦川发了一篇文章,配文是【最近准备发行一款外卖APP,开发ing......】,还配了一张图片【能运行的BUG千万不要修,否则会发生很可怕的事情!】

    顿时下面粉丝发言:

    【不愧是你,期待华夏外卖行业的新星!】

    【太真实了!本程序猿默默流泪......】

    【楼上的,上班不要摸鱼!】

    秦川会心一笑,放下手机,正准备继续今天的工作时,周梓城拍了拍他的肩膀,小声说道:“师傅,数据库好像出了个BUG。”

    秦川心脏微微一缩,靠,怕啥来啥!他故作镇静地问道:“说吧,哪一环出问题了?”

    “我们针对不同的测试场景进行测试,但是经常报错。”

    “这个异常是你们自己丢出来的还是软件运行出错给出来的?”

    “是我们自己丢出来的,我们定了一个seconds_behind_master的告警阈值,超过阈值就认为发现了异常,但是经常出错......”

    秦川看了一眼周梓城,只见他的眼眶都有些发红,秦川叹了口气,说:“你等会儿回去,给你安排个任务。”

    “秦哥你想到解决办法了?我来就行了!”周梓城听到秦川要给自己安排任务,竟然开心的不得了。

    秦川无语,拍了拍周梓城的肩膀。唉,怎么会有人听到有任务还这么开心呢?以后要是去了黑心公司,老板不得狠狠地收割?

    “回去宿舍之后,好好睡一觉,这个BUG给我来修!”

    周梓城一愣,说:“秦哥,我知道这个架构是你搭建的没错,但是我们最近写的代码都快超过5万行了,光靠你自己就想修好恐怕——”

    “你先拿镜子照照你那黑眼圈再说话!”

    周梓城没有言声,这段时间没少学习,虽然都是计算机的知识,但他目标明确,学得很快。现在除了林语墨和秦川负责解决困难一点的代码外,基本上大大小小的内容都是让他来统筹规划。

    5万行?在秦川看来就是几千行代码,而且还是那种结构清晰,脑海中自动给每行代码写满了注释的那种!

    “QPS突增?大表DDL还是锁阻塞?”秦川接着问。

    周梓城摇摇头。

    意料之中的坏消息,秦川看向代码山,思忖着。

    即便读代码的速度快别人了好几倍,但是如果让他一一排查下来,恐怕还是要花费大量的时间。一方面,他总不可能枚举所有的根因,毕竟由于经验的局限性他不可能考虑到所有的故障场景,另一方面,如果需要对一个全新的指标进行诊断,而在以后没有经验的情况下,又如何快速整理出判断异常的指标呢?

    最后,也是最重要的一点,“QPS突增”、“低效执行计划”、“表缺少主键或者唯一键”会造成seconds_behind_master指标值的异常,但是为什么这些因素会造成指标值的异常呢?

    秦川打算从内核源码的角度来解决这个问题!

    “seconds_behind_master的值由这三个变量决定的话......计算逻辑的话最后的主要时间戳的值来自于成员变量new_ts,而这个成员变量的又来源于这个事物对应的事件群......”

    秦川从根源开始推导,首先就要解决成员变量的计算逻辑!一步一步深挖,找到出错处的根源,而不是一味地打补丁,缺啥补啥。

    “计算的逻辑搞定了,接下来就是写一段获取最后的主要时间戳的代码了......boolmts_checkpoint_routine(Relay_log_info*rli,unlonglongperiod......)接下来就是执行这串代码,使用协调器来扫描这一组的元素并更新......最后当程序员replay的时候,指标值就会增加100秒!完成!”

    “秦哥,我们走了。”

    秦川抬头看了一眼时间,内心一惊,小小的一个BUG他就已经修了一个下午!

    “知道了!”

    秦川盯着电脑屏幕,花费一个下午,得到的成果就是眼前这个用来进行快速监控数据库异常的小软件。它不仅能够看到流量的具体情况,以及MDL锁的持有者,还能让后台程序员对用户进行限流或者Kill掉阻塞者的SQL!

    “最后,让我来看看你到底在哪!”秦川点击运行键,过了5秒,错误的信息瞬间弹出!

    43582-43594出现错误!

    秦川如释重负,露出了笑容。

    “仅仅十几行的代码,竟然费了这么大的功夫才解决,真是不容易!”最后的错误竟然是周梓城自己的疏漏,不小心写了一串代码,引发了MySQL进程自己触发了Crash,也就是熟知的MySQL自杀,将这段代码进行了简单的修改后,整个程序就再没有出现错误。

    “完美!”

    短暂的喜悦后,秦川顿感人困马乏,他按着额角,修BUG这件事实在是太耗费脑细胞了。秦川感觉整个人的气质都仿佛被削弱了不少,这感觉,比写5篇数学论文还累!

    看着空荡荡的自习间,秦川发着呆,放空着大脑。

    “咔嗒!”

    门被打开。

    秦川扭头,竟然是林语墨。

    自习间没有开灯,乌漆漆的房间中,秦川看到林语墨一手拿着雨伞,一手提着一个袋子,但不知道装着什么,但他似乎嗅到了一丝奶香味和微甜的味道。

    “小秦,怎么没开灯呢?”林语墨按开了灯光,顿时她娇美的面庞浮现在秦川眼前。她把手中沾满雨水的伞放在门旁,看着秦川,嫣然一笑。

    “刚在修BUG呢。”

    秦川勉强笑了一下,他现在很想赶快回去宿舍睡上一觉,但是又意识到自己还没有吃晚饭,无奈地看了一眼窗外。

    秋季天黑得很快,但在路边灯光照射下还是能够看到细细密密的雨丝划过。

    他忽然想起来没有带雨伞,有些懊悔。