零零看书 > 字节跳动 > 第26章 人无完人

第26章 人无完人

人无完人啊!

……

按下加速按钮之后,极速靴里的brave程序会由守护状态转变成监听状态,时刻监控着穿戴者的奔跑速度,一旦达到预定指标,立刻开启加速。

通过哪些指标来监控速度呢?

这就要靠brave程序接收的硬件传输过来的数据来计算了。

脚底、脚面、侧帮、脚跟,每一个部位的组件都在无时不刻的传送着数据,包括:受力位置(内部还是外部)、受力方向(角度)、受力大小等。

一般以连续两次脚跟落地(外部受力)时的时间间隔作为判断速度的依据,同时还要根据脚跟受力的角度,以及其他部位的受力情况,被判定为“奔跑受力”的才会有效。

一旦达到设定的预期速度,便自动触发开启加速;在触发之前,如果收到取消指令,则会再次进入守护状态。

触发开启加速的形式,不是持续性触发,而是间歇性触发。在脚掌离地(内部受力)的瞬间,会在脚跟处触发一次瞬间的动力喷射,以增强本次奔跑发力的力度,达到加速奔跑的目的。

至于动力喷射力度的大小,可以根据穿戴者个人的身体承受能力提前设定好,球员们也少不了要提前做很多适应性练习。

关于加速开启的时限,从技术上来讲,只要能量充足,就可以一直加速,每次脚掌离地都可以喷射一次,完全可以做到没有时限。

但实际上,足协对此有明确的管控,加速开启的时间不得超过3秒。否则球场上所有球员都在飞,这球就没法踢了,更没法看。

所以,3秒之后,加速效果便会自动失效,程序会再次进入守护状态,同时会根据监管的要求,设定一个冷却时间或者是扣减可用次数。

当然,也有特殊情况,比方说球员两秒就达到了加速的目的,想要提前停下来怎么办?

很简单!

只要你能控制自己的身体降速或者停止,让程序接收到的数据不被判定为奔跑时的脚掌离地就行了。也就是说,你必须要有能在加速状态下仍然可以控球急停的能力。

这不仅是对球员身体素质和控球技术的考验,更是对球员在球场上能否把握加速时机的考验。能够提前预判开启加速的时机,充分利用这3秒的加速效果,减少提前急停带来的身体消耗或损害,是一项非常重要的能力。

因为收不住脚,导致受伤甚至残废的,不在少数。

……

接下来说一说动力喷射。

动力喷射,是指程序在接收到加速指令后,调用能量块的驱动接口,把能量汇集到脚跟处,完成一次爆发式喷射,从而产生动力效果。

这里的操作相对比较简单,都是现成的api,只要按照穿戴者设定的喷射力度计算好所需能量,直接调用即可。

总体来说,极速靴算是一个非常简单的机械能量设备了,因为它跟本就不涉及机械驱动和能量供给,只有一系列的数据接收计算和非持续性的能量爆发。

严格来说,这种将能量爆发出设备外部的做法,其实是武器编程的核心,但这极速靴驱动的能量非常小,而且爆发时间极端,根本就用不到武器编程理论。

……

舒朗越听越觉得带劲儿,刘昊然给他做的功能分解实在太细了,仿佛把一件极速靴的分解组件呈现在了他的眼前。

“要不,还得先讲讲机械驱动和能量驱动吧!api先不急。”舒朗恳求。

确实,核心203个,总计三千多,想急也没用,反正一时半会也学不完、记不住,不如先听听后面这两门课程来的过瘾。

舒朗听的过瘾,刘昊然讲的也来了劲。

接下来给他讲机械驱动。

机械驱动的核心:动、转、停。

这是一切物理运动的基础,再复杂的物理运动也无外乎这三项的组合。

动,顾名思义,就是移动或者行动。在brave程序里,所有可以“动”的设备,都会被指定一个基础方向,这个“动”一般指的是,按照这个基础方向向前移动。

停,很简单,就是停止移动。

转,这个厉害了,这可不是简单的转向,而是前后左右上上下下全方位无死角立体转向。

简单的机械驱动,是一个指令接一个指令的执行,比方说:前进-停止-转向-再前进……

很容易就能写出一个这样的驱动程序。

但实际上,大部分情况都是在移动中进行转向或者突然停止,有的是被动遇到阻力,有的是主动受力迎击,有的是腾挪闪躲,有的是寻找时机……

