发表于: 2020-07-20 21:04:10
1 1407
今天完成的事情:任务7的深度思考
1.什么是Annotation,怎么自定义Annotation,Annotation和XML的优缺点各是什么?
Annontation:注解,可以让程序根据有无注解而执行不同的代码逻辑
自定义注解
元注解:javaapi提供的用来定义注解的注解,一共四个分别是:@Target@Retention@Document@Inherited
Target参数
Retention参数
举例
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@interface first {
String value();
}
@first
class test{
}
xml的优点:
xml 作为可扩展标记语言最大的优势在于开发者能够为软件量身【定制】适用的标记,使代码更加通俗易懂。
利用 xml 配置能使软件更具扩展性。例如 Spring 将 class 间的依赖配置在 xml 中,最大限度地提升应用的可扩展性。
具有成熟的验证机制确保程序正确性。利用 Schema 或 DTD 可以对 xml 的正确性进行验证,避免了非法的配置导致应用程序出错。
修改配置而无需变动现有程序。
xml的缺点:
需要解析工具或类库的支持。
解析 xml 势必会影响应用程序性能,占用系统资源。
配置文件过多导致管理变得困难。
编译期无法对其配置项的正确性进行验证,或要查错只能在运行期。
IDE 无法验证配置项的正确性。
查错变得困难,往往配置的一个手误导致莫名其妙的错误。
开发人员不得不同时维护代码和配置文件,开发效率变得低下。
配置项与代码间存在潜规则。改变了任何一方都有可能影响另外一方。
Annotation 的优点:
保存在 class 文件中,降低维护成本。
无需工具支持,无需解析。
编译期即可验证正确性,查错变得容易。
提升开发效率。
Annotation的缺点:
若要对配置项进行修改,不得不修改 Java 文件,重新编译打包应用。
配置项编码在 Java 文件中,可扩展性差。
2.如何调用第三方API实现图片上传?
查看相关的SDK或者API文档,参照文档给的小demo,跑通流程,然后根据功能写入自己的逻辑
3.怎么用Python写一个图片迁移脚本?
没用过Python,java 还没整明白
4.第三方的服务可靠吗,如果出现错误该怎么处理?
大厂的服务相对而言还是比较可靠的,但是也要做好错误处理
出现错误之后首先要明白是用户操作错误还是系统错误,用户操作失误需要去找客服,系统错误根据错误代码去解决,如果服务真的挂掉了,那就只能暂停服务了
5.怎么快速集成第三方服务组件,API和SDK的区别是什么?
1、.API是一个具体的函数,一个确定的功能,已经明确了它的作用,SDK就像是很多方法的集合体,是一个工具包。
2、SDK除了他提供的完善的接口,他还会给你提供相关的开发环境,而API需要的环境你得自己提供
3、SDK相当于开发集成工具环境,API就是数据接口。在SDK环境下调用API数据。
6.上传图片应该由前端或客户端直接上传到第三方存储服务,还是应该先上传到服务器,再由服务器上传到第三方?
7.怎么实现图片防盗链,缩略图,水印等功能?
防盗链原理:
http标准协议中有专门的字段记录referer
1、他可以追溯到请求时从哪个网站链接过来的。
2、来对于资源文件,可以跟踪到包含显示他的网页地址是什么。
如果发现请求不来自我们所允许的域名那么第三方可以不处理这个请求。
缩略图
OSS是使用通过URL尾部的参数指定图片的缩放大小
图片路径后面拼接如下路径:
?x-oss-process=image/[处理类型],x_100,y_50[宽高等参数]
例如
http:sjsjsj//XXXXX.jpeg
http:sjsjsj//XXXXX.jpeg ?x-oss-process=image/resize,m_fill,h_100,w_50
水印可以在控制台进行操作
8.为什么要使用第三方图片存储服务,好处是什么?
最原始的网站都是存在本地。那时候还普遍用空间发布,连数据库( access 等)都是个网站目录下的文件。
好处:
1, 第三方性能好,容量够,需要扩容只需要加钱
2,利于扩展成集群,
3,不占用本机带宽,有利于优化打开速度,一个图片的大小超抵得过好多个文本
4,本地存储单一目录文件过大会有效率问题,第三方性能好就不会
5,直接符合动静分离设计,便于针对性优化加速。参考阿里云 OSS 自带 CDN 配置入口
6,不需要考虑扩容问题,一般都是第三方系统自动处理存储逻辑,自带物理目录优化方案,对外维持同一种访问路径
7,解耦后可扩展其他功能,例如加水印,裁剪,压缩等
9.怎么样将短信发送服务抽像成公共代码,可以在多个项目中复用?
可以将短信功能写一个工具类,在使用时直接调用相关的方法就好。
10.点对点短信和群发短信的通道区别是什么,怎么支持多种短信通道?
阿里云点发与群发都可以通过控制台在短信模板中输入手机号的集合就可以完成群发
短信通道一般是指由中国移动、联通、电信等运营商直接提供的短信发送接口,目的是实现与客户指定号码进行短信批量发送和自定义发送,阿里云的短信服务是支撑多种短信通道的
明天计划的事情:推任务
评论