• “学长认证模块”Java代码2.0官方版要点讲解【在线实习·吾研第一期】


    大家好,我是小拿。

    本期来看看“在线实习”吾研项目学长学姐认证模块中Java同学代码的官方改进版的要点。

    因为是项目第一期,同学们交的1.0代码有一些架构上或者说规范上的一些问题。

    本期代码2.0呢,大家都有一些改正。

    但是有一些逻辑上的要点,还是没有那么清楚地实现。

    那么今天就来看一下大家改进版的方案叭~

     01 

    那么认证呢分两种,一种是邮箱认证,一种是校园卡的认证。

    但是校园卡它有个图片的上传,现在大家都采用的是移动端 base64 的一种字节的上传。

    这个上传的话,我们前端现在依赖的是Vant 的上传框架。

    所以它基本上在上传图片之后,就会激发一个上传的动作。

    所以在校园卡的这个模块儿,我们是需要把上传图片的这个接口单独的拎出来,而不是说把所有东西都集中在认证的时候一起传上来。

    传完之后的细节大家想清楚,一定是传完之后用我们的服务器端。现在如果大家没有一个远程的OSS或者别的,可以存到服务器的本地。

    那反正之后一定要把这个图片的细节,比如名称返回给我们的前端,然后在接口里面去传的这个图片,去找到这个图片。

     02 

    大拿老师点评:

    1. 首先,接口就是这样的一个code,主要是在验证的时候用,这前面是一个对象,上传的其他的所有的元素就是用对象来实现。

    2. 这里是一个技巧,如果参数比较多的时候,我们就可以把它包装成一个对象,参数比较少的时候,直接写出来就好。

    3. 还是那句话,我们Java 同学做好了接口,一定要去调用一下能否跑得通、逻辑是否正确、能否存到数据库里面,然后再提。现在有很多的工具都可以去模拟调用。

    4. 然后呢,因为我们内部是大家作品的一个改进版,所以这个地方缺一个校验,但是校验并不麻烦,这里面就不给出来了。

    03

    大拿老师点评:

    1. 要确定这个code存不存在,我们这实现了一个latest,我们说五分钟呢,因为这个逻辑不是特别强烈,所以五分钟直接封装到这个Service 里面去了。

    2. 在vercode 里面判断是不是过期时间,有同学说这个emailService 直接放到这个认证模块里面,这样是不行的。功能还是耦合太强了。因为可能别的地方要发邮件。

    3. 所以一定要注意Service 是一个通用的部分,会多处调用。但是如果你把它直接放到一个业务里面去,它可能就不是同一个东西了。尤其是这种短信啊、邮件啊,这些是一些非常常见的一些通用的基础模块,所以判断一定很重要。

    4. 然后一定要注意它的状态,是要去查一下状态,查完之后一定要先判空啊,判空的时候可以插入。

     04 

    大拿老师点评:

    1. 注意传的是一个String,他传的是一个字节符,所以大家去看一下怎么把六十四位的字节符转化成图片,并且上传到一个位置上去。

    2. 这个地方我们同学把它单独拎出来,然后放到一个 Base64 里面去。

    3. 然后注意一定要给我们前端返回这个地址。要不然在认证模块的时候就图片就对应不上去了。那么最后认证的环节,我们人工去复审或者怎么样,他就关联不起来啊。

    05

    大拿老师点评:

    1. 其实开发是这样的,你只要知道难点在哪个地方,只要不是逻辑特别复杂的功能难点,实际上都可以找到解决方案。

    2. 来看一下图片转化的一个格式。很常见的把它的 image 的图标转化一下,最后拼上一个后缀。

    3. 注意后面把它生成文件,用了文件的体系。我们官方用的是阿里云的文件存储,我们放到OSS里面去,但是你也可以直接放到本地。

     06 

    大拿老师点评:

    1. 然后再来看几个工具,比如说枚举类。很多同学对枚举不是很了解。

    2. 比如说这个认证状态,未认证、审核中、认证失败、认证成功,实际上这个枚举还是比较简单。

    3. 如果再复杂的话,可以自己去加参数,比如说他的下一步动作是什么,能不能做什么事情。

    那么本期的几个难点,就在这几个过程里面:上传认证、提交认证以及返回值、图片上传等等。

    大家一定把这几个点的代码再给规范一下,包括接口。这些重点实际上才是你的能力,或者说你不管在校招面试也好,还是在工作中也好,才是你真正的开发能力。

    我们同学其实大家的投入度都够,所以大家把这个重点再去聚焦一下。那么相信这个项目的提高还是非常的到位的。

  • 相关阅读:
    mybatis :xml文件中传入参数和if标签结合使用时要点
    mysql:查询数据库版本的几种方式
    http post 方法传递参数的2种方式
    深入理解mybatis参数
    Mybatis:动态sql
    Mybatis:传入参数方式以及#{}与${}的区别
    [GLSL]着色器周记02——火焰特效 【转】
    OpenGL ES入门09-GLSL实现常见特效 [转]
    RenderMonkey 练习 第五天 【OpenGL NormalMapping】
    反射向量 及 向量投影
  • 原文地址:https://www.cnblogs.com/rdaxue/p/15089557.html
Copyright © 2020-2023  润新知