面试打底稿⑥ 项目一的第二部分

简历原文

面试打底稿⑥ 项目一的第二部分_第1张图片

抽查部分

  • 计算运费模块板块扩展性优化,采用责任链模式,实现不同地区间寄件的运费模板扩展的优化,为模块解耦,提高了系统的扩展性
  • 短信模块设计,设计了短信发送数据模板的数据化存储,规范了发送短信的流程

模拟问答

1.你们运费模板是用来做什么的?责任链模式是什么?

我们的运费模板是用来在不同寄送范围下分类计算运费。比如同城寄和省内寄是不一样的收费模式。

因为运费需要根据订单起点、终点的所在城市、省份等确定,所以写在服务层的查询代码会比较臃肿,我们可以使用抽象类将这些模板的共性抽取出来,定义好处理本节点和下一个节点的方法;再用@Order注解编辑顺序,最后组装成链,这样不仅使代码更优美,实际上的添加模板、修改顺序的操作也更加方便了。这就是责任链模式,用抽象类共性,然后组装成链。

2.你是如何设计短信发送流程的?

调用阿里云的短信api,要传4个参数:接收的手机号码、短信签名、模板号、短信中的变量与对应的值。

于是,我们把短信发送流程规范化。短信签名、模板号分类为短信模板,单独设计一张 表存储不同模板;手机号码、短信中的变量属于短信信息,又放另外一张表存储。

此外,我们还提供了短信类型、内容类型的不同扩展功能,例如短信类型可以分为验证与通知,内容类型可以分为文字版和语音版。

我们还可以设计扩展记录传入不同微服务的名称,具体追踪是哪个微服务调用的这个短信微服务的接口,方便错误追踪等。

你可能感兴趣的:(面试,职场和发展,java,spring,boot,spring,跳槽,程序人生)