回答:
エンジンは、いわば「ボンネットの下」にあるものです。エンドユーザーには表示されないか、少なくともまれにしか表示されません。たとえば、グラフィックエンジンはすべてのレンダリング計算を実行しますが、それらの変更をモデル化する実際の環境に渡します。入力:数学。出力:きれいな色。また、エンジンには、より高レベルのインターフェイスとは非常に異なる作業変数がある場合があります。たとえば、前の例では、生の数値データを使用して、何かが影なのかテクスチャなのかを気にせずにグラフィックスを操作し、そのすべてがそのエンジンによって実行される方程式と行列演算に抽象化されます。エンジンは特定のシステムの「カーネル」であると考え、残りは「シェル」に似ています。
実世界のCS101を例にとると、エンジンは自動車のエンジンのようなものです。空気とガスの2つの入力が必要です。次に、それらをチャンバーに送り、電気を使用して世界最小のアーク溶接を生成します。その後、ものが爆発します。これにより、排気とピストンを駆動する圧力波の2つの出力が生成されます。残りは、さまざまな駆動シャフトなどによってホイールの動きに変換されます。したがって、エンジンはエンジンであり、車自体がシェルです。車のエンジンを別の目的に使用することもできます。たとえば、電気用の発電機を運転したり、穀物を粉砕するための工場を運転したりできます。エンジンにコーティングなどがある場合、エタノールやバイオディーゼルなどを処理するために異なる入力を使用できます。
要約すると、エンジンは通常、単独では見られないソフトウェアです。それはそのソフトウェアの原動力として機能しますが、通常、外部の世界との相互作用は非常にわずかです。複数のエンジンが連携して補完的な出力を生成したり、必要に応じてパイプライン化されたりします。エンジンは、審美的な意味でのユーザーエクスペリエンスに直接関連することは行いませんが、データフローを動機付け、アプリケーションのパフォーマンスを向上させるのに十分な応答性を提供することで、これらのエクスペリエンスをさらに向上させます。
名詞/ ˈenjən /
エンジン、複数
動力を運動に変換する可動部品を備えた機械
特定のプロセスのエージェントまたは手段であるもの
#1は、engine
ソフトウェアの意味で、何かを引き起こすという意味に相当します。3Dグラフィックエンジン。入力を受け取り、画面上の動きに変換します。正規表現エンジンは入力を受け取り、それらを別の出力に変換します。
#2は、変化のエンジンである文を使用するようなものです。このセマンティックは、ソフトウェアにも適用できます。
ソフトウェアengines
は、受動的に物事を行うフレームワークやライブラリ以上のものです。ソフトウェアエンジンは、入力に基づいて独自に動作します。受動的ではなく、通常、独自の意思でrun loop
処理を行う独自のエンジンを備えています。
私の意見では、これまでの最も近い答えは、マーケティングのことだと言ったものでした。
この文脈での単語の使用がどこから来たのか考えてみましょう。
確かに車やジェットエンジンは、入力を受け取り、出力を生成するため、そのように呼ばれません。それなら、機能するだけでなく、人生の多くのものがエンジンになります。
私の意見では、偶然ではありませんが、牛が最も確実にエンジンではなく、技術的にも、健全な話し方でもないことは間違いありません。
エンジンはさまざまな種類のエネルギーを使用し、それを運動に変換します(つまり、特殊な種類のエネルギー)。
なぜソフトウェアで使用するのですか?最も現実的な推測は、単にクールに聞こえるからだと思います。一部のプログラマーを「アーキテクツ」と呼ぶのはなぜですか?同じ理由、あなたが私に尋ねる場合。
もう1つの理由は、プログラマが一般的にメタファーを使用してソフトウェアの一部を説明することを好み、そのため、彼らが把握しやすくなる可能性があることです(当然、そうではないことが多いため)
私の考えでは、アプリケーションドメインがメタファーでいっぱいになるような方法でメタファーを悪用するのは悪い習慣です。クライアントや、プログラミングを知らない、または気にしない人と話すときに役立つと思います。それ以外は、単純なフローチャートと図が役立っています。
エンジンは、何らかの入力を受け取り、その入力を処理し、出力として何かを配信するものです。この定義により、CMSエンジンは、入力に基づいてその場でHTTP応答を生成する部分です。データベースエンジンは、クエリを受け取り、実行計画を作成して実行し、結果を返します。
技術的に言えば、牛でさえ一種のエンジンです。草を取り、処理し、牛乳を届けます。
エンジンという用語は機械工学でより多く使用されていることを忘れないでください。まったく同じことを行います。
エンジンの別の側面は、システムの中核です。たとえば、データベースエンジンはすべてのRDMSの中核です。ただし、そのエンジンに接続して、入力を受け取って結果を返すIDEは、エンジンとは見なされません。
私見、エンジンは、サブシステム、モジュール、またはライブラリの単なる別の言葉です。IE-特定の目的のためにまとまって設計された1つ以上のコンポーネント。
私の仕事では、この用語は「コードファイル内にXEngine.cs
複数のクラスがあり、そのすべてに静的メソッドしか含まれていない形式の単一のコードファイル」を意味するようです。私はそれを見るたびに少し内側に投げます。VB6モジュールの場合もあります。
私は個人的にこの用語を使用しません。ほとんどの場合、あいまいで意味がありません(自動車やレーシングゲームをシミュレートするソフトウェアを書いているのでなければ)。それは昔の「マネージャー」クラスのようなものです-名前は「これは多くのことをします」以外に何も告げず、通常それはの重大な違反であることを意味しSOLID
ます。