1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为一个单线程应用程序就变得十分容易了。我们不再需要为了解决问题而反复地部署和测试应用了。这种方法也同样适用于配置 URL、服务器和端口号等。
2、天真地认为应用程序中所调用的外部和内部服务是可靠的,并且是始终可用的。不允许出现服务调用超时和重试,将会对应用程序 的稳定性和性能造成不利地影响。需要进行适当的服务中断测试。这一点十分重要,因为如今的应用程序多是分布式并且面向服务的,都需要大量的网络服务。无限 地请求不可用的服务会损害应用程序。也需要对负载均衡器进行测试,以确保它能正常工作,使每个节点达到平衡。