1-1 请说一下你项目中是如何进行项目管理和发布的
我们的项目使用的是Gogs进行代码托管, Jenkins进行项目自动运维发布
首先将项目从Gogs拉取到本地,在本地创建一个分支后就可以进行代码的管理了
在分支项目写好后先进行commit ,然后合并到主项目中,并将项目代码push到Gogs中
Gogs在收到代码请求后会向Jenkins发送通知,Jenkins在收到通知后就会执行预定义好的任务(拉取Gogs中的代码,重新进行编译)
最后在上面的任务完成之后,再手动执行一下对应的任务 ,它会重启容器并执行
这样一次项目的管理和发布就完成了。
1-2 现在浏览器点击按钮出现了一个报错,如何定位发生问题的代码
我们要定位发生问题的代码首先要搞清楚项目流程,然后通过打断点的方式进行找错
一般我们的项目是通过网页发往nginx,然后由nginx发往网关,再由网关转到对应的微服务中
基于以上,我们可以先通过F12查看网页的请求路径,然后根据请求路径中的信息找到发往的网关,再根据网关中的配置文件找到他转到的微服务
找到微服务后我们就可以根据网页中的请求方法和请求路径,找出问题的所在的方法,这时再用打断点的方式就可以找到出问题的代码。
1-3 你得项目中进行用户的登录和检验的详细流程是怎样的
是这样的,在我们的项目中在用户向程序提供用户名和密码后,应用程序会将用户名和密码发送到用户登录和验证微服务
用于用户登录和验证的微服务首先会使用用户提供的用户名去数据库中查询用户是否存在,如果不存在就返回“用户名不存在”的提示,
如果存在就将用户提供的密码进行指定的方法加密后,与数据库中的加密后的密码进行比对,如果密码错误就返回“密码错误”的提示,
如果密码正确就生成一个token(令牌)返回给客户端,这个令牌就是这个用户的唯一标识
客户端在接收到token后,就会将这个token储存到本地存储中,之后用户的请求都会携带这个token
应用程序就会用登录和校验微服务进行token的校验,如果通过应用程序才会继续处理请求,不然就会返回错误并要求重新进行身份验证。
以上就是我们的项目的用户登录和校验流程。
1-4 说一下文章发布的流程
一般在项目中,文章的发布功能都是和修改还有保存草稿功能的共有方法,在文章的发布前还需要对其中的文档和图片进行审核,具体的流程如下:
在文章发布的请求发来时,我们需要先根据它的请求参数中是否包含id来判断它是修改还是新增,如果是修改方法则需要将他关联的素材表删除。
然后则需要根据请求参数中的状态判断是否为草稿,如果是就保存为草稿
如果不是,就需要关联内容中的图片与素材,再借助第三方提供的接口(比如阿里云,华为云等)审核文本和图片,如果审核成功就在文章微服务中创建app端所需的文章
如果审核失败,就需要修改文章的状态,根据第三方的审核接口修改为审核失败或者转为人工审核。