【问题标题】:Things to do when taking over an application [closed]接管应用程序时要做的事情[关闭]
【发布时间】:2015-04-10 23:46:06
【问题描述】:

我们正在接管来自不同团队的应用程序。 我们只有 5 天的时间从这个团队那里了解有关该应用程序的所有可能信息。 这五天后,这个原始团队将无法使用。

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

我的问题包括但不限于:

  1. 我从哪里开始?
  2. 我应该问什么样的问题?
  3. 是否有任何工具/方法可用于这些情况?
  4. 我可以阅读有关它的任何书籍吗?

【问题讨论】:

  • 这更多是基于意见而不是任何可靠的答案。
  • @jgr208 很抱歉,但我查看了所有可用的网站,但找不到完全符合我的问题的任何内容。所以我决定把它贴在这里。
  • 这应该张贴在论坛上或类似于软件工程堆栈交流。
  • 如果你要问问题,只有一个:“项目文档中没有规定什么?”他们一开始说话,就赶紧说出来。

标签: java jakarta-ee web-applications web


【解决方案1】:

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

不用太担心,每个人都曾在某个时间点处于这种状态。这种代码接管没有通用的方法。以后可能需要花费大量时间阅读、调试、理解、返工、支持此代码,但是……那又如何?这是一个很好的挑战。

首先要问他们几个主要问题:

1) 如何构建并将其部署到干净的机器(清晰的分步指南)或一组干净的机器(如果应用程序以某种方式分发)。如果你能做到这一点,你就会更有信心自己管理这个应用程序(即使你一开始可能不明白);

2) 应用对外部系统的任何依赖(它调用/使用的 Web 服务、它与之通信的任何外部系统,即此应用的传出通信);

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

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

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

【讨论】:

    【解决方案2】:

    Peter 涵盖了大部分优点。我自己开发一个基于网络的应用程序,这是我的 2 美分:

    对我有用的工具是:

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

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

    您或许可以向离职团队询问一些事情:

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

    2. 应用程序的各种 API 通道。除了 UI,是否有 shell API、perl 或 python 或 java 的 API,以及如何维护这些 API。

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

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

    真的,离开的团队应该已经有足够的文件了,这将是最好的交接。

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      相关资源
      最近更新 更多