我想知道什么是顶级功能,我该如何识别它?我的语言是Javascript。到目前为止,这是我所知道的唯一语言,请为我提供使用JavaScript的示例。
顺便说一句,上面的引用来自Joel Spolsky。查看他的博客并阅读如何成为项目经理。由于
答案 0 :(得分:17)
越接近人类语言,功能就越高。
越接近机器语言,功能越低。
我只是在努力,但这里有一些例子:
高级功能:
Car.Start()
Car.MoveTo(Home)
低级别功能:
Car.Insert(Key);
if (Car.IsKeyInserted() == False)
return False;
Car.StartEngine();
Car.ApplyAccelerator(0.1f);
Car.ChangeGear();
Car.RotateWheel(-25);
答案 1 :(得分:2)
当我们在编程中谈论“高级”和“低级”时,它通常指的是抽象级别。高级函数是抽象细节的函数,这里是高级抽象的一个例子:
$('div#foo p').show('fast');
该片段来自jQuery JavaScript框架,它演示了一项非常复杂的任务,但可以让您轻松启动它。较低级别的抽象将是这样的:
$('div#foo p').animate({height: 'show', width: 'show', opacity: 1}, 200);
它仍然是jQuery但是涉及更多细节,它是更低级别。当然,你可以更低:
animate(document.getElementById('foo').getElementsByTagName('p'), {
height: 300, width: 600, opacity: 1, alphaFilter: 1
}, 200);
(使用自定义构建的animate方法)
等。等。
最佳抽象水平总是在激烈争论中。过高可能导致abstraction leak但是变低可能效率低下并且浪费时间,特别是如果存在更高的抽象。
答案 2 :(得分:2)
顶级功能是描述在子或功能之外编写程序代码的术语。从声明内容到实际运行程序代码(如vbs / jscript)有各种级别。
通常不鼓励或不允许使用预期复杂的语言。例如,VB只允许const和声明和暗淡。 C#不允许任何顶级。
我们通常使用更高级别来描述语言的抽象。
在某些语言中,该术语将是顶级方法。
我记得很久以前读过这篇文章。
http://blogs.msdn.com/b/ericlippert/archive/2009/06/22/why-doesn-t-c-implement-top-level-methods.aspx链接回此网站Why C# is not allowing non-member functions like C++
答案 3 :(得分:1)
这指的是函数所在的调用堆栈的距离。程序启动时,操作系统调用main()或top level,其中包括对下一个较低级别函数的调用。每个人又调用其他函数来执行更多基本任务,最终调用操作系统中的函数,例如打开文件。低级函数是程序中的函数,它们不调用您编写的任何其他函数(但使用操作系统或框架来计算其结果等)。
答案 4 :(得分:0)
简单的问题可以用几句话来回答,但潜在的主题涵盖整本书。然而,与Javascript无关,只是说Javascript可用于创建函数。
Valdez先生是对的,但这完全取决于你的职能定义的抽象程度。
还有其他软件设计和架构方法可供选择
This one has a section that answer your question quite nicely
答案 5 :(得分:-1)
实际上,只有高 er 或低 er 级功能。
function higherlevel(){
foo
.init() // aha, this is daisychained
.loadFromDatabase() // gotcha
.render() // makes sense
.logProgress() // right.
}
function render(){ // lowerlevel
// if
// while
// for
// throw/catch
// _.get(foo,'bar.flop')
return foo
}
可以很容易地标识为JS中的
菊花链函数作为较高/较低级别的函数。
可以将私有,受保护的类方法和/或下划线功能标识为较低级别的功能。
可以将存在于全局范围内的功能标识为顶级功能。它们可以是较低级别的( window.querySelector(..)例如在DOM上操作),也可以是较高级别的( window.close())