Вы можете попробовать использовать свойство HttpResponse.Cache, если это поможет:
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(false);
Response.Cache.VaryByParams["Category"] = true;
if (Response.Cache.VaryByParams["Category"])
{
//…
}
Или может блокировать кэширование страницы в целом с помощью HttpResponse.CacheControl, но ее устарело в пользу кэша свойство выше:
Response.CacheControl = “No-Cache”;
ИЛИ вы действительно можете сходить с ума и сделать все это вручную:
Response.ClearHeaders();
Response.AppendHeader(“Cache-Control”, “no-cache”); //HTTP 1.1
Response.AppendHeader(“Cache-Control”, “private”); // HTTP 1.1
Response.AppendHeader(“Cache-Control”, “no-store”); // HTTP 1.1
Response.AppendHeader(“Cache-Control”, “must-revalidate”); // HTTP 1.1
Response.AppendHeader(“Cache-Control”, “max-stale=0″); // HTTP 1.1
Response.AppendHeader(“Cache-Control”, “post-check=0″); // HTTP 1.1
Response.AppendHeader(“Cache-Control”, “pre-check=0″); // HTTP 1.1
Response.AppendHeader(“Pragma”, “no-cache”); // HTTP 1.1
Response.AppendHeader(“Keep-Alive”, “timeout=3, max=993″); // HTTP 1.1
Response.AppendHeader(“Expires”, “Mon, 26 Jul 1997 05:00:00 GMT”); // HTTP 1.1
Я считаю, что ответ на ваш вопрос - однозначное «да» - преимущества управления файлами с помощью системы контроля версий намного перевешивают затраты на внедрение такой системы.
Я постараюсь подробно ответить на некоторые из поднятых вами вопросов:
- Резервное копирование: У меня уже есть резервная система.
Да, и я тоже. Тем не менее, есть некоторые вопросы, которые следует рассмотреть относительно уместности использования универсальной системы резервного копирования для адекватного отслеживания важных и активных файлов, относящихся к вашей работе. Что касается производительности:
И самое главное:
Например, у вас есть Mac и используйте Time Machine для резервного копирования на другой жесткий диск. вбиваю мой компьютер. Time Machine отлично подходит для восстановления лишнего файла или восстановления моей системы, если что-то пойдет не так. Однако у него просто нет того, что нужно, чтобы доверять мою важную работу:
При резервном копировании Time Machine должна создать образ всего жесткого диска, что занимает значительное количество времени.Если я продолжу работать, нет гарантии, что мой файл будет сохранен в том состоянии, в котором он был, когда я инициировал резервное копирование. Я также могу подойти к другому моменту, который хотел бы сохранить до завершения первого резервного копирования.
Жесткий диск, на котором сохраняются мои резервные копии Time Machine, расположен на моем компьютере, что делает мои данные уязвимыми для кражи, пожара и других катастроф.
С помощью системы контроля версий, такой как Git, я могу инициировать резервное копирование определенных файлов без дополнительных усилий, чем при запросе сохранения в текстовом редакторе, и файл мгновенно отображается и сохраняется. Кроме того, Git распространяется, поэтому на каждом компьютере, на котором я работаю, есть полная копия репозитория.
Это равносильно тому, что моя работа отражается на четырех разных компьютерах - ничто иное, как стихийное бедствие может уничтожить мои файлы и данные, и в этот момент меня, вероятно, все равно не слишком заботит.
- Разветвление и перемотка: Я никогда не чувствовал необходимости в этом, но вижу, как это может быть полезно (например, вы готовите несколько журнальных статей на основе одного и того же набора данных; вы готовите отчет который обновляется ежемесячно и т. д.)
Как солист, я тоже не сильно раскошеливался. Однако время, которое я сэкономил, имея возможность перемотки назад, в одиночку окупило мои инвестиции в изучение системы контроля версий много-много раз. Вы говорите, что никогда не испытывали потребности в этом - но действительно ли перемотка любого файла в вашей текущей системе резервного копирования была безболезненным и осуществимым вариантом?
Иногда отчет выглядел лучше 45 минут, час или два дня назад.
- Совместная работа: Большую часть времени я анализирую данные сам, поэтому не получил бы преимуществ совместной системы контроля версий.
Да, но вы бы выучили инструмент, который может оказаться незаменимым, если в конечном итоге вы все-таки станете сотрудничать с другими над проектом.
- Пора оценить и изучить систему контроля версий
Не беспокойтесь об этом слишком сильно. Системы контроля версий похожи на языки программирования - у них есть несколько ключевых концепций, которые необходимо изучить, а остальное - просто синтаксический сахар. По сути, первая система управления версиями, которую вы изучите, потребует больше всего времени; переключение на другую требует лишь изучения того, как новая система выражает ключевые концепции.
Выберите популярную систему и действуйте!
- Возможное увеличение сложности по сравнению с моей текущей системой управления файлами
У вас есть одна папка, скажем Projects
, которая содержит все папки и файлы, связанные с вашей деятельностью по анализу данных? Если это так, то установка на него управления версиями увеличит сложность вашей файловой системы ровно на 0
. Если ваши проекты разбросаны по вашему компьютеру, вам следует централизовать их, прежде чем применять контроль версий, и это приведет к уменьшению сложности управления вашими файлами - поэтому у нас есть папка Documents
после всего.
- Стоит ли контроль версий усилий?
Да! Он дает вам огромную кнопку отмены и позволяет легко переносить работу с машины на машину, не беспокоясь о таких вещах, как потеря USB-накопителя.
2 Каковы основные плюсы и минусы внедрения контроля версий?
Единственный минус, о котором я могу думать, - это небольшое увеличение размера файла, но современные системы контроля версий могут делать совершенно потрясающие вещи со сжатием и выборочным сохранением, поэтому это в значительной степени спорный вопрос.
3 Какова хорошая стратегия для начала работы с контролем версий для анализа данных с помощью R (например, примеры, идеи рабочего процесса, программное обеспечение, ссылки на руководства)?
Храните файлы, которые генерируют данные или отчеты, под контролем версий, быть селективный. Если вы используете что-то вроде Sweave
, храните ваши файлы .Rnw
, а не файлы .tex
, созданные из них. Сохраните необработанные данные, если их будет сложно получить повторно. Если возможно, напишите и сохраните сценарий, который собирает ваши данные, и другой сценарий, который очищает или изменяет их, а не хранит изменения в необработанных данных.
Что касается изучения системы контроля версий, я настоятельно рекомендую Git и это руководство к нему.
На этих веб-сайтах также есть несколько полезных советов и приемов, связанных с выполнением определенных действий с Git:
Я бы по-прежнему рекомендовал контроль версий для таких соло-исполнителей, как вы, потому что наличие подстраховки от ошибок может быть отличной вещью.
Я работал индивидуальным Java-разработчиком и до сих пор использую систему управления версиями. Если я постоянно что-то проверяю, я не могу потерять больше часа работы, если что-то пойдет не так. Я могу экспериментировать и проводить рефакторинг, не беспокоясь, потому что, если что-то пойдет не так, я всегда могу вернуться к своей последней рабочей версии.
Если это так, я бы рекомендовал использовать систему контроля версий. Научиться этому несложно.
Стоит ли управление версиями затраченных усилий?
большое ДА.
Каковы основные плюсы и минусы внедрения контроля версий?
Плюсы: вы можете отслеживать, что делали раньше. Особенно полезно для латекса, так как вам может понадобиться старый абзац, который вы удалили! Когда ваш компьютер выходит из строя или вы работаете над новым, ваши данные восстанавливаются на лету.
минусы: нужно сделать некоторые настройки.
Какова хорошая стратегия для начала работы с контролем версий для анализа данных с помощью R (например, примеры, идеи рабочих процессов, программное обеспечение, ссылки на руководства)?
Просто начните ее использовать. Я использую черепаховый SVN в Windows в качестве клиентского инструмента, и у моего отдела есть svn-сервер, я помещаю туда весь свой код и данные (да, вы также помещаете туда свои данные!).
Я согласен с вышеизложенным и скажу, что да, контроль версий полезен.
Преимущества;
Что касается наборов инструментов, я использую Git вместе с StatEt и ] Eclipse , который работает хорошо, хотя вам, конечно, не обязательно использовать Eclipse. Есть несколько подключаемых модулей Git для Eclipse , но я обычно использую параметры командной строки.
Я также занимаюсь написанием сценариев в одиночку и считаю, что это упрощает работу, а не усложняет ее. Резервное копирование интегрировано в рабочий процесс кодирования и не требует отдельного набора процедур файловой системы. Время, необходимое для изучения основ любой системы контроля версий, определенно будет потрачено не зря.
Вы должны использовать программное обеспечение для контроля версий, иначе ваш анализ не будет полностью воспроизводимым.
Если вы хотите где-то опубликовать свои результаты, у вас всегда должна быть возможность восстановить статус ваших скриптов в тот момент, когда вы их создали. Предположим, один из рецензентов обнаружил ошибку в одном из ваших скриптов: как узнать, какие результаты будут выполнены, а какие нет?
В этом смысле системы резервного копирования недостаточно, потому что это, вероятно, выполняется только один раз в день, и она не применяет ярлыки к различным резервным копиям, поэтому вы не знаете, какие версии соответствуют каким результатам. А изучить vcs проще, чем вы думаете, если вы научитесь добавлять файл и как фиксировать изменения, этого уже достаточно.
Я провожу экономические исследования, используя R и LaTeX, и всегда ставлю свою работу под контроль версий. Это похоже на неограниченную отмену. Попробуйте Bazaar, он один из самых простых в изучении и использовании, а если вы работаете в Windows, он имеет графический пользовательский интерфейс (TortoiseBZR).
Да, контроль версий дает дополнительные преимущества при работе с другими, но даже в сольных проектах это имеет смысл.
Прямо сейчас вы, вероятно, думаете о своей работе как о разработке кода, который будет делать то, что вы хотите. После того, как вы воспользуетесь системой контроля версий, вы будете думать о своей работе как о записи своего наследия в репозиторий и внесении в него блестящих инкрементальных изменений. Так лучше.
Контроль версий для самостоятельной разработки (любого типа) действительно интересен для:
Если вы не видите, что используете одну из этих двух основных функций управления версиями, простой инструмент резервного копирования может оказаться всем, что вам нужно.
Если вам действительно нужны эти функции, вы также получите резервную копию (например, с помощью git bundle
)
Я девять лет проработал в аналитическом магазине и внедрил там идею контроля версий для наших аналитических проектов. Разумеется, я очень верю в контроль версий. Однако я бы сделал следующие замечания.