仿牛客网和个人实习项目相关的问题

1. 个人项目:问题的列表

  1. 说一说你做这个项目的具体流程
    项目的三层架构:Controller层,Service层,Dao层。分析每一部分需要完成什么。
    1)如果需要操作数据,那么就通过Dao层,书写方法,然后再mapper中的xml文件中书写sql语言进行操作数据库,进行数据的增删改查。
  2. 项目在前后端交互的时候,有没有考虑安全问题
    1)通信请求使用https,有一个保密层。
    2)身份确认机制,每次请求都要验证是否合法。身份验证。
  3. 后端是分层的吗?
    1)使用的是三层架构模型
  4. 数据库用的啥,为啥要用这个
    1)Mysql是主流数据库,用的人多,开源,稳定。是关系型数据库
    2)Redis是非关系型数据库,用来作为缓存。
  5. 介绍一下项目的各个模块和技术栈
    1)注册与登录功能的实现
    难点:怎么解决分布式Session问题(会话管理,token,Redis),密码安全问题(MD5码(密码+加盐)),以及怎么优化登录的问题(Redis存储登录凭证,Redis存储验证码;使用Redis缓存用户信息)

2)拦截器使用
通过拦截器对所有请求进行拦截(身份验证),如果通过的话,针对一次请求,就把用户信息存入TreadLocal中,为每一个线程所持有,即可在全局使用用户的信息。

3)日志管理
(1)aop实现对service层所有的业务方法记录日志
(2)拦截器主要针对的是控制层controller

写不同的拦截器进行不同的操作(前中后的操作)
可以对所有的拦截器进行配置,即扫描的文件

4)Redis
点赞信息:使用Set,方便统计在不在列表中,方便查找
某个用户收到的赞:使用功能int即可,只要知道数量;同时操作,更加方便
关注与被关注:使用功能set,共同到的好友,取交集,sinster
某用户关注的实体:zset,方便进行排序

5)事务
在哪里用:评论和评论数的增加,关注和关注数的增加;关注成功和粉丝添加的同步;
申明型事务:@Transaction通过注解标识
编程型事务:multi与exec两个命令实现。

6)不需要执行,但是非常繁琐的事情
异步消息队列:kafka
7. 你开发项目的时候遇到什么Bug,简单介绍一下
8. 你的项目日志是怎么打印的?
9. 你的接口时怎么设计的,为什么这么设计
10. 版本控制是怎么做的,有没有发生过重大的问题,然后退回版本的情况
11. 调试程序的时候,报错信息,你是如何进行分析的,有没有印象最深刻的一次debug?
12. 项目的难点和个人的收获(重点问题,遇到最大的问题

2. 实习项目:问题的列表

  1. 实习的内容
    1)需求开发流程:对需求的开发全流程有一个清晰的把控,从需求的提出,到软件版本的发布。
    需求提出->需求分析–>串讲(即和需求提出者,前端,后端和测试任务进行需求的实施分析)–>反串讲(后端,前端和测试人员提出自己的修改方案,并且落实自己需要做的任务)–>后端功能的实现–>demoshow(在测试平台展示是否实现了响应的功能);
    2)所做需求
    (1)为产品页添加客服热线(注意兼容之前没有热线的产品,即在编辑产品时,原有必填,原无不填);对客服热线进行验证规则检查。
    (2)为产品重复进行核验,并且返回重复产品的id(遇到了问题,即存在第三方接口,两者数据库不一致,那边也存在判断的逻辑)
    (3)白名单校验(如果在白名单中,那么可以直接点击,跳过审核部分)(思考:主要考虑后续得的一个扩展性;RPC代码的复用)
    (4)表单的页面操作:注意点就是权限的验证和参数的检查。
    (5)sql语句的检查,一条sql运行非常慢,原因是进行了联表查询,在大规模数据操作中,尽量不要链表,需要进行拆表。
  2. 项目的难点
    1)项目难点主要体现在功能实现的规范性上:接口的开发需要注意兼容性,间接性,可拓展性,能代码复用就复用。
  3. 个人的收获
    1)对项目开发的全流程有一个清晰认识
    2)对需求开发的分析足够熟悉,能够快速上手一个项目,并且进行需求的开发。
    3)沟通非常重要,在开发之前,一定要弄明白你需要的是什么,有哪些方法可以操作,剩下就是开发了,考虑的需要细一点。
    4)需求书写的要求:权限验证,参数校验,注释说明规范性;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值