粉丝5.5万获赞19.5万

喂,你好,嗯,行,那你先做个自我介绍吧。 later 啊,然后我看你是准备秋招是吧?对,我是准备秋招。面试多吗?面试面试,现在面了应该有七八个吧,然后有意向的也有几家,像你现在这种就是找的实习的话一般会多少钱?就是因为我在陕西嘛,基本上 一个是开发港,一个是就是我面还有技术支持那一个,两个基本上都是六千多,或者最多就是八千,就这样的一个水平。 然后,嗯,外地的话,我今天今天卖了一个无锡的,然后给我开的工资是也是六千多。就是如果说一个应届生,二四年毕的一个应届生,然后实习都能找到,这个 挺优秀的我觉得,但是因为我自己准备的时间也比较久,所以我就还是在想想着再看一看吧。嗯,行,可以,因为还有一些公司还没面吗?嗯, 行,那行,那我要不就给你开始面试吧。嗯,好,嗯,行,那你就是说我看你这简历上写了两个项目,对吧?你对哪个项目比较熟?咱们就聊你熟的那个项目。第二,我觉得第二个吧,第一个这个是写的比较早了。嗯,体检预约系统,然后那你简单介绍一下,就是你这个项目的一个核心业务流程吧, 只讲核心业务流程即可啊。嗯,这个项目其实是我们课程设计的时候做的一个项目,但是它其实是基于 mvc 架构实现的,那我主要负责的话,其实就是这个套餐管理的这一部分,就是预约的这一部分的功能。嗯,首先是对这个套餐的一个增商改查,还有就是他在预约这个功能实现的这一部分 的一些机制的考虑,然后还有的话就是这个架构的本身的一些实现。就比如说我用呃 w 去做他的一个远程的通信,然后用 get 位去作为网关,这些都是配合的。还有的话就是说去用 redis 做缓存,然后考虑到他在这个分布上 是就是高并发的这个情况下呢,会有一个现成安全的这个问题,主要是做到这一块。嗯,行,然后你这里面我看你是已经有做了那个啊,就是服务拆分,对吧?这个项目 啊?什么服务拆分?你知道我是有把它,我知道这个就是为服务的一个基本的思想吗?就是说如果说整个的功能都在一个项目里面的话,他可能会比较容,这种就是比较庞大,比较容杂,不好维护。然后我们就按照功能模块,然后对他进行拆分,分成不同的小的项目, 按照功能进行一个划分,这样的话可能维护或者是开发起来的话,就会相当相对来说比较容易些。嗯,其实这个怎么说呢?核心原因不是这样的啊,我们为什么要拆为服啊?其实说他并不说是为了方便维护啊什么的。那你想想,我现在如果我拆成了就一个一个主项目,然后拆成十个十个子项目,对吧?那你觉得是一个项目好还是十个项目好维护,对吧?所以就是拆拆服务的原因是什么? 拆服务的原因主要是在于就是说项目结偶,就比如说我一个大项目的话,我现在如果一个项目很大,我是不是请了半天,对吧?而且他有一个很本质的一个问题是什么?就是比如我现在我只改了一行五官紧要的代码,但是我现在上线的话,是不是整体的服务都要去一个重启,对吧?会导致一个整体的一个服务可用,对吧? 但如果说我把它插上服务之后的话,我只需要重启这个服务即可,对吧?啊?这是第一点,这这样的话其实方面就是我们运维是这样的一个方面。然后还有一个是什么?就说集群上,就比如说其实像我们的话,一般上就说我们是只是某些服某些接口他这个并发量会比较大,对吧?就比如如果说像你这个的话,其实一般上并发量比较大的可能就是在预约的那个接口上比较大,对吧? 嗯,对,那其实像这种的话就是我们要把它拆出来,就是我们要把我们,我们要把下单这种给他单独拆一个服务,对吧?这样的话我们就可以针对这个服务做集群部署,对吧?你如果不拆的话,那你是不是要对整个服务做集群部署?这话能理解吗?对,确实这样的话资源上面也会就是稍微的有一些节约。对,所以像你说的什么就是方便开发什么这些 存在的,就比如一个项目的话,就即使是一个项目大家一块开发的,其实也无所谓,对吧?主要我觉得还是就是说是从功能性上来说他是合理的。好的,下一次的话可以换种思路回答,就是在多线城下会有并发问题,对吧?那你是在什么业务下会有多线城,就又会有什么样的一个并发问题呢? 呃,因为他因为这个模块这里有一个秒杀的功能,那如果说这个功能一开放的话,可能就会就是用户然后去做这个预约,然后就会导致一些请求,然后融入到我们的这个服务器上,那如果说 就是他这个预约不是一步就可以搞定的,嗯,就是可能还要去生成一个订单呀,然后要去查数据库呀,要减那个 数据库的那个余额呀,嗯,就是一系列的操作,嗯,那这些操作你并不能去保证他的一个原子性,那这样的情况下的话,可能就会造成一些就是数据库他的一个,嗯,脏读呀,或者是说如果重复读这样的问题 发生,那这样这个时候呢,就需要去保证他的一个现场的一个安全。我先问你一个问题啊,就是你你达到这个时候其中间有几位已经打偏了,就说你刚才说不能保证原子性,对吧?为什么不能保证原子性呢?啊?这个跟原子性没有关系,我不应该这样去说,对啊,就你为什么,为什么这个他就是一个, 对吧?所以还有回到问题的开头,我问的是什么事?就说你这里面哪些地方遇到了并发问题,哪些场景有并发,对吧?其实给我介绍了一堆,但是你并没有去说我的问题,对吧?你说脏毒、患毒,他确实并发问题,对吧?但是你也没有说,就说具体是怎么造成的脏毒或者患毒。 嗯,我觉得主要就是我的这个这个方法,他可能就是因为一个县城在访问的时候,其他因为这个方法没有枷锁,那其他的县城也可以对他进行一个访问,那这个时候在两个县城就是你没有办法去确定他的执行,执行顺序的情况下的话,那在 数据库那一方面的话,你其实也没有办法就是按照顺序的去执行那个事务。就首先是什么?就是如果说都是查的话是无所谓,就说有没有病发的,就是一定是要突出一个改,就是多县城去修改数据的时候,他才会说存在病发问题,明白吧?就必须得存在修改,你说都是在查,对吧?那大家都在查,那值都不会变,那就随便查呗。 所以就说有可能会造成什么问题啊?就说去,像你说的这种,其实就是说什么脏读啊、放读啊,这些其实是都还好,主要是什么?主要就说有可能是你现在就说 a 十五,然后 a 十五对这个库做了修改,然后呢?就是说他现在并没有提要他拿到了这个啊, a 十五提交前的值,对吧?然后现在 a 十五他把这个值给提交了之后,其实其实 b 数拿到值已经是个措施了,但他还是拿着这个值去做个计算,然后又进行了一次修改, 这才是并发问题,明白吧?啊?简单点来说就好,就是你刚才给我打的就是就怎么说呢?没有去切中重点,行那项目,就聊到这了项目,嗯,好吧,然后的话就我们再聊些其他 他的吧,就比如说就是我看你这里面就说有有熟悉过,就是说一些集合的源码,对吧?啊?啊,那你给我讲一下,就是集合就哈西卖铺他那个铺的方法啊?他的一个铺的流程是什么吗?嗯,哈西卖铺的铺的方法其实 就是最开始是基于数组实现的吗?那我们一开始要存的时候,肯定是先判断这个数组他是否就是为空,如果为空的话肯定要进行一个就是他的初始化操作。嗯,如果说不为空的话,那我们就需要去处理这个我们要添加的元素,然后去 先算它的一个哈西扣的,然后通过嗯,就是魔运算的方式去计算我的这个 元素应该存放在这个数组中的具体的位置,嗯,然后知道知道这个位置之后,先要去查看这个位置上面是否有元素,如果说没有的话,就是构造一个节点,弄的节点去存放保存我的数据,然后存放到这个数组 中去。如果说我这个位置上面已经存在数据了,那就说明我的这个,嗯,有一个哈气冲突的问题存在,那这个时候的话,我就要去判断这个 k 就是我的元素的 k 是否是相等的,那相等的话就说明我是 摆直嘛,然后就把直去切换掉。如果说不想等的话,那我就可能是要去做那个列表,或者是去做竖的扩张了,那这个时候先去判断他是不是一个竖行的节点,如果是竖行的节点的话,那就创造一个竖行的节点,然后插入到这个呃红黑树当中去, 如果说不是的话,那就是一个普通的节点,然后插到列表当中,插到列表尾部,然后其实到这里基本上已经结束了,但是他可能还会存在一个 扩容的问题,嗯,就是因为这个哈西麦普,它的那个长度就是列表的长度,如果说你大于八,并且数组的长度小于六十四之后它是会发生一个就是把列表 表转换为红黑树这样的一个操作。嗯,然后如果说他不满足这个可能会对数组进行一个扩容,然后,嗯,整个流程的话就是这样子的。嗯,行。这个整体答案答的没问题啊,就他有一问题是答错了,他不是曲模上下标的时候,他那个哈西勾的,他不是曲模,他是就是,他是跟那个,他是跟那个。对对对,与他是一个与运算好的呢。 而且就说他那个啊,他那个不是说当时取完哈西扣的值就算了,他那个哈西扣的只会有一个高尺六和低十六的一个异味的,让他这个哈西扣的值尽可能多的位数去参加运算啊。他还有这一步,不过不过他在算哈西扣的就是在掉那个方法的时候,他里面其实还有一个哈西。嗯, 挺厉害,应届生,应届生都学到圆网,然后能讲成这样挺不错的,逻辑也挺清晰的。不行,这个太卷了,太卷了,现在根本一点都招架不住。行,然后那个什么 g v m, g v m 的话,他这个就是说运行时数据区他都用 哪些东西啊?嗯, gvm 的运行时数据区。对,想一下这个说的是不是。这个是,呃,他的一个内存中的一个结构。嗯,就是运行时数据区的那个结构啊?都有哪些? 哦,这个。嗯,如果说划分的话可能会分为就是我我,我只说一点八之后吧。嗯,这是一点八之后。他其实有两个部分嘛。嗯,一个是县城的私有部分,一个是县城的公有部分。嗯,那县城的公有部分的话,他可能就是有堆区和圆空间。然后县城的私有部分的话就分为虚拟基站、 本地方法站,还有一个程序计数器,然后对于这个堆区的话,它其实是内存中最大的一块区域了,是我们存储一些实力啊,或者是说数组,还有一些引用的一些数据,引用数据类型的一些信息是存储存储在这个堆区当中,它也是我们这个,嗯,垃圾回收器 直接管理的一部分空间,然后这个圆空间的话,就是取代了一点七之前的那个方法区,这个这个区域里面存储的就是一些他,不是,他不是取代以前的方法,取代了以前的永久单。 哦,永久带一点八也叫永久带。这个这个地方我了解了一下,因为网上说的还挺多的,然后其实这里他的区别我也没有那个什么,所以我不就是其实有一道面试题,其实还有一道面试题是什么?就是说,是啊,方法区、永久带原空间,他们的联系是什么?他们的关系是什么?其实还有一道面试题是这样的 啊,这个下去看看啊,这个下去可以看看。行行行,打到的其实也不错。对,其实当然这里面有一个问题啊,就是说原空间也很大,对于其实不一定有原空间大的。哦,了解了。嗯,然后就是说像刚才你说的这几个区里面,哪些地,哪些区会发生 om, 哪些区域不会发生 ym? 嗯嗯,那个程序计数器他是不会 会发生异常的一块区域,它本身是比较小的。嗯,然后像方法就是虚拟基站它是会发生 om 然后然后方法站的话它其实也会出现异常但是 他也会发生 om 的这种情况,然后像本地方法站的话那他就是说呃哎他是什么时候会去出现这种 om 的情况呀?对站什么时候出现 om。 嗯虚拟基站的话好像一个是就是说如果我的这个嗯就是站的就是县城他去请求这个站然后他的深度如果说超过了我 gm 虚拟基站的最大深度会出现一个错误然后还有就是我 就是没有办法申就是没有办法申请到一个足够的空间他也会出现这种。对对对你是不是对的?就是说像你刚才说的就是说到达 最大战胜度的话它是一个 style of 啊 style overl 就说是一个战役出啊如果说是就说身体内存不够的情况下那就是说会先会发生外啊。所以这两个就是说具体发生哪一个就说具体得先看哪一个情况先发生啊他就会先对应的发生哪一个异常。再问再问点什么啊?再问一下 mcq 买售后事物的格力级别有哪些?嗯事物的格力级别的话一共有四个。嗯分别是读未提交、读已提交然后可重复读和创新化。嗯 啊就这四种的会有会有什么问题啊?哦读未提交的话就是说我可以读到就是我当前的时候可以读取到其他事物还没有提交的数据,那这个的话就可能会解说学问就行。不用不用详细解释解说学问就行那他可能就会出现脏读、患读和不可重复读的问题。嗯然后呃 读已提交,那读已提交的话就是说,嗯,他只能读到别的事物已经提交的数据,那这个时候的话其实是可以预防脏读的这种情况。但是伴读和不可重复读还是智慧发声。对,然后第三个是读未提交,读已提交 可重复读,第三个是可重复读,那在可重复读这个阶段的话就是说我的,嗯,就是我,我的这个事物他在同一,同一个操作当中,或者说同一批次当中,他的两次读读取到的数据是一致的,那这个时候他就可以 呃,去阻止这个脏读和不可重复读的问题,但是换读还是没有办法。最后一个是串形化,嗯,就说我的错误,按照顺序一个一个,其实就是说是那个什么可不可重复读的时候,他其实也可以解决换读了。 它分两种,就是快照堵和当前堵。快照堵的话你知道 m a c c 吗?嗯,我知道。对,其实你看过 m a c c 的话,你就会知道其实它那个是能解决换堵的问题的,就说如果说是快照堵的话,它能解决解决换堵。 嗯嗯,好的,可以。我要想问了,我感觉你这应届生有这个实力挺棒的,而且你是二四年毕业,对吧? 嗯,然后,然后现在三年的话,还有一年毕业,然后你就已经学到这个水平了,很强,我只能说很优秀。行行,那我随便签了,掌握挺好的,你确实出乎意料。

