问题标签 [naming-conventions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 您对辅助函数的命名约定是什么?
在函数式编程中,将任何“循环”代码优化为尾递归通常很重要。然而,尾递归算法通常分为两个函数 - 一个设置基本情况,另一个实现实际循环。一个好的(尽管是学术的)例子是反向函数。
“reverse_helper”并不是一个很好的描述性名称。但是,“reverse_recursive_part”很尴尬。
对于这样的辅助函数,您会使用什么命名约定?
java - java包名称约定失败
我刚刚开始学习 Java SE 并且对包名称的通常 Java 约定没有问题,例如com.example.library_name_here.package_name_here
除了。
我一直注意到在一些相当知名的软件包中未能遵守这一点。
- J线:
jline.*
- 雅各布:(
com.jacob.*
没有 jacob.com ) - JNA:(
com.sun.jna.*
网站上的免责声明说注意:Sun 不赞助这个项目,即使包名称 (com.sun.jna) 可能暗示其他情况。)
所以我想知道,是否存在通常的反向域名约定失效的情况,并且有很好的方法来解决它?我能想到的唯一情况是围绕域名所有权问题(例如,您更改项目托管/域名,或者已经有一个众所周知的包对您的域具有“抢注权”,或者您对域的所有权运行出去&别人抢购它)。
编辑:如果我使用我公司的域名,并且我们被收购或分拆,我们应该如何处理包名?保持它们相同或重命名?(我认为从引用包的编译类然后丢失的角度来看重命名是不好的)
naming-conventions - 还有其他人发现命名类和方法是编程中最困难的部分之一吗?
所以我正在研究这个应该通过网络服务向供应商请求帮助文档的课程。我试着把它命名为DocumentRetriever
, VendorDocRequester
, DocGetter
,但它们听起来不太对劲。我最终浏览了dictionary.com半小时,试图想出一个合适的词。
用坏名字开始编程就像早上头发很糟糕,一天的其余时间从那里走下坡路。感觉我?
language-agnostic - 如何将实体名称中的首字母缩略词大写?
让我们暂时假设您正在使用一种按照惯例使用驼峰式单词作为标识符的语言进行编程。所有使用下划线分隔的方法名称的 Ruby 类型都可以忽略这一点。
当您的名字包含首字母缩略词时,您会采取什么方法将第一个字母后面的字母大写?例如,您会调用方法 createSQLBuffer 还是 createSqlBuffer?您是否制定了规定在这种情况下该怎么做的政策?此外,任何人都可以链接我一些具体提倡其中一个或另一个的文章,或者实际上任何涵盖这一点的文章吗?
我知道这并不是什么大问题,但由于某种原因,我有时会遇到一个方法/类/变量以一种方式大写,而另一种方式看起来更自然。奇怪的是,我什至不确定它是否一致。发现我喜欢某些名称全部大写,而其他名称全部小写,这并不让我感到惊讶。
有人想分享他们对此的看法吗?
.net - 抽象类的命名约定
我清楚地记得,有一次,微软推动的指导方针是将“Base”后缀添加到抽象类中,以消除它是抽象的事实。因此,我们有像System.Web.Hosting.VirtualFileBase
, System.Configuration.ConfigurationValidatorBase
, System.Windows.Forms.ButtonBase
, 和当然的类System.Collections.CollectionBase
。
但我注意到,最近,框架中的许多抽象类似乎并没有遵循这个约定。例如,以下类都是抽象的,但不遵循此约定:
System.DirectoryServices.ActiveDirectory.DirectoryServer
System.Configuration.ConfigurationElement
System.Drawing.Brush
System.Windows.Forms.CommonDialog
这就是我可以在几秒钟内鼓起的。所以我去查了官方文档是怎么说的,以确保我没有疯。我在 MSDN 的Design Guidelines for Developing Class Libraries中找到了类、结构和接口的名称。奇怪的是,我找不到将“Base”添加到抽象类名称末尾的指南。并且该指南不再适用于 1.1 版框架。
那么,我会失去它吗?这个指南曾经存在吗?是不是一句话就被抛弃了?在过去的两年里,我是否一直在自己创造长的班级名称?
有人在这里扔我一根骨头。
更新 我没疯。该指南存在。Krzysztof Cwalina 在 2005 年对此表示不满。
naming-conventions - 应用程序版本或里程碑命名方案
我正在寻找应用程序版本或里程碑命名的“方案”。
我想找到一个适合我当前项目的命名方案,但我认为我们应该在这里收集更有趣的方案来分享有关该主题的知识和想法。
您还应该提供可能名称的数量以及建议的方案或估计值。
例如 :
- OGRE(面向对象的图形渲染引擎):每个版本都被命名为洛夫克拉夫特的“克苏鲁的呼唤”神话中的“伟大的旧时代”之一- 67 个可能的名称。
- Ubuntu(基于 Linux 的操作系统): 如此处所述
一个版本的开发代号采用“形容词动物”的形式。例如:Warty Warthog (Ubuntu 4.10)、Hoary Hedgehog (Ubuntu 5.04)、Breezy Badger (Ubuntu 5.10),是 Ubuntu 的前三个版本。通常,人们使用形容词来指代发布,例如“warty”或“breezy”。
这允许有限但非常大的可能名称计数。
- 一些硬件和软件版本被命名为真实世界的大城市——数百个可能的名称;
- 一些硬件和软件版本被命名为(希腊-罗马-随便)神话中的神或国王/军阀/皇帝——我的神话中可能的名字的十分之一;
- 等等
对于我自己的项目,我正在考虑使用一种命名方案来命名公共版本,例如流行的软件原则/哲学/规则/模式,如 DRY、KISS、YAGNI、Singleton、Factory、Visitor 等。但感觉可能是有点太多了……电脑极客。:)
language-agnostic - 您避免关键字命名冲突的系统是什么?
通常,语言的关键字无法直接使用完全相同的拼写和大小写来命名程序中的事物(变量、函数、类...)。然而,有时关键字是命名某事物的唯一自然选择。在您选择的技术中,您避免/解决这种冲突的系统是什么?
wpf - textBoxEmployeeName 与 employeeNameTextBox
您使用哪种命名约定,为什么?
我喜欢使用employeeNameTextBox,因为:
- 从英语的角度来看,这似乎更自然。
- 我发现使用 Intellisense 查找起来更容易。
- 该约定类似于用于事件(MouseClickEvent、MouseClickEventHandler)和依赖属性(VisiblityProperty)的约定。
注意:我使用的是全名而不是缩写(例如“tb”),因为它符合 MS 的命名约定,即避免使用缩写。
xml - XML 元素有标准的命名约定吗?
对于 XML 文档,是否有任何事实上的标准或其他标准?例如,哪个是编写标签的“最佳”方式?
同样,如果我有一个更好的属性的枚举值