发表于: 2020-07-19 23:36:30
2 1306
打包的时候删错东西了 启动tomcat失败
深度思考:
1.nginx服务器有什么作用?什么叫反向代理?为什么要使用反向代理?
nginx的作用有:1、作为 Web 服务器。2、作为负载均衡服务器。3、作为邮件代理服务器。
什么叫反向代理:反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。
为什么要使用反向代理:反向代理服务器可以作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
2.什么是代码生成,mybatis generator代码生成是怎么实现的,还有什么办法可以生成代码?
代码生成:即使用代码生成器按照特定编码规范输出代码。
mybatis generator代码生成是怎么实现的:建表,加载mybatis-generator插件,配置generator.xml文件,运行插件。
8.为什么响应时间一般不允许超过200MS,怎么查看一个请求从发起到结束,耗费在什么地方了?
人的眼睛对200MS以上的延迟是有反应的,所以一般而言,一整个页面都应该在200MS之内完成。按F12,选NETWORK就可以看客户端到服务器端的响应时间。
9.为什么要自测,仅仅使用Postman来测试足够吗?什么是本地测试,什么是在开发环境测试?在开发过程中,应该每天部署代码到开发环境吗,为什么?
postman测试是用来进行接口测试,单纯的测试接口的可用性。响应时间和返回的数据是否符合预期,其他测试需要别的测试工具。本地调试就是开发人员在自己本地进行测试。开发环境测试就是将代码部署到专门用于测试的服务器上进行测试,应该每天部署代码到开发环境,尽早排除一些bug,避免后期统一查找,不好解决。
10.保存图片有几种方式?什么样的情景下应该使用哪一种?
保存图片有3种方式。
一是传统的基于springmvc的multipartfile类实现图片上传,优点可以将图片和其他表单元素一起提交到服务器,服务器接收到的图片其实已经存储在容器的临时文件中,进行文件的拷贝工作比较简单,缺点则是无法及时看到图片上传的预览效果,一旦选择错误只能重新提交。
二是基于Ajax的图片上传,与第一种只有页面代码不一致,前端使用的jquery的jquery.fileupload.js插件来实现。
三是基于Base64压缩的图片上传,就是将图片转换为字符串,并存储数据库,显示时替代图片地址插入img标签,这种方式比较简单,没有跨域提交、头文件等问题,但是编码后的字符串大小远远小于实际图片大小,所以适合上传小尺寸图片,如用户头像。
11.为什么要先写单元测试?单元测试应该包括哪些?在正式打包的过程中,什么样的单元测试应该被屏蔽?在Maven里用什么方法可以跳过单元测试,单元测试应该被跳过吗。
在写任何业务代码之前,甚至都不用定义接口、方法,先写测试用例,如果测试用例不通过,那么回去修改业务代码,直到所有测试用例写完并通过,其中编译不通过也算一种测试用例不通过。这种方式的好处是测试代码和业务代码先后完成,在不断修改业务代码过程中,重构时刻进行,让代码有更好的结构,并保证代码可以满足所有测试用例。
单元测试应该包括逻辑复杂的,容易出错的,不易理解的以及核心业务代码。且需要屏蔽报错的单元测试,可以使用-DskipTests跳过单元测试。
13.为什么要写假数据,前后端联调的时候,应该什么时候商定接口文档,接口文档应该谁来维护,如果不提供假数据,会发生什么问题?
前端开发与后端的唯一联系就是接口,交换的东西就是json数据。应该在最初方案设计时就确定接口文档以及假数据,如果假数据不够完整,前端可能还需要后期进行返工,导致项目进度的拖延。
16.什么是实体表,什么是关系表,一对多和多对多应该怎么设计表?
实体表就是对应实际的对象的表,而关系表不代表一个对象,而是对象间的关系。一对多,在“多”的表里建立“一”的字段。多对多,建立一个关系表。
17.什么是外键,用处是什么,为什么不建议使用外键做关联?
表的外键是另一表的主键, 外键可以有重复的, 可以是空值。
外键是用来和其他表建立联系用的,可以保证数据的完整性和一致性。
使用外键会给系统带来很多缺陷:性能问题,并发问题,扩展性问题,技术性问题。
https://blog.csdn.net/alice_nn/article/details/103646449/
18.什么是数据库范式,是否应该严格遵守范式,什么情况下应该不遵守范式?
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式。
范式只是为了可以为你理清数据库的关系的,但是有些情况采用范式的代价要比不采用范式的代价大就可以不适用范式。比如增加了程序逻辑,多联接关系表,不常更新或不更新的基础表信息都可以不必须按照范式的规范来设计。
今日问题 暂无
评论