800小说网 www.800xs.me,最快更新字节跳动 !
一棵树想要长得更高,想要接受更多的光明,那么它的根就必须更加深入黑暗。
……
2008年4月24日。
这一天,舒朗心情有点小激动。
这一天,他要学习brave语言的api了。
api是什么?就是应用程序的基本编程接口,也就是brave语言本身提供的接口,可以由程序员在开发功能代码的时候直接调用。
舒朗学到现在,几乎已经把brave当成了java,这api在他眼里,估计也就跟当初java语言的api差不多,常用的也就那么十几个,其它的只要知道有那么回事就行,用的时候知道去哪查就ok。
所以,学api对他来说不难。
所以,学api其实一点都不让他激动。
让他激动的是,学完了api就可以学习机械驱动和能量驱动了,这两块都是他之前学java的时候完全没有接触过的,甚至连类比性都没有。
在他看来,只有学会了这两门课,才算真正迈入了机械能量设备驱动编程的大门,才算真正进入了这个新世界。
他暗自盘算着,下午要让刘昊然在一小时内把api讲完,赶紧进入下一个阶段。
……
上午,舒朗把他最近几天学的东西稍微回顾了一下。
学得快就意味着学的多,学的多就意味忘得快,毕竟还没有经过实战演练,很多知识点还没有真正的烙在心里,几天不看,很可能它就跟你说拜拜。
有道是:学而时习之,不亦说乎。
但只有经过实战演练才能真正把知识点牢牢记住。写一段惊心动魄的代码,实现一个高大上的功能,都能够加深你对知识点的记忆。要是再出点bug,让你挣扎过、痛苦过、挠过心才得以解决,恐怕你这辈子都不会把它忘了。
但是在有这样的机会之前,还是先“时习之”吧。
舒朗复习了一上午,把基础知识点和anix模拟环境都演练了一遍。但不知道机械能量相关的程序到底是怎么个写法,这些基础的东西该怎么用进去,舒朗只好按照以前写oa程序的方式,随便写了几段代码示例,只当是练练手。
debug窗右上角数字跟着变了:
灰色:20171
绿色:0
红点当然还得用。
不管他写的这段代码有没有用,反正最后是极其工整。
他又把这段代码上传到了anix的模拟环境尝试运行了一下,完全没问题,当然也没任何作用。因为他这anix毕竟是个模拟环境,又不是真正的机械容器。再说了,他写的代码也就是打印几条日志而已,就算发布到真正的机械容器上,也同样没什么效果。
……
下午刘昊然来的时候,表情有点惆怅,因为他还一时没有想好怎么试探舒朗,决定还是先讲完基础再说。
“学习brave的挑战正式开始!”
刘昊然一句开场白,把舒朗吓的一愣,接下来的解释,更是直接扑灭了他“尽快学完api”的梦想。
“接下来我们学习bdk的核心api,意味着我们正式踏入了机械能量编程的领域。”刘昊然说。
“不是学了《机械驱动》和《能量驱动》才算正式进入这个领域吗?”舒朗不解的问。
“bdk的核心api,是指brave底层的所有api,包括机械驱动和能量驱动的api,至于你说的后面那两门课程,更加侧重于应用层的设计和封装,底层调用的还是bdk底层的api接口。
正所谓,想要长成参天大树,就必须先牢牢扎根,同理,想要写出复用性极强、容错性极高的程序代码,就必须要牢牢掌握bdk底层的api。
当你对底层api做到随心所欲、想用就用、任意组合的时候,离成为码神也就不远了。”刘昊然解释道。
道理是这个道理,可舒朗听的感觉似乎有点不太一样。基础重要是不假,可基础再好,那也只是基础啊!码神不得靠高阶理论和实践吗?
“刘老师,你掌握的怎么样了?”舒朗问。
刘昊然似乎有点不好意思,但还是说了:“我工作了七年,也只是掌握了一百八十几个接口而已,其它的虽然也都知道,但实际开发的时候,还是免不了要查api手册。”
一百八十几个?
这还不好意思?
我的天哪~
舒朗简直难以置信!
在他的java认知里,掌握常用的那十几个接口就足够吃遍天了,其它的随用随查就好,用的多了,自然也就能多记住几个,可也不可能掌握一百八十多个啊!
“刘老师,bdk一共有多少接口?”舒朗问。
“常用接口有203个,其它不常用的接口,算上一些二级接口,至少在三千个以上。”刘昊然说。
嚯!
这把舒朗给吓的,常用203个!总计三千以上!呵呵!怪不得可以成为码神!
先不说能不能把这203个api全都记住,就算记住了,一个“任意组合”能排列出多少选择?还能随心所欲!那得熟练到什么程度?反正舒朗想象不出来!
真要是有人能把api掌握到刘昊然说的那种熟练程度,别说叫他码神了,就算直接叫他“神”,舒朗也服。
“刘老师,你是不是算是准码神了?”舒朗带着一丝崇拜着说。
“别开玩笑了,我这才一百八十多个,也只是掌握了基本用法,至于组合用法还差的远呢。不过,我倒是觉得你有成为码神的潜质,加油吧!”刘昊然说完准备开始讲课了。
后半句,舒朗根本没信。打断道:“等等,刘老师,我有个想法…”
“你说。”刘昊然。
“我觉得这api有点多,咱是不是一时半会也讲不完?”舒朗问。
“当然了,我觉得怎么着也得…三…五天吧!”刘昊然有点犹豫,不知道是不是又低估了舒朗这个变态的实力,想了想还是多说两天吧,大不了打脸。
“那…咱先讲后面那两门课程吧?先了解一下应用场景,再回来学api,也许会有点帮助。”舒朗建议道。
“有道理!”
刘昊然有点吃惊,这倒是十分符合科学学习的逻辑,先认识场景,再学习原理,有的放矢,提高效率。
可以!
从哪讲起呢?他还没做这部分的课程准备,不过也无所谓,自由发挥也没问题,反正只是讲场景,又不涉及实际的api封装。
于是刘昊然便讲了一个案例。
比方说,做一个球场上的机械能量设备极速靴。
顾名思义,极速靴就是加快奔跑速度用的,可以在关键时刻帮助冲刺、抢断、射门等一切需要加快速度的场景。
当然,这极速靴是要穿在脚上的。
要满足以下几个需求:
第一,在未开启的状态下,极速靴必须能够适应脚部的正常移动,包括行走、奔跑、起跳、落地、触球等各种踢球时的正常操作。同时还要在一定程度上,起到保护脚踝的作用。当然了,也不能起到伤害别人的作用。
第二,在开启的时候,要在穿戴者主动加速到一定程度后,接续式的开启,不可突然触发,就像飞机起飞前的助跑一样。
否则,很有可能出现的情况是,脚飞出去了,人还留在原地。
另外,还要控制加速的程度,不是说越快越好,要时刻计算穿戴者脚部的自主发力情况,以免超出穿戴者的生理承受范围,而造成身体损害。
同时,还要能够及时减速停止。
第三,还要能够按照监管的要求,能够控制每一场的使用次数,以及每次使用的间隔时间。场次结束后,还可以由专门的解锁人员将次数重置。
怎样才能实现这些需求呢?
第一点其实相对比较简单,未开启状态的脚部适应,只要硬件方面做到兼容即可。在软件方面,这时候其实就是一个待机状态,随时等待穿戴者触发启动即可。
可怎么触发启动其实是个难题,你不可能跑着跑着,意识一动它就触发了,电视里可能会那么演,为的是看起来带劲儿、帅,但实际上,必须得有一个触发点。
那么这个触发点就很关键!
做个按钮?
万一被误点怎么办?
有人说了,你不是还有速度控制吗?达不到有效的奔跑速度,误点按钮也不会生效啊!
有道理!
但这是足球运动啊,一般有穿戴设备的球员都是队内的关键球员,他们大部分时间都在场上不停的跑啊跑,你能保证他们每一次的奔跑都不会误点按钮吗?万一正好赶上了呢?
有人说了,那就做两个按钮,同时按。
这个稍微有点可行,甚至还真有这么干的,但实际上,球员在决定开启设备的时候,往往都是千钧一发的时候,同时按两个按钮会增加操作复杂度,尤其是在快速奔跑过程中,很容易导致他们分心,贻误战机。
所以,业界比较通用的做法就是,做一个按钮,但不是实时开启按钮,而是延迟开启按钮。
何谓延迟开启?
就是说你按下按钮之后,不是马上开启,而是在接下来的一段时间内,主动加速到指定速度,便会自动接续式开启。
所以,哪个球员能更快的加速,更有效的开启极速靴,哪个球员就更有穿戴极速靴的发展潜力。于是乎,大家给这个指标起了个名字:百公里加速秒数。
没人能达到百公里时速,这里其实是代指开启极速靴的必要速度,大家开个玩笑而已。
说到这,又有人会怀疑:“这也没法避免误操作啊!”
的确。
不过这既然是延迟开启,也就意味着,在正式开启之前,可以主动解除。
这个按钮穿戴在什么位置的都有,完全看球员们的个人习惯。一般被触发后,都会有明显的提示,会第一时间让穿戴者感受到。如果是误操作,只要不加速触发,赶紧解除就好。
如果你还要说,在需要正常触发的时候,被误解除怎么办?
真要是这样,要么是他把触发按钮放错了位置,要么就是他的脑子有问题,他就不配使用如此昂贵的高端设备!
不服来辩?
……
接下来的问题是,按下按钮之后,根据什么来判断他的速度达到了开启标准。
这就要结合第二个需求同时来分析了。