Questions tagged «naming»

以最少的字符数给出含义和解释,其形式应为整个团队或整个社区所接受。

5
C#中泛型的良好命名约定是什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我决定在这里问这个问题,而不是在堆栈溢出时问这个问题,因为它相当主观。 在C#中,通常我会看到名称很差的泛型类型。具体来说,“ T”是常用的,但其本身并不是有意义的名称。例如: class Fruit<T> { T fruit; } 虽然这是典型的方法,但有人会反对吗?如果是这样,那么在C#泛型函数和类的上下文中,泛型的合理命名约定是什么? 在我之前的示例中,让我们假设泛型类型T必须始终是水果的类型,例如Apple或Orange。该类型T需要使它很明显地表明它是水果的类型,所以也许更好的名称是FruitType,所以我们最终得到: class Fruit<FruitType> { FruitType fruit; } 这只是为了给大家我正在寻找的想法。这个问题可以接受的“经验法则”是什么?
16 c#  naming  generics 

6
方法和函数名称中的“ A”,“ an”和“ the”:您要做什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 5年前关闭。 我敢肯定,我们中的许多人都曾经在某一点看到过这样的方法名称: UploadTheFileToTheServerPlease CreateATemporaryFile WriteTheRecordToTheDatabase ResetTheSystemClock 也就是说,方法名称也应是语法正确的英语句子,并包括纯粹使它们像散文一样阅读的多余单词。就我个人而言,我不是这种“文字”方法名称的忠实拥护者,我更喜欢简洁,但仍要尽可能清楚。在我看来,“ a”,“ an”和“ the”之类的单词在方法名称中看起来很尴尬,这使得方法名称不必要地冗长而没有真正添加任何有用的内容。对于前面的示例,我希望使用以下方法名称: UploadFileToServer CreateTemporaryFile WriteOutRecord ResetSystemClock 以我的经验,这比写出更长的名字的其他方法要普遍得多,但是我既看到了这两种风格,又很想知道其他人对这两种方法有何想法。 那么,您是在“像散文一样阅读的方法名称”阵营中,还是在“说我的意思却像糟糕的外语到英语翻译的大声读出来的方法名称”阵营中?

3
高阶函数的命名约定?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 高阶函数有命名约定吗?即,返回其他功能的功能。 Javascript中的示例: function onlyDivisibleBy(div) { // <-- higher order function return function (n) { return n % div === 0; } } var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.filter(onlyDivisibleBy(3)); // [0, 3, 6, 9] arr.filter(onlyDivisibleBy(5)); // [0, 5] 我倾向于按照上面的方式编写它:也就是说,在调用点进行了易读性优化(我读了上面的最后几行,即“过滤数组以使项只能被5整除”),但是在定义点从使用它的上下文来看,从其名称了解该函数的作用并不容易。

3
如何避免在我创建的开源项目的标识符,包或名称空间中使用自己的名称?
我在自己的时间里做了很多开发工作。我从事的这些项目都是为了娱乐和学习(到目前为止)。我通常使用Maven进行Java开发,但也曾涉猎.NET和Python。我从事的所有项目都使用开源许可证,尽管其中大多数不在任何公共代码存储库中。 Java / Maven开发要求我使用唯一的groupId(例如,“ com.mydomain”)和唯一的package(目录)结构,通常包含groupId.NET开发鼓励唯一性,namespaces在这种情况下,我使用与Java package概念相似的约定。为了确保唯一性,我通常只使用其中一个域名颠倒的域名(例如“ ca.jessewebb”);我相信这是非常普遍的做法。 我正处于创建一个新的开源Java / Maven项目的初期阶段(我们将其称为“ newproj”),我想将其放在GitHub上。我在GitHub上的用户名是“ jessewebb”,因此它的网址为:https://github.com/jessewebb/newproj。我不想麻烦注册“ newproj.com”域名,所以我决定分别使用“ ca.jessewebb”和“ ca.jessewebb.newproj”作为groupId和package。 在我看来,我的个人身份出现在代码中以及作为项目主页的一部分(在GitHub URL中)可能会导致潜在的贡献者对参与我的项目进行三思。这是一个问题,我不希望它成为我的项目。如果可以,我希望传达的信息是我不拥有该项目。现在,老实说,这确实没什么大不了的,因为我怀疑我的项目会吸引社区的广泛参与,但是我也认为这更多的是避免任何可能阻止潜在捐助者的理由。 再举一个例子,我几年前创建了一个Google Code项目(我们称其为“ oldproj”)。创建项目时,我知道我将其托管在Google Code上,因此我使用了groupIdand包名称“ com.googlecode.oldproj”,这与Google Code为每个新项目提供的默认域名相反。事实证明这不是一个好主意。一年多后,我搬到了代码到不同的回购协议,我不得不重新命名这些标识符(以及我没有有但...)。当时,我没有任何域名,最终我购买了域名“ oldproj.com”,并使用了它。我之所以喜欢它,是因为它为项目赋予了自己的身份,并且我并没有在代码上加盖我的名字。我可以很容易地注册“ jessewebb.ca”域名,并使用“ ca.jessewebb.oldproj”作为软件包名称,但是我没有,因为那时我也有同样的担忧。 所以我的问题是 在创建开源项目时如何避免使用我自己的(域名)名称,同时又保持包/名称空间的唯一性? 随着项目获得更大的发展势头,注册域名很有意义,但是尽早这样做似乎很愚蠢和浪费金钱。我意识到我实际上并不需要拥有域名才能在代码中使用它,但是这感觉很错误,同时可能导致擅自占地者从您的身下抢走它。别人对这个困境怎么办?是否有一些流行的(广泛使用的,大型社区等)开源项目的示例,这些项目包含原始开发者的身份作为其自身标识符的一部分?

3
纯虚拟或抽象,名称是什么?
在讨论有关Stack Overflow上的虚拟功能的问题时,我想知道是否对纯(抽象)和非纯虚拟功能进行了正式命名。 我始终依靠Wikipedia来获取信息,其中指出纯虚函数和非纯虚函数是通用术语。不幸的是,本文没有使用来源或引用来进行备份。 引用乔恩·斯凯特(Jon Skeet)对我的答复的回答,即使用纯净和非纯净的通用术语: @Steven:嗯...可能,但是我以前只在C ++的上下文中看过它。我怀疑任何谈论他们的人都有C ++背景:) 这些术语是否起源于C ++,或者它们是首先以较早的语言定义或实现的,并且它们是“官方”科学术语吗? 更新: 弗兰克·希亚尔(Frank Shearar)有用地提供了指向SIMULA 67 Common Base Language(1970)的描述的链接。该语言似乎是第一种将OO关键字引入为class,object以及虚拟的形式概念的语言。它没有定义纯/非纯或抽象,但确实支持这些概念。 谁定义的?

