命名事物是困难的。在命名我的类、变量和方法时,我努力避免与我的语言(MSSQL、VB.NET 或 C#、HTML、CSS、jQuery)和框架 (.NET) 中的保留字或关键字发生冲突。
我经常犯错误,直到为时已晚,无法轻松返回并重命名时才意识到。
一个场景:(1) 首先创建一个数据库模式,然后 (2) 意识到表或列名对于 C#/.NET 对象来说不是一个好的选择。
你使用什么技术?
命名事物是困难的。在命名我的类、变量和方法时,我努力避免与我的语言(MSSQL、VB.NET 或 C#、HTML、CSS、jQuery)和框架 (.NET) 中的保留字或关键字发生冲突。
我经常犯错误,直到为时已晚,无法轻松返回并重命名时才意识到。
一个场景:(1) 首先创建一个数据库模式,然后 (2) 意识到表或列名对于 C#/.NET 对象来说不是一个好的选择。
你使用什么技术?
一个不错的IDE...
如果您使用的是Visual Studio或SQL Server Management Studio,那么它们会以不同颜色突出显示保留关键字。
如果您确实需要,某些语言具有使用保留关键字的特殊语法,但实际上并不推荐。例如,在 C# 中,您可以使用at 符号作为前缀,例如
var @class = "Hello";
或者在 SQL Server 中,您可以使用方括号:
SELECT [where] from Locations;
几乎任何编辑器和 IDE 都会自动以适当的(与其他符号对比)颜色突出显示关键字,前提是它知道您正在编辑的代码的语言语法。
如果您无法使用这项技术,就像过去一样,最好的办法是记住所有关键字,并随身携带一份备忘单。但是,真的,你的编辑应该这样做。
即使在较大的项目中,我也从未遇到过这个问题。我遵循一些标准约定,例如在变量名称前加上它们的类型。我还利用命名空间来确保获得我想要的确切对象/方法。老实说,我看不出在命名未保留的事物时困难在哪里。
我真的很少遇到与关键字冲突的问题:如果您将列表命名为 List,那么,您应该被它所困扰,因为您应该使用更有意义的变量名......
当然,如果你正在构建一个编译器并且你实际上需要一个Class
类,那么这一点就没有意义了……但这种情况很少见。
在几乎所有其他情况下,没有意义List list
,何时List items
或List tokens
有意义。
去更清楚。
C# 示例
班级
css类
SQL Server 示例
更新
执行更新
IDE 可以提供帮助。
一个好方法就是学习你正在使用的语言的语法。通常,您可以找到语言的保留关键字列表。
定期测试 JavaScript 等动态语言会很快发现关键字问题。(因为我还没有让 eclipse 与 javascript 一起工作)。
使用结构化编程!
这意味着不同范围内的变量应该只存在并且只与该范围相关。当你想使用一个全局变量时,明确地这样做。
如果程序的区域不能分割成函数,那么将区域分割成类。这样,AreaX->ID 不会与 AreaY->ID 发生冲突。类也可以绕过一些保留字。
对于一些保留字,您只需要尽量避免使用通用名称。我知道 $HOME 在 PHP 中特别危险。