产品的工作很大一部分是在优化和迭代,新西兰电话号码列表 也就是说我们在对一些已经在使用中的功能进行升级,那么这些历史功能在线上使用时必然已经产生过数据,新功能的设计时,需要考虑融合历史的数据信息,同时还要考虑到已经在使用当前数据的上下游系统。否则可能导致上下游的调用异常或者本身系统数据使用的异常。 新西兰电话号码列表 小案例分享-1 笔者近年在负责物流相关的系统,其中涉及到对内部员工车辆的管理,前期管理的较为宽松,因此只涉及到车牌、车型、品牌的信息,但这些信息已经在下游业务中进行了正常的使用。新西兰电话号码列表 随着业务精细化运营,业务侧对车辆管理进行了统筹的规划,提出了对车辆的用途(可以理解为使用场景)、车辆证件、承载量、车辆基本信息均需要进行管理。
因此势必需要对原有维护好的数据,新西兰电话号码列表 在新功能里进行相应的兼容,哪些字段是需要废弃的,哪些字段对应本次规划中的字段,字段的必填/非必填属性是否有变更,相关的表格设计以及提供给下游的接口(原接口中的字段和当前有所变更)需要如果兼容才可以避免对下游的影响。 OS:马有失蹄,人有失手,项目上线前发现由于某个字段允许为空和原来的表定义不符导致DBA审批不通过间接导致项目上线延期了。同时,上线后,在用户系统使用数据时,新西兰电话号码列表 历史用户无车辆信息时会导致系统异常空指针也让我们吃了一亏。 小案例分析-2 第二个案例就是最近发生的,我属于其中的下游系统。前提设定:在物流系统中,维护物流供应商的合作关系是会根据供应商当前合作的业务来源(可以简单的理解成业务线或事业部)进行一层过滤,用户只能选择指定业务来源下的供应商。所有供应商可选信息来源于商户系统。 然后某天业务同学说某个供应商选不到,我在排查过程中发现商户系统页面找不到[业务来源]这个字段了;同时在维护信息时也无法进行相关数据的维护。 新西兰电话号码列表 在和对接的产品经理沟通后才知道他们在迭代过程中以为这个字段没有用,直接去掉了。导致物流系统功能使用异常。 二、不要忘记-兼容历史版本 由于考虑用户使用感受,除非功能真的极具价值或存在阻断型问题,通常是不建议发布强制升级的APP版本的。
因此当功能涉及到APP端升级后才可以使用时,必须要提前考虑到,如果用户不升级,那系统要怎么处理以及如何用旧前端兼容新后端且确保系统不会报错。这种情况,如果前端是新增入口后的功能,则通常影响不大,毕竟用户不升级时,新西兰电话号码列表 是看不到新功能入口的,则不会触发新逻辑,对用户来说只是因为个人没有升级而继续使用老功能而已。 但是如果本身入口是历史存在的,那么就需要谨慎考虑了。 小案例分享 前提设定:业务期望限制某种类型仓库在APP端的退货功能。系统原操作流程是点击退货,进入新页面后可以创建不同类型的退货单进行退货处理。新西兰电话号码列表 这其实是一个比较简单的小功能,只需要对于特定类型的仓库在点击退货时进行阻断或者不展示退货按键就可以了。但是由于起初没有考虑到首页代码是原生的(即依赖版本升级后才可以生效),上线后发现还是会出现退货单据,溯源后才发现部分仓库人员并没有升级安装包的习惯导致一直使用旧包在操作,所以还有这个“漏洞”在。 最终的解决方案是,增加后端约束-在提交退货单据时,新西兰电话号码列表 增加仓库类型的判断和约束,那么不管用户使用的是什么版本,这个问题都可以解决了。 虽然我也认为产品确实可以不用太关心开发代码逻辑实现的细节,但是新旧版本的考虑个人认为产品还是需要关注到的。 (当然,不可否认的,业务实操培训和执行确实也是有问题的)。 三、不要忘记-数据初始化方案 上面两个点都是针对于现有功能优化时,要注意的点。而第三点-数据初始化则是针对于新功能上线来说。所有的流程都会产生数据,而线下流程的运行往往是先于系统的流程化的,那么在系统上线后,新西兰电话号码列表 已经有的数据如何“搬到”线上来,这就是我所指的数据初始化 (并不是指系统上线后一些配置的初始化哦)。 数据初始化实际上不会影响后续功能的正常使用,但是在初期系统推广和用户入门使用时却是必须的。 新西兰电话号码列表 如果上线后,马上业务要用了才想到现在数据不对,可以就显得略有些不专业了。