Questions tagged «naming-standards»

12
在局部变量(例如,employeeCount,firstName)中的第一个单词使用小写的原因是什么?
由于我对所有变量都使用了完全正确的大小写形式,因此引起了其他程序员的大量批评。例如,您的典型程序员将使用employeeCount变量名,但我使用EmployeeCount。我对所有内容都使用完全正确的大小写,无论是void方法,return方法,变量,属性还是常量。我什至在Javascript中都遵循此约定。最后一个确实震撼了人们的傻瓜。 关于为什么我不应该遵循这种“非标准”大写字母约定的典型原因是,应为属性和void方法保留完整的适当大小写。局部变量和返回值的方法的首字母应小写,例如int employeeCount = getEmployeeCount()。 但是,我不明白为什么。 当我对此提出疑问时,似乎只能得到一个任意的答案,那就是标准。不管答案是什么,它通常总是归结为这就是它的样子,我对此并不怀疑。我只是跟随它。。任意答案对我来说永远不够好。 自从使用Office IDE对Excel 97宏进行编程的早期开始,我就不需要用大小写约定来告诉我某些东西是局部变量还是属性。这是因为我一直使用非常直观的命名约定。例如,GetNuggetCount()很明显地提出了一种方法,该方法可以计算所有矿块的数量。 SetNuggetCount(x)建议您为块数分配一个新值。 NuggetCount所有这些本身都暗示了仅包含值的属性或局部变量。对于最后一个,可能会想说:“啊哈!这是问题。属性或变量?这是什么?” 为此,我会回答:“这真的重要吗?” 因此,这就是tl; dr ;:在变量或return方法中的第一个单词使用小写字母的客观,逻辑,非任意原因是什么? 编辑: 对于MainMa 将此代码替换为答案中的第一个代码示例,然后查看您的论点是否成立: public void ComputeMetrics() { const int MaxSnapshots = 20; var Snapshots = this.LiveMeasurements.IsEnabled ? this.GrabSnapshots(MaxSnapshots, this.cache) : this.LoadFromMemoryStorage(); if (!Snapshots.Any()) { this.Report(LogMessage.SnapshotsAreEmpty); return; } var MeasurementCount = Measurements.Count(); this.Chart.Initialize((count + 1) …

1
所有大写常量的命名历史是什么?
用大写字母命名常量的惯例背后的历史是什么? 我的直觉是从C预处理程序开始的,在C预处理程序中,人们开发了一种做法,以所有大写形式命名预处理程序宏,以便它们可以有效地存在于单独的命名空间中,并避免名称冲突。我的信念是,这种做法后来被误解并混为一谈,也适用于非预处理程序常量(enums,const变量)。 在所有大写字母中命名预处理器宏对我来说确实有用。用这种方式命名通用常量不是那么多(如果它与宏名称产生冲突,则会适得其反)。 我在基地外吗?大写常量的惯例是否早于C?

8
C#-为什么不鼓励在字段上使用前缀?
过去,我们使用匈牙利符号。现在将其视为passé,并且在大多数情况下,我不再使用它,但是我仍然发现该m_前缀用于表示成员字段。 对我来说,如果我正在阅读别人的代码,就会看到以下内容: count = 3; 我假设这count是该函数的局部变量,并且我正在做将在该函数的其他地方使用的操作。如果我看到这个: m_count = 3; 我立即意识到我正在更新对象的状态。 Microsoft风格指南说这是做事的错误方法。我应该像在函数中定义的临时变量一样命名我的非公共字段。不m_,甚至没有简单的下划线。 是的,我们可以定义自己的编码样式,但是接下来我必须努力使用各种静态代码分析工具,以使他们相信我们的处事方式还可以。 我很高兴能够更改为Microsoft风格,但是我想知道为什么事情是这样。 为什么现在不能分辨一个变量是函数本地变量还是成员变量,这为什么认为很糟糕? PS这非常类似于c#领域和方法前面关于“ this”关键字的当前最佳实践是什么?,但我问的m_不是this. PPS另请参见Microsoft为什么使参数,局部变量和私有字段具有相同的名称命名约定?

5
命名上传图像的最佳做法是什么?
假设我的Web应用程序中有一个表单,用户可以在其中上传个人资料图片。 我对文件大小,尺寸等几乎没有要求,但是当用户上传图像时,如何在系统上命名它们?我想它需要保持一致并且也是唯一的。 也许是GUID? a5c627bedc3c44b7ae7c06a44fb3fcf8.jpg 时间戳记? 129899740140465735.jpg 哈希?例如:md5 b1a9acaf295cf14ffbc5b6538294562c.jpg 有没有标准或推荐的方法来做到这一点?

3
软件开发中的环境命名标准?
我的项目目前遇到环境命名问题。关于应该命名什么环境或命名什么名称,不同的人有不同的假设,这在讨论它们时引起了混乱。我已经做了一些研究,但还没有找到任何标准。 这些术语包括“本地”,“沙”,“开发”,“测试”,“用户”,“质量检查”,“阶段”和“产品”(以及其他人询问的其他内容) 我并不是在寻求公正的意见,尽管如果有“每个人”拥有的意见,我会接受它-我试图通过某种权威来寻找定义,即使它是非官方的。 这是我们当前使用的环境: 开发者PC上的环境 共享环境,开发人员可直接在其中共享代码以进行自我测试 质量保证人员测试标准和功能的共享环境 共享环境,已完成且经过质量检查的代码已由项目请求者批准 将最终环境反映为最终检查并准备部署的环境 使用代码的最终环境 我知道我叫他们什么,但是这有某种标准吗?提前致谢。

3
在标准类型和用户定义类型之间进行语法区分的目的是什么?
尽管在这里我将特别提及C ++和Bjarne Stroustrup的命名约定,但原则上,我已经看到人们在这里和那里对其他语言使用一些相似的规则。 因此,基本思想是在阅读代码时应该能够将标准类型与用户定义的类型区分开。例如,Bjarne Stroustrup建议使用 类型(例如Square和Graph)的首字母大写 考虑到 C ++语言和标准库不使用大写字母 可以实现上述目标。 但是,为什么我们需要这样做呢?区分标准类型和用户定义类型的目的是什么? 在这件事上,我找不到Bjarne Stroustrup的任何推理,而且,我自己以截然相反的方式思考。:DI知道,我知道,“我要和谁争论Stroustrup?” 但是,听着,许多C ++语言功能(例如,运算符重载)用于允许用户定义类型的语法支持水平与标准类型相似。然后所有这一切都被另一个命名规则所困扰... PS更不用说一个单词常常不足以命名一个班级,而以大写字母开头的下划线分隔的单词看起来太陌生了。

2
为什么不像Haskell那样将Scala Option类型称为Maybe?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 为什么不像Haskell那样将Scala Option类型称为Maybe? 也许对我来说更具“语义意义”,但也许Option具有我所不知道的不同行为。 有什么特殊的原因为什么不将Scala中的Option称为Maybe?

2
如何命名在Python中返回值的函数?
我对在Python中为函数选择名称感到困惑。有时,Python内置函数势在必行,例如:printfunction和string method find。有时它们不是这样的:例如,len它的名称不是必须的calculate_len,而type不是find_type。 我可以理解,它print返回了一个我们不使用的值(即None),并且执行了某项操作(即,它在屏幕上显示了一个字符串),因此其名称势在必行。 但是len返回一个我们使用并执行某项操作的值(即,计算序列或映射中有多少个项。),其名称不是必须的。另一方面,find字符串方法(as len)返回一个我们使用并执行某操作的值,并且它的名称是必要的。 问这个问题的原因是,我将使用Caesar密码对字符串进行加密和解密的脚本进行了审查。审稿人说: 只是一种直觉:函数可以完成任务。因此,一个函数的好名字是势在必行的:我会用rotate_letter代替rotated_letter。 rotated_letter返回表示由数字旋转的字母的单字母字符串。我不知道有什么更好的,我用rotated_letter它返回一个值,就像random模块中的randint function,不是。generate_randint 因此,在这种情况下,我应该如何命名一个返回要使用的值的函数?我应该将名称设为命令性还是仅是名词。在其他情况下,显而易见的是如何执行此操作,例如布尔函数,例如is_even和is_palindrome我们将其设为是/否问题,以及仅执行并返回未使用的值(即None)的函数,例如printand list方法。sort。

4
为什么在方法名称中使用连词是不好的命名约定?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 在我的团队中,我们与一些软件架构师紧密合作。他们批准我们项目的所有设计决策,进行一些代码审查等。 我们的项目主要包括使用Symfony 2框架以PHP实现的后端功能。因此,在语法上,代码,命名约定和项目结构看起来几乎与Java的外观相同(Symfony 2鼓励采用这种结构)。我之所以这样说是因为特定于Java的约定也适用于我们的情况(如果可能)。 最近,他们提出了一些令我感到很奇怪的东西:所有方法的名称中都应带有连词,例如getEntityOrNull,setValueOrException等等。 这样的命名约定对我来说是非常错误的,但是我无法提出任何具体的论据或在线文章/页面来专门挑战这一点。 我想到的唯一的东西是: 此类信息应出现在方法的注释中,例如@return或@throws 在方法名称中使用连词(“和”,“或”等)通常表明未适当遵守“单一责任原则” 反对该命名约定的其他一些具体论点是什么?

2
可能以下划线开头的变量/成员会困扰编译器吗?
从高中开始我就被教导要定义如下变量: int _a; 要么 int __a; 应该将其视为不良做法,因为这最终会使使用下划线开头的变量来命名临时变量的编译器感到困惑。 据我所知,这就是有些人喜欢在名称末尾移动下划线的原因,例如: int a_; 但是,我看到很多代码都使用下划线开头的变量。而且该代码在Visual Studio 2010和g ++ 4.x中都可以很好地构建。 所以我想知道:这今天不是问题吗?现代编译器在命名约定方面更聪明吗?

2
属性正确命名以代表以数字开头的字符串
查看Windows上的某些相机元数据File Properties(还有其他一些内容),两个分别Properties称为Focal length和35mm焦距。 我正在开发将利用这两个功能的软件Properties。到目前为止,我已经为第一个创建了一个Property名称FocalLength,但是似乎无法为另一个找到合适的名称。 我已经考虑过_35MmFocalLength或ThirtyFiveMmFocalLength,但是我认为可能会有更好的建议。 有任何想法吗?

1
非抽象类是否有明确的字眼?
我的项目中主要有抽象类,还有一些其他类正在使用/继承它们。在编写文档时,我想指出其中一部分只是关于这些非抽象类的行为,但是我发现使用这个词很愚蠢。 我可以说这是一个类,但是抽象类也是一个类。所以我想知道非抽象类是否有明确的单词/同义词? SEO更新: 非抽象类的通用名称是什么?
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.