2018-12-19 记一次傻逼的开发

2018-12-19  本文已影响0人  tomeetyou

今天早上在开发的时候,从表中查出一个字段的值是 0 ,1这个样子的格式。上家公司俗称的快码,但是快码表并没有和任何表关联。当时为了图快,不想写代码,就在sql里面加了 left join  表名 on  表1.value(非主键) = 快码表.value(非主键) and  快码表.id(主键) = ‘UUID’;

然后被小李大神一下子就看出来了这肯定有问题啊。我仔细想想确实问题很大啊(有大神帮code review真的很棒,上一家公司没有人帮你看看代码,几个刚毕业的学生,大四的实习生xjb乱搞一通)

具体有那些问题呢

1.一次完整的开发是分数据库的,我在的两家公司都分为 

1. dev数据库,开发者数据库。

2.uat数据库,客户(用户)体验数据库。

3.product数据库,生产数据库,用户使用的数据库。

很明显,我使用的这个dev的快码表的主键在uat和prod中都是不一定存在的(有很大概率不存在),即是存在也不一定是想要的

这种代码写上去,dev测死也没问题,以上生产就是错。套路真的深。

那么问题来了,怎样避免这类问题发生呢。

step1.我们要分清不同数据库之间数据的差异,那些部分是系统,用户生成的,那些是手动定义的。

step2.对于手动定义的,那么不同的环境我们是否都定义了。如果没有定义系统出错的概率很大,并且抛去出错概率问题,这样开发本身就是不规范的

上一篇下一篇

猜你喜欢

热点阅读