组织代码的最佳方法是什么?
我不是在说如何在这里缩进。我正在寻找有关组织源文件中的代码块的最佳方法的建议。
我们是否按字母顺序排列方法?按照你写的顺序?主题上?以某种"教学"顺序?
我们遵循什么组织原则?为什么?
解决方案
回答
我通常按以下顺序
- 构造函数
- 破坏者
- 吸气剂
- 二传手
- 任何"魔术"方法
- 更改接收者的持久状态的方法(save()等)
- 行为举止
- 公共帮助方法
- 私人/受保护的助手方法
- 其他任何内容(尽管如果有其他通常表示需要进行重构的信号)
回答
我根据所做的工作对它们进行分组,然后按照我写的顺序排列(按字母顺序排列可能会更好)
例如在texture.cpp中,我有:
//====(DE)CONSTRUCTOR==== ... //====LOAD FUNCTIONS==== ... //====SAVE FUNCTIONS==== ... //====RESOURCE MANGEMENT FUNCTIONS==== //(preventing multiple copies being loaded etc) ... //====UTILL FUNCTIONS==== //getting texture details, etc ... //====OVERLOADED OPERTORS==== ....
回答
几乎将这种方法用于我正在编写的任何内容。良好的结构和经过注释的代码可以使人读物更好。
- 全局变量
- 功能
- 主体/方法
回答
公共的,受保护的,然后是私有的,并且在每个部分中按字母顺序排列,尽管我经常首先列出构造函数,最后列出解构函数。
/艾伦
回答
我倾向于按主题对事物进行分组,因为缺少一个更好的词。
例如,如果我有一个在执行其工作过程中使用两个私有方法的公共方法,那么我会将这三个私有方法组合在实现文件中,因为很有可能如果我们要查看其中一个,我们需要查看其他之一。
我也总是将特定类成员的获取/设置方法分组。
这确实是个人喜好,尤其是在现代IDE中,因为有很多功能可以让我们自动跳转到代码中的位置。
回答
我倾向于将相互关联的方法归为一组。使用优质的IDE可以消除许多此类问题。按字母顺序排列的方法对我来说似乎是在浪费精力。
回答
我喜欢使事情保持简单,因此我不会在类中塞满一堆方法。在课程中,我通常会首先列出最常用的(或者按我的修改;-)方法。就特定的代码组织而言,每组方法都属于一个类,因此它是自己组织的。
我利的搜索功能和代码折叠功能来浏览大型源文件。同样,我也利用搜索功能在其他上下文中查找事物。宏大的组织计划永远都不适合我,因此我在所有事情上都依赖于搜索的力量,而不仅仅是代码。
回答
有趣的一点。我还没有真正考虑过这一点。
我倾向于将经常访问的功能(实用程序功能等)放在顶部,因为它们很可能需要调整。
我认为组织不是特别重要,因为我可以很快找到任何职能。我不会在文件中滚动查找功能。我搜索。
在C ++中,我确实希望.cpp文件中的功能与在.h文件中声明的顺序相同。通常是构造函数,其次是析构函数,其次是主要/中央功能函数,然后是实用程序函数。
回答
我倾向于使用以下模式:
- 公共静态最终变量
- 静态功能,静态块
- 变数
- 构造函数
- 执行与逻辑相关的功能
- getter和setter(大多数情况下是不交叉的,因此无需阅读它们)
我没有包含本地类的模式,并且大多数情况下,我将它们放在使用它们的第一个方法的顶部。
我不喜欢根据访问级别来分离方法。如果某种公共方法使用某种私有方法,它们将彼此接近。
回答
我主要编写C代码,并且倾向于按依赖关系进行排序。如果可能的话,我会尝试将源代码文件与头文件进行匹配,但通常情况是void a()使用int b(char * foo),而不是int b(char * foo)首先出现。
使我免于将条目添加到本地功能的头文件中的麻烦。
其余的实际上主要是按字母顺序排列,使搜索更加容易。
回答
我具有所有私有字段,然后是公共字段,然后是构造函数,然后是main,然后是main调用的方法(按照它们被调用的顺序)。