二零二四,召克有哪些新车带你了解!二十四款维诺克统轴时代召克全系统轴,二十四款维诺克升级前后游刹车架轮组依然保存不变 变速更改了蓝图 r 三还想了解什么车?关注我,评论区留言。

哎面试官你好。哎你好你好你好。呃这样子吧简单介绍一下你的钱吧我有收到简历但是我想听一下自己简单介绍一下自己啊。嗯好的那个面试官你好我叫陈大雄啊目前大四刚毕业 毕业于这个李家学院自学过抓瓦语言数据库与框架开发是超过这个分布式和微服务技术的项目能独立开发然后目前想寻求一份抓瓦的一个初级开发的实习的工作。 啊完了啊完了啊这样子啊这个你想要一个月七万的工资是多少。呃七万工资。呃每个月不定于十二 k 吧然后每 天的话楼上日晴的话不低于五百。啊可以啊我问你几个技术问题吧。可以的可以的 你都了解最好听的什么锁啊锁上啊比如这个 cineplode 的 the saint log 读些所用的就不多了就没什么研究啊。回答完毕了 啊。好那你说说新克耐的实现原理吧。嗯好那个新克耐的是 jvm 实现的一种锁 其中锁的获取和释放分别是 monte renter 和 monte rent 指令在该锁这个该锁在实线上分为了偏向锁、轻量级锁和重量级锁 其中这个偏向锁在一点六是默认开启的然后呃轻量级锁在多线层竞争的情况下会膨胀成重量级锁但有关锁的数据都保存在这个头这个对下的头中。好回答完毕 啊这个也还算上策吧。欢迎收到这个 ancient books 的实现吧。啊呃人学肉的的这个是基于 aqs 来实现的。 没了啊会打倒闭哈哈。那什么是 aqs 啊那个在 aqs 的内部会保存一个状态的变量 stay, 那通过 cs 修 改革变量的值,修改成功的现成表示获取到该所,但如果没有修改成功或者发现状态是累的已经是家属状态,则通过一个威特尔的一个对象分状态现成添加到这个等待队列里面,然后并挂起等待被唤醒。好, 回答完毕啊,单身。你先说说这个 cs 的是几个原因吧。这个 cs 是通过这个昂 c 府内的这个 compulselet 方法实现的。 哦好好好,那你知道这个方法具体的参数的含义吗?呃,这个方法的参数啊,这个方法参数这个有点远了。 我想一下啊,那个第一第一个,呃,好像是一共是四个参数哈,第一个参数是要修改的对象,然后第二个参数是要 这个参数是对象中要修改变量的那个配料啊。第三个参数是修改之前的值,然后第四个也是最后一个参数是预想修改后的值。呃,回答完毕,大概这样子应该没错 是是对的哈。欢迎这个知道操作心啊,级别是不可出现的吗? 呃,我只记得一个叉八六中有一个这个 cnp 开头的指令,具体的我就忘了哈哈哈。好,那你知道这个 cs 指令有缺点吗? 呃, cas 的指令存在的问题是一个叫做呃 aba 的一个一个问题怎么讲呢? 呃,具体来说他就是就是一个变量的这个微啊,就是变量微,如果这个变量微读取的时候啊,初次读取的时候是 a, 然后并且在准备辅资的时候检查到他还是 a, 那就能说明他的子没有被其他现成修改过了吗? 对,如果在这段时间他的只被修改成了 b 啊,然后又被改回 a, 那 cs 操作就会误认为他从来没有被这个修改过。好,这就是这个 aba 的一个问题啊,怎么解决这个 ab 问题呢?嗯,解决这个问题,其实这个 交往啊,这个并发包里面他有提供了一个带有标记原子啊,标记的原子的银类。这个 tomy stink 这个 race 分成,那他可以通过控制变量值的版本来保证这个 cas 的一个正确性。 可以啊,这个刚毕业问这么难的问题,虽然说有些忘记了,但是基本上还是打得上啊。还算还算可以吧。可以这样子,这个我们这个实心感的话,第一期 多久能到岗了?我准备给你安排一下。技术方面。呃,到岗差不多最近一周就可以,一周以内就可以。

