Language agnostic 编码指南-一致的变量命名

Language agnostic 编码指南-一致的变量命名,language-agnostic,coding-style,Language Agnostic,Coding Style,我目前正在为初级开发人员编写一个编码风格指南,我很好奇是否有人使用常见变量名列表(用于基本概念)来限制代码库中的混乱 例如: 电子邮件地址:电子邮件(而非:邮件、电子邮件、地址、*邮件地址*…) 对于数据库名称:dbname(而不是:db、dbase、base、database、*database_name*、dbn…) 对于具有完全限定路径的文件名:文件路径(而不是:文件、路径、*文件名*、路径文件…) 相对文件名(不带路径):文件名(而非:文件名、名称、f…) 对于配置对象:config(

我目前正在为初级开发人员编写一个编码风格指南,我很好奇是否有人使用常见变量名列表(用于基本概念)来限制代码库中的混乱

例如:

  • 电子邮件地址:电子邮件(而非:邮件、电子邮件、地址、*邮件地址*…)
  • 对于数据库名称:dbname(而不是:db、dbase、base、database、*database_name*、dbn…)
  • 对于具有完全限定路径的文件名:文件路径(而不是:文件、路径、*文件名*、路径文件…)
  • 相对文件名(不带路径):文件名(而非:文件名、名称、f…)
  • 对于配置对象:config(而不是:配置、配置、变量等)
你使用类似的惯例吗

编辑


确切地说:它不是关于格式的约定(camelCaps或*names_加上_下划线*),这往往取决于语言和项目,而是关于命名的约定(邮件、电子邮件或Courrel),这是所有语言的共同点(比如使用i、j、k作为迭代计数器的约定)

选择一个一致的惯例并坚持下去

你建议的约定不一致email正在使用,因此您应该使用database\u name而不是dbname。另外,文件路径文件名配置


简言之,我建议使用完整的英语单词,用“u”分隔。这是一致的,也是埃菲尔的惯例。其他系统也可能是一致的。但不是所有东西的混合。

这是最糟糕的微观管理。只需说“尝试使用清晰无歧义的变量名”,告诉他们更喜欢较长的名称,只需使用代码完成来保存键入

如果你需要教低年级学生编写对其他人有意义的代码,可以使用结对编程和代码审查

你需要相信他们会做正确的事情,当他们不做的时候,你需要纠正他们


不要制定自己的约定,很可能您正在使用的语言在其文化中已经有约定,例如Java中的camelCaseForVariableNames。遵循这些原则。

许多人通常更喜欢采用他们使用的语言中已经采用的惯例。

例如,在java中,它将是<强>数据库名< /强>,在C++中,“强>数据库”<强> >/P>将不起作用,因为我们有许多开发人员(包括我在内),而英语不是主要语言……@:我不明白,什么不能工作,为什么?请开发者在不引导它们的情况下使用好的名称。他们来自不同的国家,英语水平不同。除了在英语中使用许多相同术语的概要外,他们还经常开始使用自己的母语命名变量、某些方法或发表评论(“这不是API的一部分,所以没人在乎”的态度)。我们想要做的就是让代码维护更容易。制定指导方针是与不信任相对立的。我认为在进行更正之前,最好清楚地表达所期望的内容,因此告诉他们用英语编写代码,如果他们使用同义词,只要它们清晰且无歧义,那么会怎么样。此外,还要补充一点。有时我半开玩笑地说,90%的编程只是为事物选择好的名称。如果有人告诉我我可以用什么名字,那就好像他们在为我工作一样,会妨碍我的编程能力。电子邮件地址不是电子邮件。电子邮件有发件人地址和一个或多个收件人地址。取决于语言;)。但我认为,这恰恰表明了这种公约的目的。那么,它是如何进行的呢?你能把我们和你完成的编码风格指南联系起来吗?当我完成时,我会分享它:)但这不会在圣诞节之前发生(这显然不是我最优先考虑的项目)