如何处理尚未记录的现有项目? [关闭]

Posted

技术标签:

【中文标题】如何处理尚未记录的现有项目? [关闭]【英文标题】:How to work on a existing project that has not been documented? [closed] 【发布时间】:2011-10-27 17:18:18 【问题描述】:

我只参与过我从头开始的项目,但现在我必须参与一个没有文档和指导的预先存在的项目。所有参与该项目的人都走了,我的客户希望我开始从事该项目。 常识是从主页开始,然后继续学习什么做什么以及它在哪里。

该网站基于 Codeigniter (php) 构建,拥有 500 多个页面,其中页面多达 900-1100 行代码,以及多个自定义选项。 是否有任何有效且不耗时的方法开始?有什么工具可能有用吗?

【问题讨论】:

没有。如果有,为什么要记录一个项目? 开始总是很耗时。我将从应用程序目录下的控制器和视图开始 检查某人的代码总是很困难的。没有逃避,你将不得不研究它。一些建议: 1. 就像你说的,你最好的选择是从主页开始,级联到项目的内部。 2. 使用好的 IDE,这样您就可以轻松浏览源文件并从类、声明和实现中跳转(除非最初使用的 IDE 具有所有这些) 3. 除非您确定,否则不要急于更改任何内容你得到了整个画面,因为那样你永远不知道它什么时候会让你回来。 4. SVN/GIT 在你做任何事情之前你的项目。 5. 祝你好运。 除了@AlonAmir 的建议外,我还在不熟悉的代码中经常使用git grep(可能我的IDE 有缺陷)。您还可以尝试在代码库上运行 phpDocumentor 以提取类结构、方法签名,如果幸运的话,还可以提取一些有用的 cmets。 【参考方案1】:

我曾经遇到过一两次这种情况。我不认为有任何工具可以真正提供帮助,因为文档通常是程序员和代码之间的粘合剂,但我还没有真正搜索过它们。

我确实有两点意见。首先,这将花费你很多时间。 很多。基本上,你是逆向工程。在进行估算时考虑到这一点(如果需要)。

其次,最好的办法是边走边记录。您遇到的每个功能,记录您认为它应该做什么。这样,您可以回顾您检查过的函数,而无需再次检查它们。如果您不知道函数的内部结构是做什么的,请暂时搁置它并转到其他函数或方法。

最后,如果没有任何文档,您所能做的就是在代码中和程序运行时单步执行程序(假设它完全运行),这样您就可以猜测它应该做什么.记录较小的功能,逐步了解大功能/类。存储您遇到的任何笔记。尽可能进行清理,但前提是您对清理的部分应该做什么有坚定的感觉。这可能需要一些时间。

不确定这是否真的有帮助,但这是一个糟糕的情况。我只能希望代码比文档更好。如果不是……好吧,那么您还必须考虑重写部分的时间。

祝你好运。

【讨论】:

【参考方案2】:

使用Doxygen 对于获得项目结构的可读/可浏览大纲非常有用,并且它在标准安装中支持 PHP。它会生成一个 html 文档,其中包含程序中各种依赖项之间的超链接。

运行起来很简单:

cd <project-top-level-directory>
doxygen -g
doxygen Doxyfile

【讨论】:

以上是关于如何处理尚未记录的现有项目? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何处理巨大的表格[关闭]

开/关原则——如何处理这个开关?

我需要一个 Hive 示例项目进行练习。如何处理大型数据库表?我们如何在 Hive 中实际实现查询? [关闭]

应用关闭时如何处理 UNNotificationAction?

如果连接关闭,我该如何处理连接并重新连接?

前端VUE项目中如何处理图片加载失效/裂开的问题