开发环境要不要和测试环境隔离?  要就是说,是不是要各用一套数据库等基础设施?

能隔离当然最好,开发人员和测试人员不会互相干扰。 但隔离是有代价的,它意味着你要多引一个数据库,如果你的系统是分布式的,你还要多维护一套MQ、RPC中间件等。

依我看,需不需要隔离要看系统是否满足下面的三个条件:

1. 两个环境的系统总是要接触到同一份数据

2. 数据被一个系统接触后,业务状态会改变;导致这份数据对另一个系统不再可用

3. 很难禁止两个系统在同一时刻接触到同一份数据

解释:

条件1. 如果两个环境共享数据库,但开发环境只处理北方数据,测试环境只处理南方的,那不用隔离

条件2. 即使两个环境都会处理北方数据,但如果这种处理是只读的,也就是开发环境用了,测试环境可以再用,那也无所谓

条件3. 即使数据被一个环境处理后,另一个不能用;但如果对数据的接触是人为触发的,也就是说开发环境被人触发数据改动时,不会干扰测试环境的测试,那也无所谓。

具体的场景:

1. 纯读的网站不必隔离,它不满足条件2

2. 有写、但所有操作都由用户触发的网站也不必隔离,因为它不满足条件3

3. 以全局数据为目标的自启应用需要隔离,比如 Quartz, Cron, MQ消费者等,因为它们不满足条件1。 以MQ应用为例,如果外部发来的某个数据被测试环境消费过了,开发环境就无法再消费了,这时你应该为开发和测试环境各配一个MQ

4. 对自启应用,如果实在不想隔离,就要在代码里做一些env-specific的东西,使得不同环境不会访问到相同的数据,比如开发环境只能访问数据库里flag=Dev的记录。不过,这种作法对程序和数据的侵入都很大,不值得提倡。 但这种做法可以应用到其他环境的隔离上,比如预发环境和正式环境,它们必须使用相同的数据库。

java正式测试数据隔离,开发环境要不要和测试环境隔离?相关推荐

  1. 超级详细Window10安装Java JDK 和配置开发环境

    Window10安装Java JDK 和配置开发环境 准备工作 下载 JDK8 百度云下载链接:https://pan.baidu.com/s/1vCmurwpOpAcwTJiXEZIXCA?pwd= ...

  2. Java Learning 000 搭建开发环境

    Java Learning 000 搭建开发环境 你需要两个软件: * JDK (Java Develop Kit :Java开发工具包) * eclipse (eclipse 集成开发环境软件) 安 ...

  3. 鸿蒙硬件HI3861开发环境搭建-串口2测试

    鸿蒙硬件HI3861开发环境搭建-串口2测试 鸿蒙硬件HI3861开发环境搭建-串口2测试 - 哔哩哔哩 鸿蒙其他教程请看https://blog.csdn.net/qq_33259323/categ ...

  4. Java语言简介及开发环境安装

    目录 一.Java语言概述 Java是什么 Java语言发展简史 Java的重要特点 简单性 面向对象 健壮性 跨平台性 解释型语言 二.Java开发环境安装 安装 配置 检查 三.初识Java的ma ...

  5. JAVA学习:maven开发环境快速搭建How to download J2EE API (javaee.jar) from Maven

    http://tech.it168.com/a2011/1204/1283/000001283307.shtml [IT168技术]最近,开发中要用到maven,所以对maven进行了简单的学习.因为 ...

  6. JAVA学习:maven开发环境快速搭建

    最近,开发中要用到maven,所以对maven进行了简单的学习.因为有个maven高手在身边,所以,很快就上手了,我这里算是自我总结吧.关于maven是什么东西,请参考其它文章. 准备工作 Jdk 1 ...

  7. java 1 0_【Java】1.0 开发环境

    本文并非最终版本,如果想要关注更新或更正的内容请关注文集,联系方式详见文末,如有疏忽和遗漏,欢迎指正. 本文目录 1.Java语言概述 1.1 Java的简介 Java 是一门语言,也是一种技术 代码 ...

  8. 怎么配置java ee_如何配置Java EE Eclipse+Tomcat开发环境

    以下将详细介绍在Eclipse下搭建Java EE开发环境的每一步, 环境:Win 7 + JDK 1.7 + Eclipse IDE for Java EE Developers 3.7 +Tomc ...

  9. Java小白 前端后端开发 环境搭建【jdk+idea+webstorm+maven+nodejs+vue+mysql】

    这是我自己的环境搭建记录,分享给大家一起学习~~ 后续还会再补充自己做的小项目[含前端和后端] 如有任何问题,欢迎大家批评指正! 目录 一.安装JDK 二.安装IDEA集成开发环境 三.安装webst ...

最新文章

  1. lvm 逻辑卷 和 网络管理
  2. drop wp table
  3. 数据库设计原则【转】
  4. Service Mesh:调度千军万马微服务,2.0妥妥的
  5. 1-1-2 交叉编译工具链
  6. Spark SQL玩起来
  7. 输入A、B,输出A+B
  8. LeetCode之Excel Sheet Column Number
  9. 如何找到网站服务器的源代码_企业网站如何选择服务器?
  10. 2015-4-26分享的PDF
  11. Invalid parameter passed to C runtime function
  12. 强化学习——Modle-free DRL算法
  13. 【千锋Python2205班8.29笔记-day06-冒泡排序和字符串基础】
  14. 有奖 | 你想要什么样的程序员贴纸?
  15. 大班线描机器人_大班美术lbrack;漂亮的机器人rsqb;活动设计
  16. 台式计算机把光驱改成硬盘,如何在台式机光驱中安装硬盘?
  17. linux 编译符号 u,Linux下缩小可执行程序 (一) 非使用符号的去除
  18. RocketMQ——ack机制保证消费成功
  19. 聊天机器人这么火,背后的技术你都知道吗?
  20. proteus如何添加stm32_电路仿真软件详谈(六),Proteus电路仿真软件的超级应用

热门文章

  1. element table批量删除_element 表格批量删除
  2. 定义变量和常量的规范 c语言,C语言编程规范教材及练习(标识符命名与定义 变量 宏、常量 表的达式).pptx...
  3. .NET配置文件在写入时损坏
  4. 在Blazor中构建数据库应用程序——第4部分——UI控件
  5. Windows Terminal Preview v0.4 发布,微软出品的全新终端
  6. Odoo12中删除无效项目
  7. python中sys模块有问题_python中sys模块之输入输出错误流
  8. 矩量法 惠更斯 matlab,矩量法分析振子天线粗细对天线的影响毕业设计(论文).doc...
  9. qt5使用触屏 偶尔没响应_戴着手套玩手机!你试过吗?触屏灵敏又保暖,冬天再也不冻手~...
  10. sqoop建表_使用Sqoop创建/导入配置单元表