接管申请时要做的事情

时间:2015-02-10 19:30:46

标签: java java-ee web-applications web

我们正在接管来自不同团队的申请。 我们只有5天的时间来学习这个团队应用程序的所有可能性。 这五天后,这个原始团队将无法使用。

此时,我们甚至不知道应用程序的大小或复杂程度。我们所知道的是它是一个j2ee应用程序。我猜这是一个相当大的应用程序。过去几年我一直是开发人员,我之前从未做过这样的事情。所以我甚至不确定从哪里开始。

我的问题包括但不限于:

  1. 我从哪里开始?
  2. 我应该问什么样的问题?
  3. 在这些情况下是否有任何工具/方法?
  4. 我能读到的任何书籍吗?

2 个答案:

答案 0 :(得分:6)

  

过去几年我一直是开发人员,我之前从未做过这样的事情

不要太担心,每个人在某个时间点都处于这个位置。这种代码接管没有通用的配方。它可能需要花费大量的时间来阅读,调试,理解,重新编写,以后再支持这些代码但是......那又怎样呢?这是一个很好的挑战。

无论如何,首先要问他们几个主要的事情:

1)如何构建和部署到干净的机器(清晰的逐步指南),或者一组干净的机器(如果应用程序以某种方式分发)。如果你能够做到这一点,你会更自信地自己管理这个应用程序(即使你最初可能不理解它);

2)应用程序对外部系统的任何依赖性(它调用/消费的Web服务,与之通信的任何外部系统,意味着此应用程序的传出通信);

3)它公开/提供的任何Web服务或资源,以及谁调用它们(传入通信);

4)它使用的任何DB(关系或非关系)(它连接到);

5)这个应用程序的业务逻辑是什么,它做了什么,它是如何做的(高级架构决策;层),像这样的整体技术。

答案 1 :(得分:2)

彼得涵盖了大部分优点。我自己在基于网络的应用程序上工作,这是我的2¢:

对我来说派上用场的工具是:

Yourkit - 为了分析应用程序,以及分析它吐出的任何堆转储。

Splunk - 特别是如果您的应用程序会喷出大量日志文件。从nfs挖出日志文件并在慢速文本编辑器中打开是原始的,splunk是要走的路。 Splunk具有出色的搜索功能,您可以搜索多个日志文件。 ctrl + f通过每个日志文件很痛苦。您可以发掘有价值的数据,例如在特定时间窗口内对您的应用程序进行登录API调用的频率。建议在生产系统旁边运行一个splunk实例。

你可以向即将离任的团队询问的事情很少:

  1. 依赖管理系统。它依赖于maven,gradle还是ant?它从哪里得到它的文物?它是本地托管的Artifactory还是从网络上获取它们。

  2. 应用的各种API渠道。除了UI之外,还有shell API,perl或python或者java,以及如何维护它们。

  3. 了解测试框架。你用junit和mockito吗?是否有基于perl的测试框架?还要知道正在使用的代码覆盖工具。

  4. 构建框架。如果它是一个Web应用程序,它可能部署在一个java servlet上,为此需要一个.war文件。必须有一个像Jenkins或ElectricCommander这样的构建系统,它运行编译和测试,什么不能,最后生成一个war文件。假设你们要处理这个系统,而不是集成/发布团队,请确保你知道它是如何工作的,如果它有一天下降并且构建是一个红色的海洋。我们去过那里。

  5. 真的,即将离任的团队应该有足够的文件,这将是最好的交接。