大家好,我是小拿。
本期来看看“在线实习”吾研项目学长学姐认证模块中Java同学代码的官方改进版的要点。
因为是项目第一期,同学们交的1.0代码有一些架构上或者说规范上的一些问题。
本期代码2.0呢,大家都有一些改正。
但是有一些逻辑上的要点,还是没有那么清楚地实现。
那么今天就来看一下大家改进版的方案叭~
那么认证呢分两种,一种是邮箱认证,一种是校园卡的认证。
但是校园卡它有个图片的上传,现在大家都采用的是移动端 base64 的一种字节的上传。
这个上传的话,我们前端现在依赖的是Vant 的上传框架。
所以它基本上在上传图片之后,就会激发一个上传的动作。
所以在校园卡的这个模块儿,我们是需要把上传图片的这个接口单独的拎出来,而不是说把所有东西都集中在认证的时候一起传上来。
传完之后的细节大家想清楚,一定是传完之后用我们的服务器端。现在如果大家没有一个远程的OSS或者别的,可以存到服务器的本地。
那反正之后一定要把这个图片的细节,比如名称返回给我们的前端,然后在接口里面去传的这个图片,去找到这个图片。
大拿老师点评:
1. 首先,接口就是这样的一个code,主要是在验证的时候用,这前面是一个对象,上传的其他的所有的元素就是用对象来实现。
2. 这里是一个技巧,如果参数比较多的时候,我们就可以把它包装成一个对象,参数比较少的时候,直接写出来就好。
3. 还是那句话,我们Java 同学做好了接口,一定要去调用一下能否跑得通、逻辑是否正确、能否存到数据库里面,然后再提。现在有很多的工具都可以去模拟调用。
4. 然后呢,因为我们内部是大家作品的一个改进版,所以这个地方缺一个校验,但是校验并不麻烦,这里面就不给出来了。
大拿老师点评:
1. 要确定这个code存不存在,我们这实现了一个latest,我们说五分钟呢,因为这个逻辑不是特别强烈,所以五分钟直接封装到这个Service 里面去了。
2. 在vercode 里面判断是不是过期时间,有同学说这个emailService 直接放到这个认证模块里面,这样是不行的。功能还是耦合太强了。因为可能别的地方要发邮件。
3. 所以一定要注意Service 是一个通用的部分,会多处调用。但是如果你把它直接放到一个业务里面去,它可能就不是同一个东西了。尤其是这种短信啊、邮件啊,这些是一些非常常见的一些通用的基础模块,所以判断一定很重要。
4. 然后一定要注意它的状态,是要去查一下状态,查完之后一定要先判空啊,判空的时候可以插入。
大拿老师点评:
1. 注意传的是一个String,他传的是一个字节符,所以大家去看一下怎么把六十四位的字节符转化成图片,并且上传到一个位置上去。
2. 这个地方我们同学把它单独拎出来,然后放到一个 Base64 里面去。
3. 然后注意一定要给我们前端返回这个地址。要不然在认证模块的时候就图片就对应不上去了。那么最后认证的环节,我们人工去复审或者怎么样,他就关联不起来啊。
大拿老师点评:
1. 其实开发是这样的,你只要知道难点在哪个地方,只要不是逻辑特别复杂的功能难点,实际上都可以找到解决方案。
2. 来看一下图片转化的一个格式。很常见的把它的 image 的图标转化一下,最后拼上一个后缀。
3. 注意后面把它生成文件,用了文件的体系。我们官方用的是阿里云的文件存储,我们放到OSS里面去,但是你也可以直接放到本地。
大拿老师点评:
1. 然后再来看几个工具,比如说枚举类。很多同学对枚举不是很了解。
2. 比如说这个认证状态,未认证、审核中、认证失败、认证成功,实际上这个枚举还是比较简单。
3. 如果再复杂的话,可以自己去加参数,比如说他的下一步动作是什么,能不能做什么事情。
那么本期的几个难点,就在这几个过程里面:上传认证、提交认证以及返回值、图片上传等等。
大家一定把这几个点的代码再给规范一下,包括接口。这些重点实际上才是你的能力,或者说你不管在校招面试也好,还是在工作中也好,才是你真正的开发能力。
我们同学其实大家的投入度都够,所以大家把这个重点再去聚焦一下。那么相信这个项目的提高还是非常的到位的。