发表于: 2020-07-26 00:13:50
1 1412
今天完成的事:
深度思考
1.什么是Annotation,怎么自定义Annotation,Annotation和XML的优缺点各是什么?
Annotation其实是一种接口。通过Java的反射机制相关的API来访问annotation信息。相关类(框架或工具中的类)根据这些信息来决定如何使用该程序元素或改变它们的行为。 annotation是不会影响程序代码的执行,无论annotation怎么变化,代码都始终如一地执行。
元注解
在创建注解的时候,需要使用一些注解来描述自己创建的注解,就是写在@interface上面的那些注解,这些注解被称为元注解,如在Override中看到的@Target、@Retention等。
@Documented: 用于标记在生成javadoc时是否将注解包含进去。
@Target:用于定义注解可以在什么地方使用,默认可以在任何地方使用,也可以指定使用的范围
@Constraint:用于校验属性值是否合法
@Retention:注解的声明周期,用于定义注解的存活阶段,可以存活在源码级别、编译级别(字节码级别)、运行时级别
@Inherited:允许子类继承父类中的注解,可以通过反射获取到父类的注解
自定义 Annotation 自定义 Annotation 表示自己根据需要定义的 Annotation,定义时需要用到上面的元注解
(1)注解开发的优缺点
优点:1)开发速度快;2)编译期间容易发现错误的出处 。
缺点:1)管理分散,基本每个类上都有;2)扩展功能时,没有遵循OCP开发原则。
(2)配置文件开发的优缺点
优点:1)遵循OCP开发原则,修改配置文件即可进行功能扩展;2)集中管理对象和对象之间的组合关系,易于阅读。
缺点:1)开发速度相对较慢;2)编译时很难检查出错误,运行中的错误很难定位,调试难度较大。
所以我们选择开发方式的时候:
如果客户需求不会频繁发生变化。那么使用注解非常好,开发效率快。
如果客户需求经常发生变化,那么采用配置文件的方式会好一些。有利于扩展。
2.如何调用第三方API实现图片上传?
上传流程
(1)编写图片上传工具类
(2)使用MultipartFile类接收上传的图片;
(3)将图片存储在服务器(阿里云OSS),返回一个图片路径;
(4)图片路径存储在用户信息中以供调用。
3.怎么用Python写一个图片迁移脚本?
4.第三方的服务可靠吗,如果出现错误该怎么处理?
可以将第三方接口,收口到一个服务内。
这样,可以避免每个调用方都依赖于第三方服务:
(1)解除调用方与第三方接口的耦合;
(2)当第三方的接口变动时,只有服务需要修改,而不是所有调用方均修改
如上图1-4所述:
(1)业务调用方调用内部service;
(2)内部service跨公网调用第三方接口;
(3)第三方接口返回结果给内部service;
(4)内部service返回结果给业务调用方;
5.怎么快速集成第三方服务组件,API和SDK的区别是什么?
API即“应用程序编程接口”,是一些预先定义的函数,目的是作为“介面”沟通两个不同的东西,提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
SDK
工程师为辅助开发某类软件的相关文档、范例和工具的集合,使用SDK可以提高开发效率,更简单的接入某个功能。
6.上传图片应该由前端或客户端直接上传到第三方存储服务,还是应该先上传到服务器,再由服务器上传到第三方?
由客户端或前端上传到第三方服务器再存储到服务器
7.怎么实现图片防盗链,缩略图,水印等功能?
防盗链可以使用第三方的API或者使用过滤器实现,水印可以使用加水印的工具类
8.为什么要使用第三方图片存储服务,好处是什么?
存在第三方原因,说说缺点(反过来就是优点):
1,本地存储会有容量问题,存多了硬盘爆了
2,本地存储不利于扩展成集群,多台机器需要每台都存一份文件
3,本都存储会占用本机带宽,一个图片的大小抵得过好多个页面文本,不利于优化打开速度
4,本地存储单一目录文件过大会有效率问题,我曾见过某文件夹下上千个文件,导致图片文件夹干脆打不开
补充下其他优点:
1,直接符合动静分离设计,便于针对性优化加速。参考阿里云 OSS 自带 CDN 配置入口
2,不需要考虑扩容问题,一般都是第三方系统自动处理存储逻辑,自带物理目录优化方案,对外维持同一种访问路径
3,解耦后可扩展其他功能,例如加水印,裁剪,压缩等
9.怎么样将短信发送服务抽像成公共代码,可以在多个项目中复用?
写一个工具类,将账号密码用配置文件完成
10.点对点短信和群发短信的通道区别是什么,怎么支持多种短信通道?
简单说点对点短信,就是一台手机与另一台手机之前发短信,给信息台发的短不属于点对点短信。
关于短信群发通道百度百科是这样解释的:短信群发通道实际意义上是一种装载在电脑上的短信群发软件,一般具有短信的单发、 群发、分组等功能。也是目前商务短信的主要载体。现在市场上的短信群发分为两种形式,第一种是通过短信卡或短信猫发送;第二种是通过运营商网关发送。现在随着群发软件的不断发展和完善,用户可以根据广告需求定制个性化的服务,保证发送的效果。
常用的短信群发通道类型:
106短信:短信渠道市场的主流,也是我们经常谈论的106短信通道,它的质量是相对较高的。
10657(10658)是中国移动的短信通道,只支持发送移动的号码。
10655是中国联通的短信通道,只支持联通的号码。
10659是中国电信的短信通道,只支持电信的号码。
1069三网合一企业实名制通道,支持三网显示同一号码。通道的质量仍然很好,但申请条件也很高。当然,在市场上也有一些其他短信渠道,主要由中国电信开放。
明天计划的事:提交任务,准备任务八
遇到的困难:
收获:
评论