记录旧版代码库
我强烈建议您使用旧有代码库遵循侦查规则。试图独立于遗留项目而对其进行记录是永远不会发生的。
代码内文档
最重要的是在您选择的开发环境中使用文档工具,这意味着python的pydoc,java中的javadoc或C#中的xml注释。这些使得在编写代码的同时易于编写文档。
如果您依赖于以后再回来记录文档,则可能无法解决问题,但是如果在编写代码时就这样做了,那么需要记录的内容将是新鲜的。如果XML文档不完整或与实际代码不一致,C#甚至可以选择发出编译警告。
作为文档进行测试
另一个重要方面是具有良好的集成和单元测试。
文档通常集中于类和方法独立进行的工作,而跳过如何一起使用它们来解决您的问题。测试通常通过显示它们如何交互来将它们置于上下文中。
同样,单元测试通常会明确指出外部依赖关系,通过这些外部依赖关系需要模拟出事物。
我还发现,使用测试驱动的开发可以编写易于使用的软件,因为我一开始就在使用它。有了一个好的测试框架,使代码更易于测试和易于使用通常是一回事。
高级文档
最后,还有关于系统级别和体系结构文档的操作。许多人会主张在Wiki中或使用Word或其他文字处理器编写此类文档,但是对我而言,此类文档的最佳位置也是与代码一起使用的纯文本格式,这是版本控制系统友好的。
就像代码内文档一样,如果您将更高级别的文档存储在代码存储库中,则很有可能使它保持最新状态。您还可以获得以下好处:拔出代码的XY版本时,还将获得文档的XY版本。此外,如果使用VCS友好格式,则意味着像代码一样,很容易进行分支,差异和合并。
我非常喜欢rst,因为它很容易从中生成html页面和pdf文档,并且比LaTeX友好得多,但仍可以在需要时包含LaTeX数学表达式。