编写一个高质量的软件应该是第一步。现在这是一个移动的目标。(我们有一些类似https://stackoverflow.com/questions/3716203/automatic-code-quality-and-architecture-quality-static-code-analysis的东西。我们也具有类似于某些选定客户的回归测试套件和测试环境。)无论我们做什么,都存在只有客户才能看到并遇到崩溃/错误的情况。有时他们只是有性能问题。有时是崩溃,有时是应用程序对象模型错误。
一般来说,我怎样才能减轻疼痛?我怎样才能从这种情况中获得大部分(数据)?当问题第一次和第二次出现时,什么样的编码/架构步骤可以帮助获取更多信息?
以下是起点:
良好的日志记录: log4j 是起点。用户应该能够轻松更改文件。提供一个小的 gui 来编辑这样的文件会更好。(我们的日志配置位于 Windows 7 中的 c:/Program Files/ 区域;对于普通用户而言不容易进行编辑 - 需要神奇的“以管理员身份运行”选项。)。
堆转储:当内存不足时转储堆。
自动提交错误报告: Firefox、intellij 等就是很好的例子。不确定是否有现成的库。
JMX:对于服务器应用程序,这似乎非常有用。我从来没有用过它。
检测系统要求的工具: 我还没有做。
自动升级能力:
我们的主要是与服务器交互的java桌面应用程序。我想我们可以采取更多步骤,直到我们获得所需的质量:)