动态类型语言中地图/列表的变量命名约定

Jea*_*ash 10 language-agnostic variables groovy naming-conventions dynamic-typing

我正在使用Groovy语言,它具有动态类型(以及可选的静态类型).它还具有对列表,地图和范围的本机支持,因此我发现自己使用列表和地图很多,尤其是列表列表,地图列表,列表地图等.

在静态语言(尤其是泛型)中,您始终可以了解您的类型.我对动态语言相当新,而且跟踪我的变量应该是什么有点困难,所以我想知道其他人是否使用某种变量命名约定来保持这些.

例如,假设我有一个日期为键的映射,而整数为值.或整数列表,或包含字符串作为键和帐户对象作为值的映射列表.

似乎在变量名后面创建一个明确的约定将帮助我跟踪我正在处理的数据类型结构,而不必查找它.

有小费吗?

Mar*_*usQ 13

这是一个普通的初学者的哀叹.你可以使用一个命名约定,但可能性是不久你就会放弃它,并专注于什么(关于其意义的代码的其余部分)的变量表示,而不是担心如何它(它代表的"类型") .


jav*_*ook 7

变量的名称应该向读取代码的人解释它应该是什么,它代表什么.如果您有一个整数的日期映射,它是否代表(例如(建议的变量名称在括号中):

  1. 在该日期到期的一些付款(paymentsDue)
  2. 映射日期和其他某个时间点之间的天数(daysPassed)
  3. Stack Overflow(numberOfPostedMessages)上该日期发布的一些消息

在变量类型不易获得的语言中,您可能希望附加后缀的前缀,例如paymentsDueMap.但是,我建议不要在变量名称中编码任何其他类型信息,例如datesToInts- 通常弊大于利.

最后,如果您有一个复杂的数据结构,例如字符串和帐户之间的映射列表,最好的方法是将其封装到一个单独的类中,并根据其意图命名.