首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是什么使一个软件成为一个引擎?

是什么使一个软件成为一个引擎?
EN

Software Engineering用户
提问于 2011-09-15 19:34:54
回答 7查看 9.1K关注 0票数 39

描述符' engine‘到处都是:图形引擎、RegEx引擎、AI引擎等等,但是实际上是什么使一个软件成为一个引擎呢?设计,输入/输出,目的,大小?

EN

回答 7

Software Engineering用户

回答已采纳

发布于 2011-09-15 19:52:13

可以说,发动机应该是“引擎盖下”的东西。对于最终用户来说,它是不可见的,或者至少很少是可见的。例如,图形引擎驱动所有呈现计算,但将这些更改传递给要建模的实际环境。输入:数学。输出:漂亮的颜色。引擎的工作变量也可能与更高级别的接口有很大的不同。例如,在前面的示例中,它使用原始的数字数据来操作图形,而不必担心某物是阴影还是纹理,所有这些都被抽象到由该引擎执行的方程和矩阵操作中。将引擎看作给定系统的“内核”,而其余的则更像"Shell“。

用一个真实的世界,CS101类比,一个引擎就像一个汽车引擎。它需要两个输入,空气和气体。然后,它把它们传送到一个小室里,由此产生世界上最小规模的弧焊。东西就会爆炸。这产生两个输出,排气和压力波驱动活塞。其余部分由各种传动轴等转换成车轮运动。所以引擎就是引擎,汽车本身就是外壳。你可以用汽车发动机做不同的用途,比如驱动发电机发电,或者用磨机磨谷物。如果发动机有涂层,你可以使用不同的输入来处理乙醇或生物柴油之类的东西。

总之,引擎是一款通常不是孤立的软件。它作为软件的动力,但通常很少与外部世界互动。几个发动机可以一起工作,以产生互补的输出,或可能是流水线在一起,视需要。引擎在美学意义上并不直接做与用户体验相关的事情,但是通过激发数据流并具有足够的响应性来驱动这些体验,从而允许良好的应用程序性能。

票数 33
EN

Software Engineering用户

发布于 2011-09-15 20:56:11

发动机的定义

名词 /ˈenjən/ 

发动机,复数的

  1. 一种具有运动部件的机器,它将动力转化为运动
  2. 某一过程的代理人或工具

#1是engine在软件意义上的语义等价物,因为它会导致某些事情发生。3D图形引擎,接受输入并将其转换为屏幕上的运动。regex引擎接收输入并将它们转换为不同的输出。

#2就像用句子作为改变的引擎。这种语义也可以应用到软件中。

软件engines不仅仅是被动地做事情的框架和库。软件引擎在输入的基础上独立工作,它们不是被动的,通常有自己的run loop根据自己的意愿进行处理。

票数 6
EN

Software Engineering用户

发布于 2011-09-15 21:45:24

在我看来,到目前为止,最接近的答案是说这是营销活动。

让我们试想一下这个词在这个上下文中的用法是从何而来的。

当然,汽车或喷气式发动机不是这样称呼的,因为它们需要投入并产生一些输出。如果是这样的话,那么不仅仅是功能,而是生活中的许多东西都是引擎。

在我看来,这不是巧合,牛绝对不是一个引擎,技术上来说,也不是任何理智的说法。

发动机使用各种类型的能源,并将其转化为运动(即一种特殊类型的能源)。

我们为什么要在软件中使用它?我想说最现实的猜测是因为这听起来很酷。为什么我们叫一些程序员为“建筑师”?如果你问我同样的理由。

另一个原因可能是程序员通常喜欢用隐喻来描述软件的各个部分,这样他们就更容易掌握了(因为他们通常不喜欢)。

我的预感是,如果你的应用程序域充满了隐喻,那么滥用隐喻是一种糟糕的做法。我认为,在与客户或那些不了解或不关心编程的人交谈时,它可能是有用的。除此之外,简单的流程图和图表为我做了工作。

票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/108613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档