3
我的方法或变量名是否太长?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 所以我目前正处于编码中间,对我来说,不幸的是,我处于“ The Zone”中,然后我对自己想,我的方法/变量名称长吗? POP走出我的区域! 所以我来这里问,我的方法/变量名是否太长?你是法官!奖励指向可以弄清楚我在写什么的人,尽管我敢肯定,上师会很快弄清楚! 无论如何,这是我的一些方法和变量名。 方法:searchBlockedListForBlockedSquares(),isCurrentSquareNextToAtLeastOneBlockedSquare(),searchBlockedListForBlockedSquares() 变量:isNextToBlockedSquares; 我猜只有一个似乎太长的变量。
15 naming  variables 

13
异步并等待-轮询替代方案
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 既然我们知道了c#5的存储内容,显然还有一个机会可以影响我们由Anders Heijsberg昨天在PDC10上宣布的两个“ 异步 ” 新关键字的选择。 async void ArchiveDocuments(List<Url> urls) { Task archive = null; for(int i = 0; i < urls.Count; ++i) { var document = await FetchAsync(urls[i]); if (archive != null) await archive; archive = ArchiveAsync(document); } } 埃里克·利珀特(Eric Lippert)对当前两个关键字的选择以及在可用性研究中被误解的方式进行了解释。这些评论还有其他一些主张。 请-每个答案一个建议,重复将被取消。
15 c#  naming 

4
编程中的引导程序是什么?
我有时会看到“ Bootstrapper”一词。在为Prism创建一些学习练习时,我最后看到了它。我偶然发现UnityBootstrapper上课。我的问题是:您何时将一门课程称为“自举程序”?为什么?这堂课怎么说?

