Как я управляю большими художественными активами соответственно в DVCS?

ASP.NET получает плохой рэп в мире "Web 2.0". MySpace имеет 50 миллионов + пользователи, и я назвал бы ту "высокую загрузку".

я думаю, что, как примерно любая другая веб-технология, возможность инструмента находится в руках разработчика, создающего для него. Если разработчики ASP.NET проигнорируют кэширование и выравнивание нагрузки, то приложение не обработает загрузку, и это не будет отказ ASP.NET.

48
задан Vadim Kotov 22 February 2018 в 10:11
поделиться

3 ответа

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

Распределенное, два репозитория

Активы в одном репо и код в другом.

Преимущества

  • В контексте веб-разработки вам не нужно клонировать гигантский репозиторий активов если вы не работаете напрямую с графическими файлами. Это возможно, если у вас есть веб-сервер, который обрабатывает ресурсы отдельно от динамического контента (PHP, ASP.NET, RoR и т. Д.) И синхронизируется с репозиторием ресурсов.

Недостатки

  • Инструменты DVCS не отслеживают других репозиториев, кроме их собственного, поэтому нет прямой поддержки BOM (Bill of Materials), т.е. нет четкого способа определить, когда оба репозитория синхронизированы. (Думаю, это то, для чего предназначен git-submodule или repo ).

    Пример: Художник добавляет новое изображение в один репозиторий, а программист добавляет функцию для использования изображения, однако, когда кому-то приходится откатывать версии, он вынужден каким-то образом отслеживать эти изменения самостоятельно.

  • Накладные расходы на репозиторий активов, даже если это влияет только на тех, кто его использует.

Распределенный, один репозиторий

Активы и код находятся в одном репозитории, но находятся в двух разных каталогах.

Преимущества

  • Управление версиями кода и ресурсов взаимосвязано, поэтому спецификация практично. Отслеживание с возвратом возможно без особых проблем.

Недостатки

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

Обе стратегии, перечисленные выше, по-прежнему имеют недостаток, заключающийся в больших накладных расходах, поскольку вам необходимо клонировать большое хранилище активов. Одним из решений этой проблемы является вариант первой стратегии, описанной выше, два репозитория; хранить код в распределенном репозитории VCS, а активы - в централизованном репозитории VCS (например, SVN, Alienbrain и т. д.).

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

Активы вне репозитория (или вместо этого Активы в CMS)

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

Преимущества

  • Не приводит к раздуванию репозитория кода (полезно, например, для git, поскольку он часто проверяет файлы)
  • Обеспечивает гибкую обработку активов, таких как развертывание ресурсов на серверах, предназначенных только для ресурсов
  • Если на CMS с API, ресурсы должны быть относительно простыми для обработки в коде

Недостатки

  • Нет поддержки BOM
  • Нет простой расширенной поддержки обратного отслеживания версий, это зависит от стратегии резервного копирования для ваших ресурсов
37
ответ дан 26 November 2019 в 19:04
поделиться

Thoughts, no experience: I would indeed seperate code from data. Assuming that there is a set of images that belongs to the application, I would just keep that on a centralized server. In the code, I would then arrange (through explicit coding) that the application can integrate both local or remote assets. People contributing can then put new images in their local store at first, integrating it with some kind of (explicit) upload procedure into the central store when required and approved.

3
ответ дан 26 November 2019 в 19:04
поделиться

Я сам боролся с этим. Как вы сказали, управление версиями ГБ ресурсов может быть огромной проблемой.

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

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

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

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

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

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

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

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

2
ответ дан 26 November 2019 в 19:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: