小项目的一些反思
遇到的问题及复盘
1. 关于 bug
不要急,要先想清楚为什么会产生此 bug, 然后再去解决它。
2. 关于临时更改的需求
本次有一个临时的需求变更,但这是一个合理的变更。因为一开始在讨论需求的时候,大家对什么是”流式数据“的理解不一致,导致接口需要调整。但我一开始的处理方式是:case by case 的处理,提供了一个新接口,并排期在下个迭代做。
事实证明,这个处理方式可以说是完全不对!我对不符合计划的事情很反感(因为这一般意味着要加班),所以一开始就展现出了防御姿态,但这并不利于真正解决问题。
后来老板的解决方式,教了我做人,事实上我并没有加班,同时也解决了问题。
老板是咋解决的?总结如下:
首先和业务方对齐,在真实的使用场景中,有哪些诉求,期望以什么方式使用。(对齐之后,我们才恍然大明白,之前的理解有偏差,以为是业务方偷懒不想自己处理,其实是我们不了解流式数据的格式,导致接口功能并不符合实际场景需要。)
其次,设计了通用接口,避免 case by case 的解决问题。(一开始只有文本处理有问题,而且只有这一种场景。但理论上其他类型的数据也会有这个问题)在罗列了所有可能场景后,设计了一种机制,能够覆盖所有场景。
最后,极速交付。避免宿主(甲方爸爸)二次返工,我们在一期实现了此功能,避免了在排期等各种事情上的掰扯。
3. 关于 sdk 接口的设计
接口永远是重中之重,我在反复修改优化中,提炼出了这几点:
首先,接口一定要对开发者友好!吾日三省吾身,不要让开发者感到困惑。
其次,接口不要依赖实例。依赖实例的缺点是,开发者的代码难以复用,必须在每个实例上去调用。可以通过在参数中提供回调函数来解决。将实例作为回调函数的参数传入。
4. 关于如何写好代码
啥时候都应保持谦卑之心,对代码保持敬畏之心。