是否有一个术语供未实现的代码使用,供他人填写?


91

有时,在编程工作中,会生成样板,在初级程序员要执行的任务周围放置导轨,等等,碰巧会给程序员显示未实现的代码,并告诉他们“填空”。例如,可能会编译但失败的单元测试,或带有空方法的类声明。

这种做法有一个通用术语吗?


不完全是您的要求,而是相关的。如果还存在测试脚本,这些脚本显示了代码的预期功能,则称为测试驱动开发。
AJFaraday'3

32
对于投票决定关闭的人:当然,“命名这个东西”可能不是一个特别有趣的问题。但是,此问题确实有一个客观答案,该答案并非主要基于观点。作为证明,我在下面提出我的答案。

3
我会说“糟糕的编码实践”。
欣快的


3
如果您正在谈论错误处理,那么“为读者运动”似乎是教科书中的方法。
Phil Lello

Answers:


177

您指的是存根骨架

存根

这通常是一个主体为空的方法或函数,只返回一个伪值,以便代码进行编译。

骨架

这是一种已实现高级算法的方法,但是各个部分未实现。它们可能是空的代码块,也可能是最终将执行子任务的引用存根方法(请参见上文)。对于那些可能会为较大的设计工作而苦苦挣扎的初级程序员来说,这是一种表达软件设计的好方法,或者是在花太多时间在低级细节上之前确保您正确的算法。


使用这些代码元素的实践称为存根创建代码框架


3
尽管我更喜欢您的术语,但我认为Ruby on Rails中的“脚手架”一词是相同的概念。
2013年

我还认为存根是正确的选择,但不确定,因为我在工作中受到别人的排斥。谢谢。
布兰登·阿诺德

如果在学术背景下完成,那是一个“存根”。在专业/商业背景下完成的,这就是“技术债务”。
aroth

10
@aroth如果代码不起作用,这不是技术债务-必须执行。技术债务意味着编写不良的代码最终会在生产环境中使用,这意味着需要付出巨大的努力才能正确重构。存根在理想情况下将具有失败的测试用例,因此必须在放宽生产之前对其进行实施和测试。

2
@BrandonArnold:与您的大学交流时,您应该使用他们能理解的词语。除非你是老板。
Stig Hemmer'3

42

我已经看到使用了“ 存根 ” 一词。

例如,我相信Eclipse会自动插入一个注释

String getName() {
    // TODO: Auto-generated method stub
    return null;
}

进入臭名昭著的自动生成的存根。

还要注意在单元测试中术语“存根”的使用。


2
我认为“ // TODO:自动生成的方法存根”。
immibis

知道这一点绝对有用。。。
布兰登·阿诺德

17

在Visual Studio中,编写代码时,Intellisense将为您提供“生成新方法存根”选项。当您选择此选项时,Visual Studio将完全按照您的描述生成代码存根/骨架。

Microsoft将其称为存根,因此我也将其称为“存根”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.