简历原文
抽查部分
-
计算运费模块板块扩展性优化,采用责任链模式,实现不同地区间寄件的运费模板扩展的优化,为模块解耦,提高了系统的扩展性
-
短信模块设计,设计了短信发送数据模板的数据化存储,规范了发送短信的流程
模拟问答
1.你们运费模板是用来做什么的?责任链模式是什么?
我们的运费模板是用来在不同寄送范围下分类计算运费。比如同城寄和省内寄是不一样的收费模式。
因为运费需要根据订单起点、终点的所在城市、省份等确定,所以写在服务层的查询代码会比较臃肿,我们可以使用抽象类将这些模板的共性抽取出来,定义好处理本节点和下一个节点的方法;再用@Order注解编辑顺序,最后组装成链,这样不仅使代码更优美,实际上的添加模板、修改顺序的操作也更加方便了。这就是责任链模式,用抽象类共性,然后组装成链。
2.你是如何设计短信发送流程的?
调用阿里云的短信api,要传4个参数:接收的手机号码、短信签名、模板号、短信中的变量与对应的值。
于是,我们把短信发送流程规范化。短信签名、模板号分类为短信模板,单独设计一张 表存储不同模板;手机号码、短信中的变量属于短信信息,又放另外一张表存储。
此外,我们还提供了短信类型、内容类型的不同扩展功能,例如短信类型可以分为验证与通知,内容类型可以分为文字版和语音版。
我们还可以设计扩展记录传入不同微服务的名称,具体追踪是哪个微服务调用的这个短信微服务的接口,方便错误追踪等。