dev(Development environment):开发环境。用于开发者调试使用。
uat(User Acceptance environment):用户验收测试环境。预发布环境。
prd(Production environment):生产环境。系统正式使用的环境。
这三个环境也可以说是系统开发的阶段:开发→测试→验收→上线
根据目前我的理解,一般来说会根据公司的规范程度、公司类型、项目的大小、项目目前的情况来进行使用。按照我呆过的三家公司来说对应刚好是三种不同的情况。
第一家公司,自营项目,项目已经在正式运营使用,这种情况下三个环境都会存在,dev用于开发调试以及功能流程测试,uat用于验收测试。uat测试当时的做法是,将prd的数据复制一份到uat环境上,用dev的代码和prd的数据来进行测试。这样做的目的是为了防止新功能或者修改后的功能会因为数据的问题而影响到正式用户的使用,因为dev环境下的数据可以理解为都是程序员为了开发而弄出来的数据,这些数据是不真实的,特别是系统已经在正式运营的阶段,用正式的数据去测试是很有必要的,因为有不少问题就是因为数据的异常,新功能或者旧功能优化时可能因为缺少某些字段或者某些字段格式更改了,但忘记修改从而导致一连串的问题,甚至系统报错无法使用。对于一个规范的公司,项目正在运营的情况下,uat的测试就变得十分重要。
第二家公司,外包公司,以接外包项目为主,也有自己的自营项目,但我并没有接触到自营这一块。外包公司,时间就是收益,越短的时间完成项目,公司的收益就越高,而且大部分的外包项目都不会涉及到多次版本迭代,一般来说都是一两次的开发比较多,这时候其实只要dev或者多加一个prd环境即可,对于从0-1的项目来说,并且是外包项目的公司来说,一个环境的成本是最低的,开发测试完成后,交由客户验收测试,没问题后把数据清理一遍即可投入使用。但这个弊端也很明显,假如需要进行功能迭代,在修改的同时就会影响到线上的用户,对于用户来说十分不友好,而且也出现过一次严重的问题,顾客在开发完未进行测试的时候要求先发一版正式的小程序和后台,发版后顾客上架了正式商品,我方在进行交付测试时需要测试支付,把商品的价格调成了0.01,后续测试完没有把商品价格恢复,导致有真实用户下单,但项目没有运营客户也不知道有这个订单,导致消费者投诉到12315,后续经过协商退款后才撤销投诉。很明显只有一个环境虽然说成本低,但是稍微处理不好就会带来一系列问题,处理不好会带来严重的损失,所以在我看来,不区分dev和prd环境是不可取的,再怎么节省还是需要一个dev环境一个prd环境。
第三家公司,自营项目,对于目前来说,这家自营项目是一个初创阶段,没有真实的用户,没有真实的数据,因此也只有dev和prd两个环境,对于一个初创自营项目来说,dev和prd两个环境就足够了,当正式推广有真实用户数据时就必须要有uat的环境,uat在我的理解里更多的是为了确保没问题,虽说把prd的数据复制一份到dev上做验收测试也不是不行,但这样数据其实会很乱,当出问题时不好排查,因此独立一个uat环境,验收测试完成后把uat上的数据清空,发正式版,这样就能确保万无一失。
dev、uat、prd这三种环境对于系统开发来说根据公司自身以及项目自身来进行判定要怎么使用,规范来说,这三个环境都是必须的,对于项目前期来说,没有真实的用户数据时uat是一个可有可无的环境,当有了真实用户数据来说,还是建议使用uat这个环境作为最后的验收测试。
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://jm.airisland.cn/index.php/2023/02/20/dev%e3%80%81uat%e3%80%81prd/
共有 0 条评论