我,我怎么会发誓说,喂喂,你好,哎,这里是吗?哎,对你好啊。你好,我这边是这个当年你徒弟简历的,然后我这边看了一下这个笔试呢,已经过了啊,这边跟你说一下哦。好嘞好嘞,天哥, 然后各方面作品啥的我已经都收到了。这样的啊,就是还要来几个技术问题,我这边就差不多能够知道你适不适合我们这边的岗位了, 因为这个目前岗位呢,对这个业务这块呢还是比较缺人的。我也跟你说一下这边的一些真实情况啊,是我们这边啊,你应该也是有有略有所闻的,对吧。嗯,前面确实有那啥了,几轮啊,然后呢也是逼了不少人 啊。那目前呢,这个项目呢也这个业务呢?也不是最新的,也是算法类的,然后呢主要是解决高频发这一些的场景 啊,薪资呢,就是跟上面写是一样的,能给你的大概就是在三十到四十这个区间。嗯,具体当然具体还可以谈啊, 进来之后呢会比较忙一点,这个你要有心理准备啊。好嘞,天哥,这些都能接受的,就是最近这个家里事情还好,但是就是我这边的,呃,开支还是比较大的。 嗯,那没问题,那我现在这边的话就问你一些技术问题,还有一些项目吧,好不好?哎好嘞好嘞,判断一下。好的,嗯,然后就是你说一下这个爪洼线程数过多它会造成什么异常哦。呃, 嗯,大概是几点啊?就是第一个就是县城的生命周期的开销会变得非常的高,然后第二个是这个消耗会,呃,会消耗掉过多的 cpu 的资源, 如果这个可运行的这种线程数量多于可用的处理器的数量的情况下,那么有线程会被显示, 所以大量空前的现场会带来这个占用这种许多的一个内存给垃圾回收器带来一些压力,而且大量的现场在竞争 cpu 资源的时候还会产生一些其他的现场开销。呃这是两个,还有第三个我记得还有第三个是。 呃第三点我有点忘了哈哈哈。啊忘了是吧。是啊。那没关系,这道题和这道题的话也还是比较简单的。那我们再那我再问你一个吧。好吧。嗯好。 好的好的。那个怎么解决卡不卡的一个数据丢失的这个问题啊?哦卡不卡这边是。呃应该是这样子,就是在这个 product 这个端就红光上看是保证数据的可靠跟安全性, 那他他他肯定是依据这个分区做好的数据备份设立这个副本数,那 pro 端这边就是。 嗯 top 的这个设置多分区分区自适应所在的机器,为了让各分区呃 均匀的分布在所在的博格中,这分区数要大于这个博格的数量,那分区是卡布卡进行这个并行读写的单位是提升卡布卡速度的。呃很重要的一个关键。那肯肯出没这边端就是。嗯这个端是丢失消息的情形。是比较 简单啊,如果在消息处理完成前就提交了,那这个就提交了这个 offer, 那么就有可能造成数据的丢失。那由于卡不卡可是我默认是这种提交位移的,所以在后台处理位移。 呃。嗯这所以在后台提交位移前一定要保证消息是被正常的处理掉了。呃因此不建议采用很重的一个处理乐器,但如果处理的这个呃耗时过长,这建议就是把逻辑放到另一个县城中这个去处理。 呃,为了避免数据丢失,给出两个建议,就是,呃,第一个是 enable autocome 呢,科密特,我们把它设置成这个 boss, 就是关闭这个自动提交位移,在消息被完整处理之后再手动提交位移,呃,大概是这些, 嗯,还不错。那我这边就给一个实际场景的话帮我解答一下哈。就是如果有一百万个数, 找出最大的一百个,你是怎么想的?嗯,一百万个数,找出最大的一百个数啊,一百个,嗯, 呃,我现在能想到的方案大概是大概是两个吧。第一个就是,呃,简单些,就是用行一百个元素的最小堆去完成啊。 然后第二个方案是采用这个快速排序的思想,就每次分割之后,我只考虑比轴大的一部分,那知道比轴大的一部分在比一百多的时候采用传统排序算法取前面 一百个,呃,然后我这边,呃,还有一个,还有一个方案啊,还有又多讲了一个方案,就是采用这种局部淘汰的方法啊,就是可以选取前一百个元素,然后并把它做排序。纪委序列,然后,呃,一次扫描摄影的元素 x 比排好的一百个元素中最小的元素,比,如果比这个最小的要大,那么把这个最小的元素删除,并把 x 利用插入排序的事项插入到序列当中,然后依次的这样子去循环,直到扫描的所有的元素就能完成。 大概脑袋反应出去的三个方法。嗯,可以吧,那我再问你一个,就是什么是 das, 介绍一下吧。这个 cs 啊,那这个, 呃,可以。这个 cs 是这个 compense 的一个缩写,就是我们所说的这个比较焦化。那 cs 是一种记锁的一个操作啊,他是个漏管锁,然后在装瓦中锁 分为这个乐观锁和背光锁,那背光锁是将支援锁住,等一个,呃,等一个,之前获得锁的现成示范之后,下一个现成才可以访问。然后乐光锁 他不一样,他采取的一种宽放的态度,就通过某种方式不加锁来处理资源,比如通过给记录加这个微审来这个 获取数据性能较悲观,所是有很大的一个提升。那 cs 操作包版的三个操作数啊,就是一个内存位置 v, 还有预期的原则 a 和心值 b, 如果 内存地址里面的值和 a 的值是这个一样的,那么就将内存里面的值更换成的更新成 b。 那 cs 是通过无限循环来获得数据的。诺, 那假如是在第一轮循环中, a 现场获取地址只被 b 现场修改了,那么 a 现场需要自选到下次循环才有可能,才有可能有机会他被这个执行。好,大概这是我的,谢谢胜利姐。 嗯,还可以。那你,那你认为在这个过程中啊,会不会有哪些问题? 呃,过程里面 cs 再伸手他是有存在一些问题的,就是可能可能出现的问题就是第一个是 cs 容易造成 aba 的。呃,问题啊,那一个现场 a 将数字改成 b, 接着 又改成了 a, 此时这个在 cs 认为是没有变化的,实际上他已经变化过了。而这个问题的解决方案可以使用宝马号标识每个操作啊,就每操作一次,我就给这个微信加上这个宝马号加一, 那在这个 gt。 呃,在张瓦屋这个里面已经提供了这个啊, tomy staying 的分审来解决问题。 那第二个问题有可能会产生,就是他不能保证代码快中的原子性,那 cs 机制所保证的知识一个变量的原子性操作, 而不能保证整个蛋白块的一个原子性啊,比如需要保证三个变量同时进行原子性的更新,就不得不使用这个呃, svnc 的来处理了。那第三个是 cs 会造成 cpu cpu 利用率增加,这就说过了, cs 是一个循环判断的过程,如果现在一直没有获取到状态,这 cpu 这个资源是一直会被呃,一直会被占用的。好,大概是这个会产生这三个问题。 好,我这边再问你一些这个专业按摩相关的一些基础的那种吧。好吧。嗯, 我们的这个爪爪里面啊,如果没有内方法呀,能不能成功给你爪爪嘞啊?这个是可以的,因为, 呃,这个是可以编译哈,但是编译网他不会被运行,因为魅方法是作为抓瓦类的一个启动功能,并且在外面调用他以执行程序,所以说如果没有魅方法,他是会编译,但不会被执行。 嗯,可以,那在我们最常比较常用的这些人会比较常用这个 c 三点 alt 点喷一次这个打印的方法。这个函数里面啊,对比 season 点 alt 和我们的这个 planeline, 他们是怎么进行处理的 啊?这很简单,就是系统到预定意义最终,然后是 out 到这 pins stringing 的一个对象,然后 out 对象的。呃, pinkning 的是内置承载方法 哎,也可以,哈哈哈,有点瑕疵。哈哈哈,好,哎,你继续。那我再问你一个吧,就是我们这个正常义务里面的如何避免我们的一个 重复下单啊?这就是一个呃重复提交的一个问题,这也是在呃项目过程中,我们呃会经常遇到并解决的一个问题啊,就是用户快速点了两次呃提交订单那种按钮啊,那这时候其实浏览器 会下这个啊,服务端就是后端发送两条串联订单的请求,最终是会创建出两条一模一样的订单。 那这个解决方案是呃采用,我们是会采用这种蜜等机制,多次请求和一次请求产生的效果微量的保持是一致的。 这里我们会用几个方案好,第一个方案就是呃利用数据库自身的一个组件为一个数,就在插入订单的时候,我带上这个组件的值,如果订单重复提交这个就会 违法。这个组建微信,因为一约束记录就会超过失败啊。那个操作过程一般是散步嘛,就第一个是引入一个服务,是用于生成一个选举唯一的订单号。然后第二个是在创建订单页面时候,前端请求该服务与 呃预预生产这个订单 id 啊,那这时候我们在提交第三步就提交订单时候就请求参数,呃除了这个业务参数款,还有再加上这个预申成的订单 id。 好,这个是我们的第一种解决方案,用这种逐渐唯一约束。那第二个是就前端可以通过这一使的呃角度控制, 呃无法解决用户刷新提交的请求,另外也无法解决恶意提交,那这种是我们不建议采用啊,如果想用,呃,也只是作为一个补充的方案啊,那这种方案是不太不太好,在实际实际的这个生产方 环境,嗯,这种方式不太推荐。那第三个就是前后约定加上这个附加的参数教验。那这种就是当用户点击购买按钮的时候,都渲染下这个下单页面,展示商品收购地址、运费价格等等信息,那同时页面会买上一个 token, 当用户提交订单时候,后端有逻辑就会教验这个 token 有且匹配,就是有 token 并且能匹配上才会认为是合理的请求。那这里面有一个注意事项是同一个 token 只能用一次, 用完之后要立马的一个失效掉。那这种方案也是我们在生产环境中会用的比较多的一种,就是一种立牌的一个解决方案。这个可以的,再问你一下,如果到了之后这一块哈,你之前项目,之前这个项目用的是这个 ajp, 是吧?那这个是 起步是怎么样的呢?啊?呃,这种支付的整个这个架构大概是这样子,就是,呃,他是大概分为左中右吧,左边是我的一个接的一个支付的渠道。那我这里面可以支持这种支付宝 微信,那支付宝可以支持这种扫码了条码了都可以,那微信也是一样的,还支持这种微信还多支持一个小程序支付这类款啊。这款这个部分在左侧,这个是呃,支付 支付的外界渠道,然后中间是一个核心模块,核心模块就包含这种用户啦、账户啦、交易订单啦、支付设置、对账清算 这通道接入商务通知、权限管理等等的一系列的一个模块在中间,然后右侧是我的一个内部的一个功能应用,那这边就包含我的 什么对战应用啊、清算应用啊、通知应用啊跟补单应用。那在这个架构的基础之上啊,在上面我会接入我的一个业务的应用,比如说我的支付网关,我的运营系统,我的这种商户系统, 那在整个的这个架构的最底下是我的一个基础的资源,包含我的这个数据库,包含我的这个消息中间线,包含我的这个应用服务器,那这是我的整个这个,而且配的我的一个,整个的一个,呃,支付的一个架构。 嗯嗯,整体来看的话,你这边描述的话还是非常有条理的,整个流程都能够讲清晰讲下来,然后呢?整个逻辑还是很清晰的,然后呢?这个,呃,整个过程来说还是挺满意的。具体的薪酬哈,这边呢, 你这边最快什么时候可以录制?因为我们这边还是比较着急的啊。但这个其实我这边是一个离职状态,就是,呃,一周内我都是可以,一周内我就可以录。

