Le descripteur 'Engine' est souvent utilisé: moteur graphique, moteur RegEx, moteur AI, etc. Mais qu'est-ce qui fait qu'un logiciel est un moteur? Conception, entrée / sortie, objectif, taille?
design
terminology
Spacebob
la source
la source
Réponses:
Un moteur serait quelque chose qui est "sous le capot", pour ainsi dire. Ce n'est pas visible, ou du moins très rarement, pour l'utilisateur final. Un moteur graphique, par exemple, pilote tous les calculs de rendu mais transmet ces modifications à l'environnement réel à modéliser. Entrée: math. Sortie: jolies couleurs. Un moteur peut également avoir des variables de travail très différentes de celles d’une interface de niveau supérieur. Par exemple, dans l'exemple précédent, il utilise des données numériques brutes pour manipuler des graphiques sans se soucier de savoir s'il s'agit d'une ombre ou d'une texture. Tout cela est résumé dans les équations et les opérations matricielles à exécuter par ce moteur. Pensez au moteur comme au "noyau" d'un système donné, le reste ressemblant davantage au "shell".
Pour utiliser un monde réel, par analogie avec CS101, un moteur ressemble à un moteur de voiture. Il faut deux entrées, air et gaz. Il les fait ensuite passer dans une chambre, après quoi l’électricité est utilisée pour générer la plus petite utilisation au monde de la soudure à l’arc. Le truc explose ensuite. Cela produit deux sorties, un échappement et une onde de pression qui entraîne un piston. Le reste est transféré en mouvement de roue par les différents arbres de transmission et autres. Donc, le moteur est le moteur et la voiture elle-même est la coque. Vous pouvez utiliser un moteur de voiture à des fins différentes, par exemple conduire une génératrice à l'électricité ou une minoterie pour moudre le grain. Vous pouvez utiliser différentes entrées si le moteur a les revêtements et autres pour traiter des choses comme l’éthanol ou le biodiesel.
Pour résumer, un moteur est un logiciel qui ne se trouve généralement pas isolément. Il agit comme une force motrice pour ce logiciel, mais n'interagit généralement que très peu, voire pas du tout, avec le monde extérieur. Plusieurs moteurs peuvent fonctionner ensemble pour produire des sorties complémentaires ou être combinés au besoin. Un moteur ne fait pas directement les choses liées à l'expérience utilisateur dans un sens esthétique, mais motive néanmoins ces expériences en motivant le flux de données et en étant suffisamment réactif pour permettre de bonnes performances applicatives.
la source
La définition de moteur est
nom / ˈenjən /
engines, pluriel
Une machine avec des pièces mobiles qui convertit la puissance en mouvement
Une chose qui est l'agent ou l'instrument d'un processus particulier
Le n ° 1 est l'équivalent sémantique
engine
du logiciel dans le sens où il provoque quelque chose. Le moteur graphique 3D prend les entrées et les convertit en mouvement à l'écran. Un moteur de regex prend les entrées et les convertit en une sortie différente.# 2, c'est comme utiliser la phrase comme moteur de changement . Cette sémantique peut également être appliquée aux logiciels.
Les logiciels
engines
sont plus que des frameworks et des bibliothèques qui font des choses passivement. Les moteurs logiciels agissent seuls en fonction des entrées, ils ne sont pas passifs et ont généralement le leurrun loop
pour effectuer le traitement de leur propre chef.la source
La réponse la plus proche jusqu'à présent, à mon avis, était celle qui disait que c'était une chose de marketing.
Essayons de penser d'où vient l'utilisation du mot dans ce contexte.
Certes, les moteurs de voitures ou de réacteurs ne sont pas appelés ainsi, car ils prennent des entrées et produisent des sorties. Si tel était le cas, alors non seulement les fonctions, mais beaucoup de choses dans la vie seraient des moteurs.
À mon avis, ce n'est pas un hasard si une vache n'est absolument pas un moteur, ni techniquement, ni de façon raisonnable.
Les moteurs utilisent différents types d'énergie et les transforment en mouvement (c.-à-d. Un type d'énergie spécialisé).
Pourquoi l'utilisons-nous dans les logiciels? Je dirais que la supposition la plus réaliste est que ça sonne simplement bien. Pourquoi appelons-nous des architectes de programmeurs? Même raison, si vous me demandez.
Une autre raison pourrait être que les programmeurs préfèrent généralement utiliser des métaphores pour décrire certaines parties de leurs logiciels, ce qui les rend plus faciles à comprendre (car ce n’est bien souvent pas le cas).
Mon intuition est que c’est une mauvaise pratique d’abuser des métaphores de telle sorte que votre domaine d’application en soit rempli. Je pense que cela pourrait être utile pour parler à des clients ou à des personnes qui ne connaissent pas la programmation ou ne se soucient pas de la En dehors de cela, de simples organigrammes et diagrammes font le travail pour moi.
la source
Un moteur est tout ce qui prend une entrée, traite cette entrée et fournit quelque chose en sortie . Selon cette définition, un moteur CMS est la partie qui génère la réponse HTTP à la volée en fonction de l'entrée. Un moteur de base de données est ce qui prend la requête, dessine un plan d'exécution, l'exécute et renvoie le résultat.
Techniquement, même une vache est une sorte de moteur. Il prend de l'herbe, la traite et fournit du lait.
N'oubliez pas que le terme moteur est plus utilisé en génie mécanique et qu'il fait exactement la même chose.
Un autre aspect d’un moteur est d’être le noyau d’un système. Par exemple, le moteur de base de données est le noyau de tout SGDD. Cependant, les IDE pour se connecter à ce moteur, tout en prenant une entrée et en renvoyant un résultat, ne sont pas considérés comme un moteur.
la source
À mon humble avis, un moteur n'est qu'un autre mot pour un sous-système, un module ou une bibliothèque. IE - un ou plusieurs composants conçus de manière cohésive dans un but spécifique.
la source
Un moteur est essentiellement un logiciel qui peut être étendu pour créer quelque chose.
Par exemple, dans les jeux, vous entendez beaucoup parler du moteur de jeu «quelque chose». Cela signifie qu'un logiciel particulier a été modifié et étendu pour créer un jeu totalement unique.
la source
Dans mon travail, le terme semble signifier "Un fichier de code unique dans le format
XEngine.cs
avec plusieurs classes à l'intérieur de ce fichier de code, qui ne contiennent que des méthodes statiques". Je vomis un peu à l'intérieur chaque fois que je le regarde; pourrait aussi bien être un module VB6.Personnellement, je n’utiliserais pas le terme, il est ambigu et dénué de sens (à moins que vous n’écriviez un logiciel simulant une automobile ou peut-être un jeu de course) dans la plupart des cas; c'est comme les anciennes classes "Manager" de jadis - le nom ne vous dit rien d'autre que "Cela fait beaucoup de choses" et signifie généralement que c'est une violation flagrante de
SOLID
.la source