软件开发设计时注意的事项(踩坑记录)

Posted by 大雁小鱼的博客 on May 17, 2018

我虽然工作已经有比较长的时间了,但是一直缺少对于项目的总结和反省,有许多的坑踩过却不涨记性,后面做项目的时候又犯,实在是不该啊。于是就有了这篇博客。 经验告诉我,在做项目的时候,不光光要考虑如何设计来满足产品提出的需求,更要考虑部署、运维、异常情况下的处理等等技术实现上的需求,如果这些内容你不考虑进去,后期你会疲于上线,这应该是一个成熟开发,或者说是成熟的软件架构师应该具备的基本技能。

我说一个我的例子。在我负责的项目中,有一个场次预约功能,该功能可以让学生预约一个老师建立的场次。这个功能从产品需求上说是比较好理解的,相信许多开发同学也会设计,但这里有一个关键性的点是需要重点考虑的,那就是如何保证一个学生在一个场次只能预约一次。产品当时没有显式地告诉我们,他们觉得这是常识,不需要告知,而作为开发的我如果没有意识到这一点并将这个需求设计进去的话,等项目上线了,发现数据库里一个学生竟然有2条预约记录的时候就悲剧了。所以不要小看一个简单的预约功能,其实它里面还是有许多细小的技术点值得学习的。

一般性的,类似场次预约、转账扣款、库存扣次这类需求是需要考虑将接口设计成幂等性的,否则会出现错误。谨记谨记!! 想要知道如何将接口设计成幂等接口,请参看我的上一篇博客。