Дескриптор «Engine» часто используется: графический движок, движок RegEx, AI-движок и т. Д. Но что на самом деле делает программный продукт движком? Дизайн, ввод / вывод, цель, размер?
Дескриптор «Engine» часто используется: графический движок, движок RegEx, AI-движок и т. Д. Но что на самом деле делает программный продукт движком? Дизайн, ввод / вывод, цель, размер?
Ответы:
Двигатель будет, так сказать, «под капотом». Он не виден или, по крайней мере, очень редко виден конечному пользователю. Например, графический движок управляет всеми вычислениями рендеринга, но передает эти изменения в реальную среду для моделирования. Вход: математика. Вывод: красивые цвета. Движок также может иметь очень разные рабочие переменные, чем интерфейс более высокого уровня. Например, в предыдущем примере он использует необработанные числовые данные для манипулирования графикой, не беспокоясь о том, является ли что-то тенью или текстурой, все это абстрагировано в уравнения и матричные операции, которые будут выполняться этим механизмом. Думайте о Двигателе как о «Ядре» данной системы, в то время как остальные будут больше похожи на «Оболочку».
В реальном мире, по аналогии с CS101, двигатель похож на автомобильный двигатель. Требуется два входа, воздух и газ. Затем он передает их в камеру, после чего электричество используется для производства наименьшего в мире использования дуговой сварки. Материал тогда взрывается. Это производит два выхода, выхлоп и волну давления, которая приводит в движение поршень. Остальное передается в движение колеса различными приводными валами и тому подобным. Таким образом, двигатель - это двигатель, а сам автомобиль - оболочка. Вы можете использовать автомобильный двигатель для другой цели, например, для управления генератором электричества или мельницей для измельчения зерна. Вы можете использовать разные входные данные, если у двигателя есть покрытия и тому подобное для обработки таких вещей, как этанол или биодизель.
Подводя итог, можно сказать, что Engine - это часть программного обеспечения, которая обычно не находится в изоляции. Он действует как движущая сила для этой части программного обеспечения, но обычно очень мало взаимодействует, если вообще взаимодействует с внешним миром. Несколько двигателей могут работать вместе для получения дополнительных выходных данных или могут передаваться вместе по мере необходимости. Движок не делает вещи, связанные с пользовательским интерфейсом, в эстетическом смысле напрямую, но управляет этим опытом тем не менее, мотивируя поток данных и будучи достаточно отзывчивым, чтобы обеспечить хорошую производительность приложения.
Определение двигателя является
существительное / ˈenjən /
двигателей, множественное число
Машина с движущимися частями, которая преобразует энергию в движение
Вещь, которая является агентом или инструментом определенного процесса
# 1 - это семантический эквивалент engine
в том смысле, что он заставляет что-то происходить. 3D Graphics Engine, принимает входные данные и преобразует их в движение на экране. Движок регулярных выражений принимает входные данные и преобразует их в другой выход.
# 2 похоже на использование предложения как двигателя изменений . Эта семантика может быть применена и к программному обеспечению.
Программное обеспечение engines
- это больше, чем фреймворки и библиотеки, которые пассивно работают. Программные механизмы действуют самостоятельно на основе входных данных, они не пассивны и, как правило, имеют свои собственные функции run loop
для обработки по собственному желанию.
На мой взгляд, самым близким ответом был тот, который сказал, что это маркетинговая вещь.
Давайте попробуем подумать, откуда появилось слово в этом контексте.
Конечно, автомобильные или реактивные двигатели не называются так, потому что они принимают и производят некоторую продукцию. Если бы это было так, то не только функции, но и многие вещи в жизни были бы двигателями.
Не случайно, на мой взгляд, корова, безусловно, не является двигателем, если говорить технически, и ни в коем случае не в здравом уме.
Двигатели используют различные виды энергии и превращают ее в движение (т.е. специализированный тип энергии).
Почему мы используем это в программном обеспечении? Я бы сказал, что самое реалистичное предположение, потому что это звучит просто круто. Почему мы называем некоторых программистов «Архитекторами»? По той же причине, если вы спросите меня.
Другая причина может заключаться в том, что программисты обычно любят использовать метафоры для описания частей своего программного обеспечения, чтобы их было легче понять (потому что, естественно, их часто нет).
Я догадываюсь, что неправильно использовать метафоры так, чтобы домен вашего приложения был полон ими. Я думаю, что это может быть полезно при общении с клиентами или людьми, которые не знают или не заботятся о программировании. Помимо этого, простые блок-схемы и диаграммы делают работу за меня.
Движок - это все, что требует некоторого ввода, обрабатывает этот ввод и доставляет что-то в качестве вывода . По этому определению механизм CMS - это часть, которая генерирует HTTP-ответ на лету на основе входных данных. Ядро базы данных - это то, что принимает запрос, составляет план выполнения, выполняет его и возвращает результат.
Технически говоря, даже корова является своего рода двигателем. Он берет траву, обрабатывает ее и доставляет молоко.
Не забывайте, что термин «двигатель» больше используется в машиностроении, и он делает то же самое.
Другой аспект двигателя - это ядро системы. Например, ядро базы данных является ядром любой RDMS. Однако IDE для подключения к этому механизму, принимая входные данные и возвращая результат, не считается механизмом.
ИМХО, движок - это просто другое слово для подсистемы, модуля или библиотеки. IE - один или несколько компонентов, сплоченно спроектированных для определенной цели.
В моей работе этот термин, по-видимому, означает «один файл кода в формате XEngine.cs
с несколькими классами внутри этого файла кода, каждый из которых содержит только статические методы». Я бросаю немного внутрь каждый раз, когда смотрю на это; может также быть модулем VB6.
Лично я бы не использовал этот термин, он неоднозначен и бессмыслен (если, я полагаю, вы в большинстве случаев не пишете программное обеспечение, имитирующее автомобиль или гоночную игру); это похоже на старые классы «Менеджера» прошлого - название не говорит вам ничего, кроме «Это делает много вещей», и обычно это означает, что это грубое нарушение SOLID
.