标签: naming-conventions

表命名困境:奇异与多个名称

学术界认为表名应该是他们存储属性的实体的单数.

我不喜欢任何需要在名称周围使用方括号的T-SQL,但我已经将Users表重命名为单数,永远判断那些使用表的人有时必须使用括号.

我的直觉是,保持单数是更正确的,但我的直觉也是括号表示不受欢迎的人,如列名,其中有空格等.

我应该走还是留?

sql sql-server naming-conventions

1404
推荐指数
33
解决办法
37万
查看次数

在对象名称之前单个和双下划线的含义是什么?

有人可以解释在Python中对象名称之前有前导下划线的确切含义吗?另外,解释单个和双重前导下划线之间的区别.此外,无论所讨论的对象是变量,函数,方法等,这个含义是否保持不变?

python naming-conventions

1205
推荐指数
13
解决办法
36万
查看次数

命名类 - 如何避免将所有内容称为"<WhatEver> Manager"?

很久以前我读过一篇文章(我相信一篇博客文章),它让我在命名对象的"正确"轨道上:非常谨慎地命名程序中的东西.

例如,如果我的应用程序(作为一个典型的业务应用程序)处理用户,公司和地址我有一个User,一个Company和一个Address域类 - 可能在某个地方UserManager,一个CompanyManager和一个AddressManager会弹出来处理这些事情.

所以,你可以告诉那些UserManager,CompanyManagerAddressManager做什么?不,因为Manager是一个非常通用的术语,适用于您可以对域对象执行的任何操作.

我读过的文章建议使用非常具体的名称.如果它是一个C++应用程序并且该UserManager工作正在分配并从堆中释放用户,那么它将不会管理用户,而是保护他们的出生和死亡.嗯,也许我们可以称之为UserShepherd.

或者可能UserManager的工作是检查每个User对象的数据并以加密方式对数据进行签名.然后我们有一个UserRecordsClerk.

现在这个想法一直困扰着我,我尝试应用它.并且发现这个简单的想法非常难.

我可以描述这些类的功能和(只要我不进入快速和脏编码)我写的类只做件事.我想念从名称到名称的是一种名称目录,一种将概念映射到名称的词汇表.

最终,我想在我的脑海里有类似图案目录的东西(通常设计图案很容易提供对象名称,例如工厂)

  • Factory - 创建其他对象(从设计模式中获取命名)
  • 牧羊人 - 牧羊人处理物体的生命,它们的创建和关闭
  • 同步器 - 在两个或多个对象(或对象层次结构)之间复制数据
  • 保姆 - 帮助对象在创建后达到"可用"状态 - 例如通过连接到其他对象

  • 等等

那么,你如何处理这个问题呢?你有一个固定的词汇表,你是否动态发明新的名字,或者你认为命名的东西不是那么重要或错误?

PS:我也对链接​​到讨论这个问题的文章和博客感兴趣.首先,这是让我思考它的原始文章:在没有"经理"的情况下命名Java类


更新:答案摘要

以下是我在此期间从这个问题中学到的内容的一些总结.

  • 尽量不要创造新的比喻(保姆)
  • 看看其他框架做了什么

关于这个主题的进一步文章/书籍:

以及我从答案中收集的主观名称前缀/后缀的当前列表:

  • 协调员
  • 生成器
  • 作家
  • 读者
  • 处理器
  • 容器
  • 协议
  • 目标 …

oop naming design-patterns naming-conventions

1147
推荐指数
11
解决办法
20万
查看次数

有哪些常用的命名git分支实例的例子?

现在,我已经使用本地git存储库与我的组的CVS存储库进行了几个月的交互.我已经制作了一个几乎神经质的分支,其中大部分幸运地合并回我的行李箱.但是命名开始成为一个问题.如果我有一个容易用简单标签命名的任务,但是我在三个阶段完成它,每个阶段都包含它们自己的分支和合并情况,那么我每次都可以重复分支名称,但这会使历史有点混乱.如果我在名称中有更具体的说明,并且每个阶段都有单独的描述,那么分支名称开始变得冗长而且难以处理.

