【问题标题】:Need help naming a class which represents a value and its linear variation需要帮助命名代表值及其线性变化的类
【发布时间】:2009-06-27 09:55:50
【问题描述】:

在进行一些重构时,我发现我经常使用一对或浮点数来表示初始值以及该值随时间线性变化的程度。我想创建一个结构来保存这两个字段,但我找不到合适的名称。

它应该看起来像这样:

struct XXX
{
    float Value;
    float Slope; // or Delta? or Variation? 
}

任何建议将不胜感激。

【问题讨论】:

  • 好问题,我经常发现命名是最重要的。你可能会卡在一个问题上,然后考虑命名,当你正确命名时,问题就消失了!
  • 同意。 IMO,通常正确命名必须是程序员最困难的任务之一。找到正确的名称意味着充分了解问题和解决方案。

标签: naming-conventions naming


【解决方案1】:

由于您有一个初始值,以及一个指示“某物”如何演变的值,因此您可以使用“线性函数”之类的东西。

我还会添加必要的成员函数:

struct LinearFunction {
    float constant;
    float slope;
    float increment( float delta ) const { return constant + delta*slope; }
    void add( const LinearFunction& other ) { constant += other.constant; slope += other.slope; }
    LinearFunction invert() const { 
        LinearFunction inv = { -constant/slope, 1./slope; };
        return inv;
    }
};

还是我很渴望这里?

【讨论】:

  • 很抱歉这个愚蠢的问题,但是,如果它只是代表函数将使用的数据,为什么称它为“函数”?
  • 经过一番思考后,我认为这是满足我需求的完美解决方案,谢谢。
【解决方案2】:

我想我更喜欢这种命名方式:

struct ValueDeltaDuplet
{
    float Value;
    float Delta;    
}

【讨论】:

    【解决方案3】:

    初值+恒斜率:这不是仿射函数吗?

    【讨论】:

      【解决方案4】:

      对我来说就像一个“秤”......

      struct ValueScale
      {
          float Value;
          float Slope;
      }
      

      或许

      struct ScalableValue
      {
          float Value;
          float Slope;
      }
      

      【讨论】:

        【解决方案5】:

        就像Arithmetic progression(或算术序列)

        struct sequence_num_t {
            float value;
            float delta;
        };
        

        struct SequencePoint
        {
           float Value;
           float Delta;
        };
        

        【讨论】:

        • +1 我喜欢后面的数学概念的链接。我只需要一个“酷”且简单的名字:)
        • 好的 :) 第二个名字呢?
        • 好吧,我不希望此类的客户假定它是一个点或一个序列。我希望它有一个更抽象的名称(但不像 FloatPair 那样松散)
        【解决方案6】:
        struct ValueSlopePair
        {
            float Value;
            float Slope;    
        }
        

        【讨论】:

          【解决方案7】:
          struct FloatPair
          {
              float Value;
              float Slope;    
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-09-11
            • 1970-01-01
            • 2011-08-13
            • 2015-11-20
            • 2013-02-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多