在使用 Eclipse 中你经常会遇到的一个尴尬是,你打开一个 Maven 项目,因为要加载依赖,再加上特殊国情造成的网络访问缓慢,那好吧,那就等吧,然后在等待的过程中,你很可能会暂时转到其它已经打开好的项目。这很正常,不是吗?何必干等呢?
然而,当你编辑了另外一个项目的某个文件,正准备保存时,Eclipse 却给你弹一个框,阻止了你的保存!
请看上面的第三条“Waiting User Operation”,那就是我的保存动作,然而它却被前面的 Maven 项目的构建动作给阻拦了!
碰到这这种情况你是否会觉得特别沮丧呢?毕竟这两项目间毫无关系呀!
如果我编辑的是同一个项目的文件,被阻拦还能说得过去,可为啥不同的项目也被阻拦了呢?
所以我认为这是一个缺陷,项目之间应该做到隔离,彼此不应该影响,这在我们的开发活动中同样是极为重要的一个原则!
在这里,一个项目的保存动作对另一个项目的构建动作形成了错误的依赖,不管开发者有什么理由,从用户角度看,这种依赖是不应该的,是他所不能预期的。
开发者应该尽力减少这种违反直觉的依赖,如果不能做到这一点,将会带来非常糟糕的用户体验!
就好比你再浏览器里打开了多个标签页,然后有一个标签页失去了响应,然后你发现所有的标签页都卡住了!
又或者你打开了很多的程序,然后一个程序失去了响应,然后整个电脑都死机了!