我需要审核一个多年演化的大型 Java/J2EE 网页应用程序。它是由另一个公司编写,而不是我所在的公司。在目前的状态下,这个应用程序已经变得难以演进和维护,新的功能很难添加,并且经常导致错误,有时甚至会在生产中出现。似乎存在一些复制粘贴的代码,导致了重复代码的问题。当前应用程序是一种在线购物网站,有一些类似 CMS 的内容。它主要使用 Struts,代码的较新部分可能使用了一些 Spring,也许还有一些 EJB。虽然有一些单元测试可用,但数量不多。这些都是我听说的,我还没有看到实际的代码。
我的公司将提出建议,重写这个应用程序的部分内容,以减少复杂性,提高质量和模块化,并使添加新的功能更容易且不会导致回归。在做出任何承诺之前,他们希望对现有代码的质量有一些评估,并评估其中可以重用多少,以便在必须进行全面重写或部分重写时,能够有更多的把握。
问题在于,我只有非常短的时间(几天)来完成这项任务,因此我正试图制定一个在如此短的时间内可以完成的计划。我的计划是:
- 检查 "基本" 事项 - 异常处理、日志记录
- 检查层次结构的级别(视图、控制器、DAO 层)
- 测量单元测试的实际覆盖率
- 可能运行一些 Checkstyle、Findbugs 和 PMD
- ...
因此,实际问题是,我应该考虑/检查/测量等其他哪些事项?我不确定我能从中得到什么样的数据,或者它是否真正有意义。我有一种感觉,管理层要求的方法有些错误,所以第二个问题是:是否有更好的想法?我将欣赏任何关于此事的想法、建议或评论。