首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

两周实现APP之分院排期

为什么要重构

如何重构

重构后效果

为什么要重构?

由于各种原因,公司App代码越来越混乱,尤其是分院排期、订单模块(另外一篇文章)这些地方尤为突出。为了赶进度,相似流程会大量的拷贝代码、稍微修改下就拿来使用,时间长了,再来修改这些代码时变得困难重重,而且线上分院排期接口响应非常的慢,有时甚至7、8秒才加载出来依据idea的提示,可以观察到项目里有大量的重复代码警告。当前的业务有体检预约、齿科预约、检后预约...将来可能还会加入其它类型的预约,干活的都是我们这些苦逼小码农,领导是不了解现状的,重构这些代码迫在眉睫

如何重构?

观察各个业务分院排期流程会发现有很多相似之处,比如:分院,有分院名称、分院标识、分院地址、分院介绍等自有属性,用户和分院相关的属性有定位距离等,分院和排期相关的有最近N天排期、更多排期等行为。各个业务排期流程除了获取分院的方式、获取排期数据的方式不一样以外,其他的处理流程都是一样的。

因此我们可以抽象出一个接口IOrgScheduleService,在抽象类AbstractOrgScheduleService中实现相同的处理逻辑,不同的部分可以定义抽象方法供具体子类实现。

具体代码实现因为涉及公司隐私没有具体给出,大概方式就是定义了模板方法。

接口响应过慢的问题是因为内部大量遍历调用依赖服务的接口,数据越多调用的次数会越多。

这里给出一个coroutine的实现:

因为不需要上下文切换,因此更轻量级。

经过一些小的重构,效果怎么样呢

本篇到此结束,谢谢大家的观看,后期会大量分享开源项目源码、编程语言、扫描器、区块链相关的知识和经验。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180129G10ICM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券