因此,这里是我的项目:GWT + Java的:全局,单身,和头痛
我建立一个集中的界面/仪表板呈现的测试数据为多个测试类型的多个版本的产品。我们在我们的大量产品上使用TestNG,虽然没有足够的测试正在编写,但这是另一个主题的讨论。这里的目录结构的样子:
文件系统/的ProductVersion + testType/uniqueDateAndBuildID/TestNG的-results.xml
这results.xml文件包含儿童测试标签,对应于文件系统目录,然后XML标签包含实际测试用例结果的文件(通过,失败等) XML解析和文件系统遍历都很好,很好/可靠。
控制流程: 客户端访问主页面 - >服务器打开属性文件 - >服务器检查Web服务器属性(Websphere或Tomcat,如果我在本地工作) - >服务器设置一堆常量基于此。常量包括:根文件系统目录,文件系统分隔符(转换),“类似类型(在不同平台上基本相同的测试)”以及要附加到的基本URL。 - >服务器再读取一些属性文件,并执行其所有的XML处理。使用ObjectOutputStream将结果缓存到内存以及文件系统中。 - >一大串结果被发送回客户端进行UI处理/显示。
这里是我遇到问题的地方:我无法在客户端访问全局变量(包含/设置在Globals类中,但我知道: - /),即使它们在共享文件夹。如果你想知道为什么我不能再次加载属性,这是因为客户端是GWT-ified Javascript,它不包含File()。所以我的下一个想法,做了一些上层Java读取,可能是使用Globals单例对象,并将其传递回来......但是,如果不是不可能的话,这似乎也是一样糟糕。 这里的建议会很棒。
这整个事情是非常紧密耦合,这是我以前的Java教育还没有真正进入的东西。由于这只是开发人员检查的内部门户,所以在实际测试我的代码时似乎并没有多大意义。只要它正确显示,正确记录,并正常处理错误,对吗?总而言之,这是15个班级,所以我猜这不是什么大不了的事情。我是否应该重构清理它并使它成为“更好的Java”,评论一切以清楚地描述控制流程,或者不必太担心它,因为它很小?我知道将来在设计它们之前会考虑更多的事情,但是我真的不知道自从开始以来我接触过的大量更高级的Java原则。
编辑经过一番思考后,想出了一个可能的解决方法。怎么样,而不是回传只有结果列表,我传回了一些其他自定义列表实现,其中包括全局的'头'对象?我可以保持状态。