我如何记录我的代码以了解它是如何流动(工作)的?
How do I document my code to understand how it flows (works)?
我正在写一个小游戏,我现在有 9 个 C# 脚本可以让它运行。我已经忘记了究竟发生了什么以及如何发生的。我想知道从游戏开始的那一刻起事情是如何进行的。发生了什么以及如何发生等
我是初学者,听说把你的程序流程写下来叫做documenting it。我如何记录?我是否必须在我的代码中到处写注释来解释程序的流程?
在您的代码中添加大量注释并不是一个好的方法。基本上你应该尽量让你的代码不言自明。您可以通过仔细规划属于 class 或函数的内容并为您的 class es、函数和变量使用有意义的名称来做到这一点。如果真的需要额外的解释,评论只是最后的手段。
在大多数情况下,除了解释软件某些方面的代码之外,您还应该有一些文档:
需求文档-软件的用途是什么,如何使用
体系结构和设计规范 - 软件的模块和 classes 是什么以及它们如何交互。通常这个文档主要由一个或多个图表(UML 或其他)组成。
构建手册-如何编译和link软件
安装说明
用户手册
此列表既不完整也不是强制性的。例如,如果您的软件的用户界面简单明了,您可能就不需要用户手册了。
有时图表比文本更适合作为文档。有一种绘制控制流图的标准方法(无论是程序还是业务流程)。他们被称为...等等... control-flow diagrams。但我不认为这正是你所追求的。
还有 flow charts(通常拼写为一个词),它可能比一般的控制流图更适合软件。流程图对于理解算法很有用,但它们通常不能提供良好的全局视图。
对于一个复杂的程序,更重要的是要牢记 数据 流程。对于那些我们有...你能猜到吗? ... data-flow diagrams(DFD)。
可以在不同的细节层次上绘制 DFD。您可以有一个显示系统主要组件以及它们如何组合在一起的高级组件,也可以有一个显示需要更多细节的系统部分的基本细节的低级组件。
DFD 可用于各种分析,包括威胁建模等。但我发现它们非常适合在我查看一个新项目(或我忘记的项目)时大致了解是什么。你应该可以在网上找到一些关于 DFD 的教程,我认为一些绘图软件(比如 Visio)有专门针对 DFD 的模板(可能还有我提到的其他类型的图表)。
有些人可能认为 DFD 有点老派,更喜欢 UML (Unified Modeling Language) 等更严格的系统,它能够表达更多的概念,并且能够在您的 "model" 和你的代码。我从来没有学到足够多的 UML 来充分利用它。许多关于软件模式的书籍中的图表都是用 UML 表示的。
我正在写一个小游戏,我现在有 9 个 C# 脚本可以让它运行。我已经忘记了究竟发生了什么以及如何发生的。我想知道从游戏开始的那一刻起事情是如何进行的。发生了什么以及如何发生等
我是初学者,听说把你的程序流程写下来叫做documenting it。我如何记录?我是否必须在我的代码中到处写注释来解释程序的流程?
在您的代码中添加大量注释并不是一个好的方法。基本上你应该尽量让你的代码不言自明。您可以通过仔细规划属于 class 或函数的内容并为您的 class es、函数和变量使用有意义的名称来做到这一点。如果真的需要额外的解释,评论只是最后的手段。
在大多数情况下,除了解释软件某些方面的代码之外,您还应该有一些文档:
需求文档-软件的用途是什么,如何使用
体系结构和设计规范 - 软件的模块和 classes 是什么以及它们如何交互。通常这个文档主要由一个或多个图表(UML 或其他)组成。
构建手册-如何编译和link软件
安装说明
用户手册
此列表既不完整也不是强制性的。例如,如果您的软件的用户界面简单明了,您可能就不需要用户手册了。
有时图表比文本更适合作为文档。有一种绘制控制流图的标准方法(无论是程序还是业务流程)。他们被称为...等等... control-flow diagrams。但我不认为这正是你所追求的。
还有 flow charts(通常拼写为一个词),它可能比一般的控制流图更适合软件。流程图对于理解算法很有用,但它们通常不能提供良好的全局视图。
对于一个复杂的程序,更重要的是要牢记 数据 流程。对于那些我们有...你能猜到吗? ... data-flow diagrams(DFD)。
可以在不同的细节层次上绘制 DFD。您可以有一个显示系统主要组件以及它们如何组合在一起的高级组件,也可以有一个显示需要更多细节的系统部分的基本细节的低级组件。
DFD 可用于各种分析,包括威胁建模等。但我发现它们非常适合在我查看一个新项目(或我忘记的项目)时大致了解是什么。你应该可以在网上找到一些关于 DFD 的教程,我认为一些绘图软件(比如 Visio)有专门针对 DFD 的模板(可能还有我提到的其他类型的图表)。
有些人可能认为 DFD 有点老派,更喜欢 UML (Unified Modeling Language) 等更严格的系统,它能够表达更多的概念,并且能够在您的 "model" 和你的代码。我从来没有学到足够多的 UML 来充分利用它。许多关于软件模式的书籍中的图表都是用 UML 表示的。