【问题标题】:Really long class/variable/property/method names非常长的类/变量/属性/方法名称
【发布时间】:2023-03-09 22:36:01
【问题描述】:

我的一些朋友和同事举办了一场小型竞赛,以寻找或写出最长的类/变量/属性/方法名称。请记住,我们努力成为优秀的男孩和女孩,并保持命名清晰明了,同时仍然通过名称解释事物的作用。

有时它只是不会发生。你遇到过这个吗?我只是想看看外面有什么。 (也许我和我的朋友并没有我们想象的那么疯狂)

注意:我不是在寻找不好的命名。那已经是here。我正在寻找好的名称,只是有点长。

【问题讨论】:

  • 甲骨文不允许玩这个游戏。最多 32 个字符,我们生活在 2008 年!
  • 一个大名字可能是一个坏名字,因为一个简单的事实是,如果你需要一个大名字来描述它的作用,那么它很可能做得太多;)
  • @workmad3 太真实了!无法正确命名函数通常是另一个问题的症状,它做得太多了!
  • 虽然长类名可能表示松散耦合,但会破坏单独类中的功能。例如有子类的工人类...... n......一个模型。

标签: naming-conventions naming variable-names class-names


【解决方案1】:

这不是一个类名,而是一个枚举,但要长很多:

VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonOther

来自 VMware vSphere API。谷歌一下,你会找到在线文档。

【讨论】:

    【解决方案2】:

    它并不长,但我最喜欢的变量名称是表示用户已选择接收电子邮件。

    User.IsSpammable

    【讨论】:

    • 如果你不太沉迷于以“is”开头的布尔值,你可以使用 User.canSpam
    【解决方案3】:

    我发现有描述测试的长测试名称很好。例如:

    testMapWithOneEntryAllowsDifferentEntryPreservingFirst
    testMapWithOneEntryAllowsDuplicateEntryOverwritingFirst
    

    (这些只是我脑海中的例子......不过你明白了。)

    【讨论】:

      【解决方案4】:
      org.aspectj.weaver.patterns;
      
      public class HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor {
          boolean ohYesItHas = false;
      
          public boolean wellHasItThen/*?*/() {
              return ohYesItHas;
          }
      
          ... more methods...
      }
      

      【讨论】:

        【解决方案5】:

        前段时间,我遇到了 Hibernate 的问题。 我在名为 findIntendedAliasedFromElementBasedOnCrazyJPARequirements 的方法中遇到了 NullPointerException !

        【讨论】:

          【解决方案6】:
          protected virtual OcrBarcodeSymbologies GetSupportedBarcodeSymbologies() { }
          

          【讨论】:

            【解决方案7】:

            优秀的GTK+ 库因此“受苦”。它有非常整洁的函数命名,但由于主要 API 是 C,而 GTK+ 非常面向对象,它必须在函数名中编码类名。类 X 的构造函数是 X_new(),依此类推。这会导致诸如gtk_recent_chooser_widget_new_for_manager() 之类的美女。

            我确信其中还有更长的函数名称,这只是我很快找到的一个。 :)

            【讨论】:

              【解决方案8】:

              只要没有明显更简洁的名称并且命名合理,长变量名就不会打扰我。例如,在 Kamaelia 中,有一个名为 this 的类类型:

              threadedadaptivecommscomponent
              

              【讨论】:

                【解决方案9】:

                我见过的命名约定,比流利的流行早几年

                public DataSet SelectAllUsersWhereDobIsGreaterThan1980AndIsMaleOrderByNameAndAge()
                

                【讨论】:

                  【解决方案10】:

                  查看 Apple 的文档。他们是那方面的国王。非常具有描述性,但有时长达数英里。 NSString 类的几个例子:

                  NSString.completePathInfoString:caseSensitive:matchesToArray:filterType
                  NSString.stringByAddingPercentEscapesUsingEncoding
                  

                  我在微软世界的最爱:SetProcessWorkingSetSize

                  【讨论】:

                    【解决方案11】:
                    bool instrumentAreaDockWidgetVisibilityFollowsChildPresence;
                    

                    【讨论】:

                      【解决方案12】:

                      在苹果邮件应用中:

                      _synchronouslyTellServicesToRegisterAndSync()
                      

                      在我写的一个应用中:

                      User.CanViewRestrictedItems()
                      

                      我是一个同事写的应用:

                      Profile.DisplayMyDraftOrPendingProfile()
                      Profile.DisplayMyApprovedProfile()
                      

                      刚刚开始。

                      新:

                      外键约束名:

                      constraint ReportCompanyReportTemplateIDVersionID_ReportTemplateVersionReportTemplateIDVersionIDFk foreign key (ReportTemplateID, VersionID) references customer_ReportTemplateVersion (ReportTemplateID, VersionID)
                      

                      【讨论】:

                        【解决方案13】:

                        获取将被检索的js 项目以及页面是否应显示推荐。

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2018-04-01
                          相关资源
                          最近更新 更多