我确实在这里学习通过旧线程查看我可以开始用名称中的/来命名分支,即主题/任务,或类似的东西.我可能会开始这样做,看看它是否有助于保持更好的组织.

命名git分支有哪些最佳实践?

编辑:实际上没有人建议任何命名约定.当我完成分支时,我会删除分支.由于管理层不断调整我的优先事项,我恰巧有几个人.:)作为为什么我可能需要在任务上需要多个分支的示例,假设我需要将任务中的第一个离散里程碑提交到组的CVS存储库.那时,由于我与CVS的不完美交互,我会执行该提交然后杀死该分支.(如果我在那时尝试继续使用相同的分支,我看到太多奇怪的事情与CVS交互.)

git branch naming-conventions

1034
推荐指数
7
解决办法
48万
查看次数

为什么JavaScript变量以美元符号开头?

我经常看到带有以美元符号开头的变量的JavaScript.何时/为什么你会选择以这种方式为变量添加前缀?

(我不是问$('p.foo')你在jQuery和其他人看到的语法,而是像$name和的常见变量$order)

javascript naming-conventions

1010
推荐指数
7
解决办法
22万
查看次数

在C++标识符中使用下划线有哪些规则?

在C++中通常用某种前缀命名成员变量来表示它们是成员变量而不是局部变量或参数.如果你来自MFC背景,你可能会使用m_foo.我myFoo偶尔也见过.

C#(或者可能只是.NET)似乎建议只使用下划线,如_foo.这是否允许C++标准?

c++ standards naming-conventions c++-faq

906
推荐指数
4
解决办法
24万
查看次数

数据库,表和列命名约定?

每当我设计一个数据库时,我总是想知道是否有一种在我的数据库中命名项目的最佳方法.我经常问自己以下问题:

  1. 表名应该是复数吗?
  2. 列名应该是单数吗?
  3. 我应该为表格或列添加前缀吗?
  4. 我应该在命名项目中使用任何案例吗?

是否有任何建议的指南用于命名数据​​库中的项目?

database language-agnostic database-design naming-conventions

765
推荐指数
18
解决办法
50万
查看次数

为什么不是◎ܫ◎和☺有效的JavaScript变量名?

我注意到在Internet Explorer中(但不幸的是,在我测试的其他浏览器中没有),您可以使用一些Unicode变量名.这是我的一天,我非常高兴能够编写有趣的Unicode代码,如下所示:

var ??????????? = "You dirty horse.",
    happy?n?mat?p?eia = ":)Yay!",
    ?_? = "emoticon";

alert(??????????? + happy?n?mat?p?eia + ?_?);
Run Code Online (Sandbox Code Playgroud)

但是,出于某些原因,并且???,?_?并且?它们不是有效的变量名称.

为什么?_????工作,但是???,?_??没有?

编辑:在JSFiddle上的浏览器中测试它.我在Internet Explorer 9,Chrome,Firefox和Opera中测试过它.到目前为止,它似乎只适用于Internet Explorer 9.(我不知道Internet Explorer 8及以下版本.)让我知道它是否适用于其他浏览器.

javascript invalid-characters naming-conventions

720
推荐指数
4
解决办法
5万
查看次数

Python中变量和函数名称的命名约定是什么?

来自C#背景的变量和方法名称的命名约定通常是CamelCase或Pascal Case:

// C# example
string thisIsMyVariable = "a"
public void ThisIsMyMethod()
Run Code Online (Sandbox Code Playgroud)

在Python中,我已经看到了上面的内容,但我也看到了使用下划线:

# python example
this_is_my_variable = 'a'
def this_is_my_function():
Run Code Online (Sandbox Code Playgroud)

Python有更优选的,明确的编码风格吗?

python variables function naming-conventions

719
推荐指数
11
解决办法
42万
查看次数

570
推荐指数
5
解决办法
24万
查看次数