5
如何组织本地化字符串资源?
我们正在开发一个包含许多小程序包的大型应用程序。每个软件包都有自己的一组资源文件以进行本地化。 组织和命名本地化字符串的最佳方法是什么? 到目前为止,这是我的想法: 处理重复项 同一文本(例如“邮政编码”)在给定的程序包中可能多次出现。编程本能(DRY)告诉我创建一个由所有实例共享的单个字符串资源。 再者,翻译者可能希望在某些地方选择长译本(“ Postleitzahl”),在空间较小的地方选择短译本(“ PLZ”)。或者,我们可能决定在某些情况下添加冒号(“邮政编码:”),而在其他情况下则不添加。或者我们可能在某些地方要求使用不同的大写字母(“邮政编码”)。所有这些参数都指向每种用法创建一个资源,即使它们的内容相同。 命名 如果我们希望消除重复,则可以按内容命名资源,也许可以通过前缀提示使用的种类。因此,我们可能有labelOK= “ OK”,messageFileTooLarge= “文件超出了最大文件大小。” 和labelZipCode= “邮政编码”。 按内容命名具有自然处理格式参数的优势:资源messageFileHas_0_MBWhileMaximumIs_1_MB显然采用两个格式参数,即实际文件大小和最大文件大小。 但是,如果我们允许重复,则仅按内容命名是没有意义的。为了获得唯一的资源名称,我们必须以某种方式在资源名称中包括使用位置。这适用于图形控件,尽管标识符往往有点长:fileSelectionConfirmationButtonText= “ OK”,customerDetailsTableColumnZipCode= “邮政编码”。但是,对于非可视代码文件,它会变得更加困难。如果您不知道字符串的最终显示位置,该如何命名字符串的特定用法?通过代码文件和函数名称?对我来说似乎很笨拙。 总而言之,我倾向于允许重复,但是我一直在努力寻找一个支持此目的的一致命名方案。 编辑:这个问题有两个方面:如何组织资源(DRY与重复项)以及如何命名它们。到目前为止,答案集中在第一方面。非常感谢您提供有关命名约定的反馈!

4
我们应该重命名重载的方法吗?
假定包含以下方法的接口: Car find(long id); List<Car> find(String model); 像这样重命名它们更好吗? Car findById(long id); List findByModel(String model); 实际上,使用此API的任何开发人员都无需查看接口即可知道初始find()方法的可能参数。 所以我的问题更笼统:在代码中使用重载方法有什么好处,因为它会降低可读性?

9
当您的命名约定与您的语言冲突时,您会怎么做?
好的,这是总是困扰我的那些小事情之一。我通常不缩写标识符,并且我唯一使用短标识符(例如i)的时候就是紧循环。因此,当我使用C ++进行工作时,这很烦我,我有一个需要命名的变量,operator或者class我必须解决它或使用缩写,因为它最终会突出。警告:这可能经常在我身上成比例出现,因为我在编程语言设计中投入了大量精力,其中领域对象可能会在宿主语言中反映概念,而无意间导致冲突。 您将如何处理?缩写?(op)拼写错误?(klass)还有吗?(operator_)
14 naming 

4
名称空间/包装的优点
某些编程语言(例如Java和C ++)具有称为“包”或“命名空间”的语言功能。拥有名称空间真的有多有用?可以像SDL一样(例如SDL_BlitSurface())将功能和类标记为属于某个特定库,而无需使用这种语言功能。命名空间是否不足以值得拥有?它们在库中有用但在应用程序中没有用吗?除了在小型项目中,它们是否在其他地方有用?有什么想法吗?

2
鲍伯叔叔的“名词短语名称”是什么意思?
我正在阅读Bob叔叔的Clean Code。由于我不是讲英语的人,因此我无法理解以下陈述: 类和对象应该有像名词或名词短语的名称 Customer,WikiPage,Account,和AddressParser。避免的话想 Manager,Processor,Data,或Info在类的名称。类名不能是动词。 据我所知,没有一个Manager,Processor,Data和Info是一个动词,是不是?他想强调的重点是什么?

6
C#函数参数使用什么命名约定
在某些情况下,在Parameter中传递的名称将被转换为新的类型,但是Passed对象的名称应保持相似。对于类属性,我们可以使用此运算符,但是函数中的局部变量呢?什么编码约定被广泛使用。 例, void MyFunc(BaseClass myPara) { DerivedClass _mypara = (BaseClass)myPara; } 或相反 void MyFunc(BaseClass _myPara) { DerivedClass mypara = (BaseClass)_myPara; } 或其他任何约定
14 c#  naming 

4
为动词命名布尔字段
在Java中,按照约定,布尔字段的getter和setter将是isField()和setField()。这工作完全正常与是形容词喜欢字段名active,visible,closed,等。 但是,如何命名具有动词含义的字段,例如haveChildren?在动词()上加上“ _ing” ,也许吗?havingChildren 为了澄清,我无法控制方法名称(getter和setter),因为它们是由IDE自动生成的。因此,我需要一个适当的字段名称,以便在IDE为其生成getter时有意义。例如,hasChildren是一个完美的字段名称,但是当IDE为该字段生成getter时,它将为isHasChildren。我该如何解决?
14 java  naming 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.