Language agnostic 我如何记录代码以了解其流动(工作)方式?

Language agnostic 我如何记录代码以了解其流动(工作)方式?,language-agnostic,Language Agnostic,我正在写一个小游戏,现在我有9个C#脚本可以让它工作。我已经不知道到底发生了什么以及如何发生。我想知道从比赛开始的那一刻起事情是如何运作的。发生了什么以及如何发生的等等 我是一个初学者,我听说写下你的程序流叫做记录它。我如何记录?我是否必须在代码中的任何地方都写注释来解释程序的流程?在代码中添加大量注释不是一个好方法。基本上,您应该尽可能使代码具有自解释性。为此,您需要仔细规划属于类或函数的内容,并为类、函数和变量使用有意义的名称。如果真的需要额外的解释,评论只是最后的手段 在大多数情况下,除了

我正在写一个小游戏,现在我有9个C#脚本可以让它工作。我已经不知道到底发生了什么以及如何发生。我想知道从比赛开始的那一刻起事情是如何运作的。发生了什么以及如何发生的等等


我是一个初学者,我听说写下你的程序流叫做记录它。我如何记录?我是否必须在代码中的任何地方都写注释来解释程序的流程?

在代码中添加大量注释不是一个好方法。基本上,您应该尽可能使代码具有自解释性。为此,您需要仔细规划属于类或函数的内容,并为类、函数和变量使用有意义的名称。如果真的需要额外的解释,评论只是最后的手段

在大多数情况下,除了解释软件某些方面的代码外,您还应该拥有一些文档:

  • 需求文档-软件的用途是什么,如何使用

  • 架构和设计规范-软件的模块和类是什么,它们如何交互。通常,本文档主要由一个或多个图(UML或其他东西)组成

  • 构建手册-如何编译和链接软件

  • 安装说明

  • 用户手册


此列表既不完整,也不是强制性的。例如,如果您的软件的用户界面简单且自我解释,则您可能不需要用户手册。

有时图表比文本更适合作为文档。有一种绘制控制流(无论是程序还是业务流程)的标准方法。他们叫。。。等等。但我不认为这正是你想要的

还有一些(通常拼写为一个单词),它们可能比一般的控制流程图更适合于软件。流程图有助于理解算法,但它们通常不能提供良好的全局视图

对于复杂的程序,更重要的是要记住数据流。对于那些我们拥有的。。。你能猜到吗。。。(DFDs)

DFD可以以不同的细节级别绘制。您可以有一个高级别的显示系统的主要组件以及它们如何组合在一起的,也可以有一个低级别的显示系统中需要更多细节的部分的基本细节

DFD可用于各种分析,包括威胁建模等。但是当我在看一个新项目(或者一个我已经忘记的项目)的时候,我发现它们非常有助于我了解一个什么是什么。您应该可以在网上找到一些关于DFD的教程,我认为一些绘图软件(如Visio)有专门用于DFD的模板(可能还有我提到的其他类型的图表)


有些人可能认为DFDs有点老学校,喜欢更严格的系统,比如UML(),它能够表达更多的概念,并且在你的“模型”和代码之间有非常直接的映射。我从来没有学过足够的UML来充分利用它。许多关于软件模式的书籍中的图表都是用UML表示的。

投票结束时,因为范围太广。软件文档化是一个人们可以写(并且已经写)书和大学课程的话题。好吧,给我一个开始的地方。我真的不懂。在每个脚本的开头放一个注释块。列出其他脚本调用此脚本的内容,以及此脚本调用的其他脚本。添加一点叙述来描述脚本的作用。还要绘制一个整体流程图,其中包含所有脚本,以及控件如何/为什么/何时从一个传递到另一个。这样做可以帮助你看到事物的整体形状。下次从顶层设计开始,在开发越来越低的细节时,在文档中添加更多细节。谢谢你的帮助,伙计谢谢,我会这么做。@downvoter:请解释并帮助我改进我的答案