【问题标题】:Naming functions for the past, present, and future tense?过去时、现在时和将来时的命名函数?
【发布时间】:2010-11-07 12:59:45
【问题描述】:

我正在尝试为 Permission 类提供一些简洁明了的名称,让您可以检查权限是否被允许/被拒绝。我不知道如何称呼将来时。

class Permission:
  def can_read()
  def could_read()
  def will_read()?
  def will_be_readable()?

我最喜欢will_read(),但这听起来很有趣。 will_be_readable() 很清楚,但有点长,will_be_read() 听起来很误导。

【问题讨论】:

  • 什么样的权限系统可以跟踪项目的过去、当前未来的可用性?
  • 它用于审核项目发生的更改。如果某些东西添加或删除了权限,它会被标记为这样。然后,稍后,当保存对象时,它会记录这些更改。

标签: api naming-conventions naming


【解决方案1】:

由于您正在寻找权限类,因此将代码表述为一个问题:

if (the_user.can_read()) ...
if (the_user.can_read_past()) ...
if (the_user.can_read_future()) ...

除此之外,我会尝试为语义上相等的函数保持相等的前缀,并且我会为默认/最可能的情况保留后缀。即使我喜欢将代码转向自然语言,我也没有为逻辑命名结构牺牲语法正确性的问题。所以类似的东西就是我想要的。

will_read() 听起来更像是在动作之前触发的事件。

编辑:我知道“can_read_past”可能被认为是“可以阅读旧东西”。也许 Scott Evernden 的建议更好?

【讨论】:

  • fwiw: .can_read_past() 表示用户当前可以阅读,但只能阅读过去的事件。也许:the_user.had_read() 或类似的东西。
  • 肉眼看来,是的。我知道这并不理想。我试图保持一致,假设 can_read() 是默认的、预期的情况,而其他两个是它的变体。我认为它是带有“过去”修饰符的“can_read()”,而不是“可以阅读旧东西”。但话又说回来,我不是母语人士,所以我真的不能说对后者的本能偏好有多强烈。
【解决方案2】:

是的,这里的英语真的有问题,没有“can”的将来时!切换到(比如说)readable_nowreadable_pastreadable_future 怎么样?如果过去和未来在您的情况下具有特定含义,我敢肯定,可以在这里制定更好的命名方式。

【讨论】:

    【解决方案3】:

    曾经、现在和 will_be 对我来说是最清楚的.. 或者可能是 readable_before, readable_now, readable_later

    【讨论】:

      【解决方案4】:

      既然它与是否允许/拒绝权限有关,也许有比阅读更具描述性的词?

      can_authorize
      授权
      schedule_to_authorize

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-20
        • 1970-01-01
        • 1970-01-01
        • 2011-02-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多