Почему существуют обновления программного обеспечения? - PullRequest
0 голосов
/ 06 июня 2018

Я знаю, это может показаться сумасшедшим, но выслушайте меня ...

Скажем, у вас есть игра, и вы хотите обновить ее (добавить новые функции / изменить интерьер для сезонных тем / добавить LTM и т. Д.) Теперь,вместо того, чтобы редактировать код и затем ждать дни, пока ваш поставщик приложений (Google / Microsoft / Apple и т. д.) утвердит обновление и развернет изменения, почему бы и нет:

  1. Поместите весь свой кодв базу данных
  2. Удалить весь существующий код из файлов кодов
  3. Добавить код, который может запускать код из базы данных (считывает его и eval() s его)

Таким образом, вам не понадобятся обновления программного обеспечения, если вы не захотите изменить свой код, связанный с базой данных, и вы можете просто обновить свою базу данных, чтобы изменить то, что приложение делает, когда оно работает.

Мой вопрос: Почему это не было сделано?

Например:

Fortnite (настоящая игра) часто имеет LTM (режимы с ограниченным временем), которые доступны длянесколько недель, а затем удаляются.Как правило, обновления программного обеспечения составляют ~ 5 ГБ и занимают много времени, если ваша широкополосная сеть не работает быстро.Если код был извлечен из базы данных и затем выполнен, в этих обновлениях не было бы необходимости, и изменения могли бы быть мгновенными.

EDIT : (в ответ на закрытое голосование)

Я ищу факты и статистику для подкрепления причин, а не просто чистые мнения.Ответы типа «Я думаю, это было бы хорошо / плохо ...» не нужны (поэтому есть комментарии);ответы типа «Это было бы хорошо / плохо, так как этот факт показывает, что ...» намного лучше и желательнее.

Ответы [ 2 ]

0 голосов
/ 07 июня 2018
  1. Поместите весь ваш код в базу данных
  2. Удалите весь существующий код из файлов кода
  3. Добавьте код, который может запускать код из базы данных (читаетit in и eval () s it)

Мой вопрос: почему это не было сделано?

Именно так работает каждая игра.

Каждый раз, когда вы запускаете игру, исполняемый двоичный игровой движок (который вы описываете на шаге 3) уже читает остальную часть вашего кода (часто некоторый встроенный язык, такой как LUA) из «базы данных» (файловой системы) и «evals "(интерпретирует) его для запуска игры, а также ресурсы, такие как геометрия уровней, текстуры, звуки и музыка.

Вы говорите о введении слоя абстракции (реальной базы данных) между движком иего данные скрывают некоторые ваши активы, но база данных хранит свои данные в файловой системе , так что вы действительно ничего не получили, вы просто изменили способ кодирования данных в состоянии покоя и запросиливо время выполнения иВ обоих случаях вводите тонну накладных расходов.

С другой стороны, вы намеренно обманываете свой путь через процесс обзора приложения, и любые реальные технические проблемы, которые у вас возникнут,вопрос, потому что ваше приложение не будет разрешено в магазине приложений.Весь смысл процесса проверки приложения состоит в том, чтобы запретить пользователям отправлять непроверенный непроверенный код пользователям, и если ваша программа явно предназначена для обхода этого, ваше приложение будет отклонено.

Fortnite (настоящийигра) часто имеет LTM (режимы ограниченного времени), которые доступны в течение нескольких недель, а затем удаляются.Как правило, обновления программного обеспечения составляют ~ 5 ГБ и занимают много времени, если ваша широкополосная сеть не работает быстро.

Fotenite будет иметь небольшой двоичный исполняемый файл, который является игровым движком.Обновления этого двоичного файла будут составлять долю процента от этих 5 ГБ.Остальная часть будет представлять собой некоторый интерпретируемый / встроенный язык, описывающий уровни игры (также незначительную часть), а затем ресурсы, которые составляют остальную часть (геометрия, текстуры, звук, музыка).

Есликод был извлечен из базы данных и затем выполнен, эти обновления не понадобятся, и изменения могут быть мгновенными

Это не имеет смысла.Если вы переместите все 5 ГБ из файловой системы в базу данных, вам все равно придется перенести около 5 ГБ обновлений базы данных.5 ГБ данных в базе данных по-прежнему живут как 5 ГБ данных в файловой системе, просто вы больше не можете получить к ней доступ напрямую.Вы должны передавать примерно точно такой же объем данных , независимо от того, как вы его храните.

0 голосов
/ 06 июня 2018

В предложенном вами подходе есть несколько проблем.

  • размещение всего в базе данных приведет к увеличению размера дБ.Но это действительно сильно влияет.

  • Если весь код находится в БД, возможно ли декомпилировать ваше программное обеспечение и получить способ подключения к вашему коду?

  • слишком много накладных расходов производительности eval с.Предварительно скомпилированный код оптимизирован для соответствующей среды выполнения

  • несколько версий?Что делать, если вы хотите иметь несколько версий вашего программного обеспечения?

Основная причина, по которой существуют обновления, заключается в том, что они просты в обслуживании, гибки и позволяют разработчику предоставлять самый быстрый оптимизированный инструмент.

...