00:00
好,咱们写完第一个需求的时候呢,接下来来看第二个需求啊,第二个需求叫统计所有人在2021年12月份消费的总金额,诶咱们同样去写这个SKY扫描对吧?好,当我们学习SKY扫描的时候,我们发现一个非常尴尬的一个事情,如果我们保留原先的这种RK设计方式的话,我们知道你写扫描的时候一定要从前这个RK啊,肯定要从前往后写,对不对,你不可以跳着来,你特别想直接跳过来写这个日期啊,这个日期这个中间啊,我们没有加分隔符,因为没有加分隔符的必要,对吧?如果你是为了设计比较美观的话呢,你中间可以加一个横杠,表示字段与字段之间的分隔啊,其实你加不加呢?因为都是定长的,所以并不影响最终的一个结果啊,可加可不加。好,你在这个地方进行扫描的时候呢,会发现很尴尬,你这个R设计就注定了它只能按照用户进行扫描,那就很麻烦了啊,能按照用户进行扫描吗?显然不行,我因为要统计所有人,那所有人这玩意儿咋写呢?你总不能说从上箭头上箭头拼一个定差,然后到什么到最大的那个阿斯卡玛写一堆数道吧,那你这个数据量就爆炸了,对不对,把所有人用户呢都给他拉过来。
01:18
啊,这就回到最开始了啊,这个地方也就体现出了我们h base设计最大的一个痛点啊,最大的一个痛点叫一种设计格式。只能啊,只能。完美。对吧,满足一个需求啊,你想要完美的满足一个需求,一次设计呢,只能满足一个啊,这个你就很明显看到,对吧?H base为什么在行业内使用的时候比较麻烦,麻烦点就在这儿了。你想让他去满足另外一个需求,尽管两个需求都很简单,对吧,你就需要去修改它的一个R设计啊,需要进行另外一套rie设计,那咱们这里呢,既然达单独拉出来讲了啊,肯定不是一个需求,写一个rie设计,那就没有意义了,咱们这里呢,就给大家介绍一下你怎么样能够同时满足多个需求它里面的点。
02:11
在哪啊,是可以同时满足的,只是性能肯定没有单独满足一个,这个性能高对不对,但它还是可以的啊,是可以的啊,怎么样来满足呢。这里面就涉及到如何去写的一个问题,你看一下,如果你想按照日期去进行扫描的话,我们如果按照刚才的一个模式,你是不是直接写date就可以了。你这个start跟stop很简单嘛。肉。啊,箭头对应回车过来,啊,这叫stop肉。箭头过来对吧,这其实很简单,我们只需要在这里写2021-12,下面写呢,2021-12点,诶你想一下,如果我按照之前的模式的话,我这样扫描是不是就得到了第二个需求的一个数据量,那这个前提条件呢,是它的RK设计是这样的R。
03:02
K啊,设计。怎么设计呢,你只需要把这个对应的日期和用户呢,换一下位置啊,换一下位置啊。设计格式换一下位置怎么换呢?你把这个A写前面啊,然后呢,再写上箭头大A,上箭头大A,哎,大A。写这个user啊,你给他换一下格式,倒转一下,然后这个日期呢,格式呢,我们也给它复制过来写到这。啊,你只需要这样,是不是我们直接用这个WW就能满足这么一个需求了呀,看起来好像确实是这样,但如果你这样写的话,你回过头来再去完成第一个需求,你就发现两个呢,是没有办法完成一个兼容的啊,就能做A了。做不了B,能做B了,做不了A。是这样吧啊,都没有办法完美的实现,这是我们HP最大痛点啊,但并不意味着它没有一个能够找到平衡的一个点是有的,他现在冲突就在于。
04:01
I的这个啊,扫描的时候只能按照前面的字段来进行扫描啊,只能按照前面自然写的对不对,他没有办法跳过前面的直接写后面的一个扫描,那这时候呢,就取决一个谁能写在前面,谁写在后面,能够同时兼容多种的一个情况了,啊这里呢,有一个点你只需要记下来就可以了,这个叫。可以穷举的写在前面。可以。穷举的写在。写在前面即可。啊,七个什么意思呢?你找一种可以穷举的写在前面,你就能够实现同时完成多个需求了,那如果是用户名放在前面的话,很明显这个需求呢,你怎么写他都成立不了,因为用户名是不可穷举的啊,你要真的说我全部从最开最小的字母写到最大字符,那这人都累死了对吧?我们认为啊,这个是不可以群举的啊,我们的穷举呢,是针对人而言,对吧?超过100个我就就受不了了啊,你得至少得最多就几十个啊,我还能忍受一下对吧?好,可以穷举的写在前面,那对应的谁可以穷举呢?好像我们的用户和日期都不能穷举。
05:13
你总不能求取时间吧,这正常人都做不到对吧?哎,都做不到啊,所以你需要对他进行一些改装和变化,怎么改装呢?你看这个时间,这用户已经放弃了,对吧?啊,你不可能的啊,用户是不可能的。日期是有可能的,你需要对它进行改装,怎么改装拆分啊,拆分就可以完成改装,年是可以穷举的,月可以穷举,日可以穷举,什么时候不能穷举的呢?太细就不行了。对吧,哪一年哪月是不是可以穷举啊啊,我们最合理的范围呢,就应该到月份,因为月暂是可以忍受的,一年就12个月,对吧,你电商开能开几年呢?这不是我我这个说这个行业啊,你你电商从成立到现在都不超过20年。这个数据对数据量对我们来说是可以接受的,可以穷举的,所以我们的ROK设计格式的应该是把它给拆分一下,到哪呢,到这个位置。
06:08
啊,到这个位置,如果你的设计格式转化为这种形式的话,然后在后面的位置,因为这是一个定长。固定的一个长度,对不对,这是一个定长,定长完了之后,在后面的位置再给它拼接上对应的一个后半段的日期。Date括号这后面的应该是DD,你你可加这个杠,不可加可以不加,对吧,它开头就一个杠啊,你可写可不写HH冒号MM。括号SS啊,空格MS对吧,你这样去完成一个拼接的话,可穷取的也就是年加月写在前面,那它就可以同时实现两个需求了。啊,怎么实现,这是我们最终对吧。叫最终满足啊,两个需求的。设计最终的一个设计怎么怎么实现呢?这里呢,我们可以来写一下啊,对应的这个需求一给它复制过来对吧。
07:06
好,需求一复制过来怎么实现呢?你看张三在这个月份消费的总金额很简单嘛,按照对,按照对应的去拼就可以了,干我们把这个格式给它复制过来啊,用死干的一个格式给它复制过来,对应的开始之后就是二零二一十二,你这个后面不能直接写点。他要写上对应平行一个用户对不对,我们的用户是不是就是上箭头大A,上箭头大A。啊,然后后面写什么,写张三嘛。我们这个呃,上箭头A呀,它的个数不一定啊,取决于你的这个总长一共是多少,它缺多少个,你补多少个,保证它是定长就可以了,到这里给它拼接上,这是什么?张三12月份的消费金额吧,到12月份啊,后面呢,你给他留空啊,表示这个范围呢,都要后面每一天的数据都要对应下面这个位置也写上。对应的这么一个范围,好,到了这一位之后,你对应下面日期不是一定是这个杠吗。
08:00
一定是这个杠对吧,你只要写一个略大这个杠,还是点后面已经看过阿尔法对吧,还是点好,我使用这种方式是不是就能统计出第一个需求了呀。那第一个需求就完成了啊,就是这么来统计的,好,如果是完成第二个需求的话。嗯,给你复制一下。对吧,如果是完成第二个需求的话,我们只需要对应的去代写一份就可以了,啊怎么写呢,你把这个给去掉,这个给去掉,对吧,它下一个位置啊,下一个位置一定是上箭头A。对吧,啊,一定是上箭头,哎呀啊呃,那你这个上箭头A呢,就能够表示所有的人了啊,实际上呢,你随便写一个比上箭头A大的就可以了,那那你怎么写都比它大对吧?哎,你随便写一个点就可以了,这个地方开头一定是12月份的数据。能理解吧,那我这样设计的话,最终得到的结果呢,就是第一个需求这样扫描,第二个需求这样扫描就能够完美满足我们的需求了啊,这是我们两种需求一个合力啊,所需要的点呢,我们整个柔心设计最核心的点呢,就在于两点,一个是填充。
09:10
填充字段,保证每个字段呢定长,这样你在进行周OK排序的时候,它不会错位。第二点呢,就在于你在满足多个需求的时候,它会涉及到谁能放前面,谁不能放前面的问题,那谁能放前面呢?可以穷举的放在前面,像这种userr用户名永远不可能穷举的那千奇百怪的对吧?有的人杀马特呀,这洗剪吹啊,写的都不一样啊,你肯定是没有办法预估他能写什么东西的啊,可能都是一些符号对不对?那你一定要是把它给放在后面,月暂可终取它固定就那么几个数放到前面,我们就能够满足多个需求了啊,这是我们对应的RK设计第二个需求。
我来说两句