关于不可知的语言:组织代码的最佳方法是什么?

关于不可知的语言:组织代码的最佳方法是什么?

What's the best way to organize code?

我不是在说如何在这里缩进。 我正在寻找有关组织源文件中的代码块的最佳方法的建议。

您是否按字母顺序排列方法? 按照你写的顺序? 主题上? 以某种"教学"顺序?

您遵循什么组织原则? 为什么?


我通常按??以下顺序

  • 构造函数
  • 破坏者
  • 吸气剂
  • 二传手
  • 任何"魔术"方法
  • 更改接收者的持久状态的方法(save()等)
  • 举止
  • 公共帮助方法
  • 私人/受保护的助手方法
  • 其他任何内容(尽管通常还有其他迹象表明必须进行重构)

  • 我倾向于使用以下模式:

    • 公共静态最终变量
    • 静态功能,静态块
    • 变数
    • 构造函数
    • 与逻辑相关的功能
    • getter和setter(大多数情况下是不渗透的,因此无需阅读它们)

    我没有包含本地类的模式,并且大多数情况下,我将它们放在使用它们的第一个方法的顶部。

    我不喜欢根据访问级别来分离方法。如果某种公共方法使用某种私有方法,它们将彼此接近。


    我倾向于将相互关联的方法归为一组。使用优质的IDE可以消除许多此类问题。按字母顺序排列的方法对我来说似乎是在浪费精力。


    我具有所有私有字段,然后是公共字段,然后是构造函数,然后是main,然后是main调用的方法(按调用顺序)。


    我主要编写C代码,并且倾向于按依赖关系排序。如果可能,我会尝试将源代码文件与头文件进行匹配,但通常情况是void a()使用int b(char * foo),而不是int b(char * foo)首先出现。

    避免将条目添加到本地功能的头文件中。

    其余的实际上主要是按字母顺序排列,使搜索更加容易。


    有趣的一点。我还没有真正考虑过。

    我倾向于将经常访问的函数(实用程序函数等)放在顶部,因为它们很可能需要调整。

    我认为组织不是特别重要,因为我可以很快找到任何职能。我不会在文件中滚动查找功能。我搜索。

    在C ++中,我确实希望.cpp文件中的功能与在.h文件中声明的顺序相同。通常是构造函数,其次是析构函数,其次是主要/中央功能函数,然后是实用程序函数。


    我喜欢使事情保持简单,因此我不会在类中填充很多方法。在课程中,我通常会首先列出最常用的(或按我的修改;-)方法。就特定的代码组织而言,每组方法都属于一个类,因此它是由其自己组织的。

    我利用编辑器的搜索功能和代码折叠功能来浏览大型源文件。同样,我也利用搜索功能在其他上下文中查找事物。宏大的组织计划永远都不适合我,因此我在所有方面都依赖于搜索的力量,而不仅仅是代码。


    我倾向于按主题对事物进行分组,因为缺少更好的词。

    例如,如果我有一个在执行其工作过程中使用两个私有方法的公共方法,那么我会将这三个私有方法组合在实现文件中,因为很有可能如果您要查看其中一个,那么您需要查看其他之一。

    我也总是将特定类成员的获取/设置方法分组。

    这确实是个人喜好,尤其是在现代IDE中,因为有很多功能可以让您自动跳转到代码中的位置。


    公共的,受保护的,然后是私有的,并且在每个部分中按字母顺序排列,尽管我经常首先列出构造函数,最后列出解构函数。

    /艾伦


    几乎将这种方法用于我正在编写的任何内容。良好的结构和经过注释的代码可以使人读物更好。

    • 全局变量
    • 功能
    • 主体/方法

    我根据所做的事情将它们分组,然后按照我写的顺序排列(按字母顺序排列可能会更好)

    例如在texture.cpp中,我有:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //====(DE)CONSTRUCTOR====
    ...
    //====LOAD FUNCTIONS====
    ...
    //====SAVE FUNCTIONS====
    ...
    //====RESOURCE MANGEMENT FUNCTIONS====
    //(preventing multiple copies being loaded etc)
    ...
    //====UTILL FUNCTIONS====
    //getting texture details, etc
    ...
    //====OVERLOADED OPERTORS====
    ....


    推荐阅读