一般可重用的IP没有人使用

 如果您在功能验证中寻找与“保证”这个词的重要性相匹配的两个单词,则只需查看“可重用”和“通用”即可。这些是我们为了帮助我们的同事(包括管理人员)在晚上睡好觉的两个字。 

 对我来说,调用你自己的通用或可重用代码就好比给自己一个昵称。这是我从哪里来的一个重大失误。朋友决定你的昵称,而不是你。同样,同事们决定你的代码是通用的还是可重用的,而不是你。如果您坚持要将代码调用为可重用或通用,我们需要一些基本规则来帮助人们了解何时可以接受。对我来说,代码必须达到几个标准才能被声明为可重用... 

  •  您的代码已被使用一次 
  •  您的代码已被使用两次或更多次 
  •  您的代码已被除你之外的其他人使用 
  •  那个人不需要你为他们使用你的代码

 好的......所以第一个子弹比要求更重要,我不能相信这是我们甚至需要指出的,但不幸的是这是我们开始的地方。在任何人使用它之前调用代码都是可重用的,甚至连你都不会把马车放在马上。之前的方式!但是我猜想这是人们调用可重用代码的第二种最典型的情况; 他们开始着手解决许多同事共同面临的问题,相应地编写代码,等待群众涌向它,群众不会涌向它,代码在存储库中生锈,最终被删除以收回存储空间。没有'使用',就不可能'重用'。  

 从最典型的是第二个。说'重复使用'要求代码至少被“重用”一次似乎很明显,不是吗?然而,你有多少次看到这样的情况:他/她认为他/她认为非常酷的代码,用它来解决他/她的问题,期望别人也会发现它足够酷以解决他们的问题,好友称他/她代码可重复使用,随便提示其他人应该使用它,更强有力地暗示其他人应该使用它,特别建议其他人应该使用它,没有其他人使用它,好友也不会再使用它。   

 我们称之为重用(即装即用)的场景; 认为一次成功并标注它足以成为可重用的资格。但是,可重复使用的字绝对最少意味着代码已被使用,然后再次使用。使用它只是'使用'。  

 所以也许你认为使用两次就足以声称代码可重用。从技术上讲,我想这可能是真的,但对我来说,这个阈值设置的太低了。如果你胆敢告诉别人你的代码是可重用的,那应该意味着除你以外的其他人实际使用过它。如果这没有发生,你的代码是不可重用的。 

 最后但并非最不重要的是重用(即装即用)场景的变体;我们称之为替代重用场景。在替代重用场景中,不要接受没有人想要重用您的代码,或者他们无法弄清楚如何重用您的代码,您可以帮他们重用它。你做所有的集成和设置工作。你也做了很多调试和/或结果解释。他们可能会付出一点努力,并且可能会从中获得一些好处(如果有的话),但不要将其误认为重用。模级测试平台往往适合这个账单。可悲的是,一些第三方IP也有资格。 

 就像我们经常滥用“重用”这个词以及所有它的衍生物一样,我认为我们用通用这个词更糟。在我看来,通用代码必须符合所有重用标准。以及: 

  •  你的代码完成了它没有专门设计完成的目标 
  •  你的代码实际上做了一些事情,但不是全部  

 第一点的一个例子是,正确使用通用这个单词可能意味着记分板检查什么样的字符串也适合于不加修改地检查字符串和丁字符串。如果它仅仅对于检查什么样的响应非常好,它不是通用的。 

 第二个标准与通用频谱的两端有关。一方面,代码是非常通用的,它没有任何用处。这里的一个好例子是一个组件基类,除了作为基类之外,它没有提供显着的行为或值。 (全面披露:当我首次介绍HVL和OOP时,我曾经将验证代码通用化到各个组件提供零值的点,幸运的是,我已经养成了这种习惯)。另一方面,如果代码通过配置和分支解决每个可预见的问题。此代码也不是通用的。 

 如果您已经编写了涵盖以上所有内容的代码,恭喜!可以肯定地说,你拥有的是通用的和/或可重用的代码。但是,如果你正在寻找最终测试,可重用应该是找到一位在您不知情的情况下成功使用你的代码的同事的惊喜。这是通用和/或可重用代码的真正衡量标准。这代表它自己的代码,可以为那些真正想要在没有额外努力或干预的情况下使用它的同事实现目标。顺便说一下,当我的重点是质量而不是重用时,这种情况对我来说最为常见。质量令人惊讶地可重复使用! 

 在功能性验证俱乐部中,我们需要更仔细地开始使用“通用”和“重用”,在他们变得毫无意义之前。或者我们让他们变得比现在更有意义。如果我们只是继续将这种可重复使用的方法放在盒子上,那么我们所做的就是,将提供给我们的同事一般的可重用垃圾。 

猜你喜欢

转载自blog.csdn.net/zhajio/article/details/80577479