描述符' engine‘到处都是:图形引擎、RegEx引擎、AI引擎等等,但是实际上是什么使一个软件成为一个引擎呢?设计,输入/输出,目的,大小?
发布于 2011-09-15 19:52:13
可以说,发动机应该是“引擎盖下”的东西。对于最终用户来说,它是不可见的,或者至少很少是可见的。例如,图形引擎驱动所有呈现计算,但将这些更改传递给要建模的实际环境。输入:数学。输出:漂亮的颜色。引擎的工作变量也可能与更高级别的接口有很大的不同。例如,在前面的示例中,它使用原始的数字数据来操作图形,而不必担心某物是阴影还是纹理,所有这些都被抽象到由该引擎执行的方程和矩阵操作中。将引擎看作给定系统的“内核”,而其余的则更像"Shell“。
用一个真实的世界,CS101类比,一个引擎就像一个汽车引擎。它需要两个输入,空气和气体。然后,它把它们传送到一个小室里,由此产生世界上最小规模的弧焊。东西就会爆炸。这产生两个输出,排气和压力波驱动活塞。其余部分由各种传动轴等转换成车轮运动。所以引擎就是引擎,汽车本身就是外壳。你可以用汽车发动机做不同的用途,比如驱动发电机发电,或者用磨机磨谷物。如果发动机有涂层,你可以使用不同的输入来处理乙醇或生物柴油之类的东西。
总之,引擎是一款通常不是孤立的软件。它作为软件的动力,但通常很少与外部世界互动。几个发动机可以一起工作,以产生互补的输出,或可能是流水线在一起,视需要。引擎在美学意义上并不直接做与用户体验相关的事情,但是通过激发数据流并具有足够的响应性来驱动这些体验,从而允许良好的应用程序性能。
发布于 2011-09-15 20:56:11
发动机的定义是
名词 /ˈenjən/
发动机,复数的
#1是engine
在软件意义上的语义等价物,因为它会导致某些事情发生。3D图形引擎,接受输入并将其转换为屏幕上的运动。regex引擎接收输入并将它们转换为不同的输出。
#2就像用句子作为改变的引擎。这种语义也可以应用到软件中。
软件engines
不仅仅是被动地做事情的框架和库。软件引擎在输入的基础上独立工作,它们不是被动的,通常有自己的run loop
根据自己的意愿进行处理。
发布于 2011-09-15 21:45:24
在我看来,到目前为止,最接近的答案是说这是营销活动。
让我们试想一下这个词在这个上下文中的用法是从何而来的。
当然,汽车或喷气式发动机不是这样称呼的,因为它们需要投入并产生一些输出。如果是这样的话,那么不仅仅是功能,而是生活中的许多东西都是引擎。
在我看来,这不是巧合,牛绝对不是一个引擎,技术上来说,也不是任何理智的说法。
发动机使用各种类型的能源,并将其转化为运动(即一种特殊类型的能源)。
我们为什么要在软件中使用它?我想说最现实的猜测是因为这听起来很酷。为什么我们叫一些程序员为“建筑师”?如果你问我同样的理由。
另一个原因可能是程序员通常喜欢用隐喻来描述软件的各个部分,这样他们就更容易掌握了(因为他们通常不喜欢)。
我的预感是,如果你的应用程序域充满了隐喻,那么滥用隐喻是一种糟糕的做法。我认为,在与客户或那些不了解或不关心编程的人交谈时,它可能是有用的。除此之外,简单的流程图和图表为我做了工作。
https://softwareengineering.stackexchange.com/questions/108613
复制相似问题