秋招 4399 一面电话面试
4399 第一场 电话面试 -8.31
第一面问题不深究,只是了解下大概情况,时长大概三十分钟
以下是我整理出来的回答方式,而不是我在面试时的回答,有所整理,更加简洁。
师兄建议:希望我可以言语上更加简洁清楚。
自我介绍
你有一份实习是在腾科,你从中学到了什么
学到了文档的书写。通过了此次实习,我与小伙伴互相交流讨论,确定项目的需求和总体设计,分工完成了对项目文档的编写,更好地开发接下来的任务。
学会了团队合作。由于当时是疫情期间,我们通过Git进行项目的版本管理和线上合作开发,更加熟悉了流程,包括分支建立,版本上传和处理冲突,也学习到了良好的分工有多么重要。
学到了前后端分离开发。学会了前后端框架上的整合,并且了解到了分离版本中,页面的切换都是依靠前端去完成,而后端只负责数据的处理和封装。
从小伙伴那里学到了编程的技巧。学到了在返回数据时候对数据的封装,包括了状态码和数据体等。还有就是学到了链式编程技巧。
- 有个旅游网开发项目,是独立开发的吗?其中遇到哪些问题?
是独立开发的。由于大多数只是简单的增删改查,有困难的在以下三个方面:
- 前端方面。由于自己对于前端的知识还不够熟练,学会简单的HTML和CSS,而我是用的模版主题工具AdminLTE,需要进行拼接和url链接的处理,包括测试花去了不少的时间。
- 安全框架。第一次使用Spring Security安全框架进行整合。遇到了以下几个问题:
- 安全框架中的User类与自己定义的类重名
- Security 5.0之后,在密码前面需要加入加密编码的标识
- API运用不熟悉导致出现的bug,AOP日志导入不进去用户名
- 在页面级别的权限控制无效,没有加入ROLE前缀(由于使用的是Spel表达式)。
- 数据库优化方面:
- 对于密码和用户名的索引选择(复合索引),登陆次数会远比注册次数高
- 外键对应的列加上索引,因为经常查询,但是现在很多公司都是在程序上保证外键逻辑成立,而不在数据库上增加外键约束,因为维护需要成本。
- 把所有*改成对应的列,减少数据库搜索列的时间,也减少冗余的列。
- 尽量把所有的SQL语句变成大写,因为数据库会统一先将语句变成大写之后执行。
- 对于数据库的索引,该如何选择建立?
- 选择合适的列做索引。要选择经常在where或者order by语句中有的列,而且要遵循索引尽量扩展不要增加的原则。
建立合适索引之后要观察SQL语句有没有需要更改,或者哪些不会生效之类的。 - 要选择多查询,少更新的列建立索引,因为过多的更新会导致索引的维护成本增加。
- 要选择区分度高的列建立索引,比如性别这一类就不适合建立索引。
- 有时候为了避免回表也可以建立复合索引进行覆盖。
- 外键尽量建立索引。
如果Web打开一个页面,无法显示,应该从哪些方面去进行排查?
先查看URL是否格式正确,与后台服务器是否对应,这是最常见的无法显示的错误。有时候多一个/就会导致无法正确对应到网页。
之后查看状态码,查看是出现了哪方面的错误。
如果是5xx,就是服务器出现了故障,有可能是负载超过,或者是服务器在运行过程中出现了错误。可以根据对应的url对应的一系列类和函数和后台输出的日志信息进行一个排除。
如果是4xx,就应该要看看你连接问题,还是权限问题等等。
最后可以在页面使用F12查看报错的信息,看看前端是不是有问题,是切换问题,还是格式问题等等,有没有设置跨域啊,都可以从错误信息中获取。
- 你之后有什么目标
- 首先要解决当前的就业问题,先为自己找到去处,这是最主要的。
- 其次我希望在工作之余,可以尽量空出时间,去更加合理地整理我的博客的知识,形成一个体系,然后多参加一些开源项目,提高自己的专业素养。
- 最后就是努力工作努力赚钱,让自己的生活也可以精致起来。
- 反问的问题
- 公司在广州吗? -- 是,也有厦门的公司,但是你面试的公司在广州。
- 有员工宿舍吗?-- 没有
- 有提供设备吗?-- 有
- 总共有几轮面试? -- 总共三到四轮