每个组件不仅要考虑自身的情况,同时还要考虑到其它组件传过来的触发数据,计算量既庞大又复杂。

这里面除了基础的数学运算以外,还会涉及到多方面学科的知识,比如:解析几何、线性代数、微积分、牛顿力学、流体力学等等等等。

最复杂的还是异常情况的处理。

比如说,设备的部分表面被腐蚀损坏,导致局部传感器失效,驱动程序必须能够根据硬件的反应识别出来,及时做出补救调整,至少要保证设备在整体上仍然处于可用状态,不会因为缺失了部分数据而导致计算偏移。

真正体现技术和产品实力的地方,不在于正常情况完成的多么好,而在于对各种异常情况都能兼容的能力。

硬件是死的,能量块是死的,api也是死的,但人是活的!能写出兼容性极强的灵活代码,那才是好工程师。

……

哪怕是一个很小的机械能量设备,也需要一个团队来完成。这个团队中,除了代码工程师,一般还有有一个这样的角色:产品经理。

负责任的产品经理,一般都会把各种计算的指标和规则都整理好,交给代码工程师来开发。这样可以极大的减轻工程师的负担,可以不用再做复杂的计算,只关注api调用即可。

但是,如果只能在产品经理的指导下才能完成代码,就算你学过了高级编程,那你永远也只能算是个初级水平。

再说了,真正负责的产品经理能有几个?

人无完人!

尤其是产品经理。

滥竽充数的实在太多了,如果代码工程师不能对自己的代码进行业务上的把关,迟早会接产品经理一锅。

一般来说,进阶到高级编程以后,就算不用自己做计算,也至少要具备能够做计算的能力,起码要能跟产品经理形成互补,填补他的计算漏洞。

如果有机会能够进阶到资深编程,那就又不一样了。资深编程的团队里根本就没有产品经理,或者说人人都是产品经理。

在一个资深编程的团队里,虽然不一定会让你做计算方面的工作,但你必须要具备可以做各方面计算的实力,大家只是分工不同而已。说不定随时会有一个模块需要你顶上。

……

刘昊然情不自禁的聊了许多,看看舒朗的状态似懂非懂,决定先缓缓。

舒朗呢,他其实听懂了,他懂了一个事实:太tm难了!就刚才那一串学科就把他给吓懵了。

解析几何、线性代数、微积分、牛顿力学、流体力学…

舒朗绞尽脑汁,试图从记忆里翻出点相关的东西,无奈,连书皮长什么样都想不起来。一想到要回去学高数,就忍不住打了一个机灵。

他不是不想学,而是条件反射的结果。

当初因为第一堂课没入门,导致后来所有的数学课都爬桌子睡大觉,然后高数就很荣幸的成为了舒朗大学生涯所挂的第一科。

以舒朗目前的情况来看,意识觉醒,逻辑出众,真要回去再学一遍应该不成问题,可哪有那么多的时间?

空悲切啊!

再想想那三千多条api,舒朗心里顿时一阵心酸,凉了半截。

……

刘昊然见舒朗状态不太对,也没接着讲,把自己以前做的一个极速靴的驱动代码发给了舒朗,让他先看看,学习一下,找找心得。

api不会用,但看总会吧?

再不行去查api手册,虽然效率慢了点,但总归对学习来说是有很大好处的。

六点,刘昊然离开。

舒朗无精打采,想想那几个学科就头疼,哪有心情看代码。

但是他知道,如果不把那些知识都学会,将来就不可能迈入资深编程的行列,可那是想学就学的吗?没有几年的钻研,能有什么收获?

悻悻之下,舒朗还是点开了极速靴的驱动代码,加载到eclipse里,随便点开一个代码文件,首先映入眼帘的便是工整的注释。

一看作者:

呵呵,这英文名起的不错,这是要做掌控者啊!

舒朗瞟了几眼代码,果然有很多api的调用都看不懂,连查带猜的看了一段,总算弄明白了那段代码是在干什么。涉及到逻辑的都无所谓,最擅长的就是干这个,但一旦涉及到计算公式,就会直接傻眼懵逼。

“没意思啊~”

舒朗叹息一声,不想看了,学习的欲望暴跌。

但是他突然想起了debug窗上的那个红点,忍不住想看看刘昊然写的代码有没有bug。