отчётов (и возвращаетесь ли)?
Если более предметно, то по работе сейчас очень много adhoc/исследований и собирается это всё иногда в jupyter-ноутбуках, иногда в quarto блокнотах, и хочется в любой момент времени открыть этот блокнот прописать волшебную функцию load(environment) и чтобы в окружении появились объекты, которые там были на момент сохранения сессии.
Так вот недавно начал активно пользоваться qs, и у меня эта волшебная кнопка появилась (qs::qsavem), насколько то, что я делаю это анти-паттерн? И делает ли так кто-то еще?)
Это опасно тем, что иногда не ясно как дошли до сохраненных значений. Иногда пайплайн выглядит как "выполни первые 10 строк файла 1, потом 5 строк файла 2, потом файл 1 до конца". Лучше писать код, который можно полностью выполнить и прийти к такому же состоянию, делать set.seed() если нужно. А сохранять только очень тяжёлые вычисления и делать это в отдельных qs / rds, а не всё окружение
У меня после каждого ad-hoc сохраняется скрипт, который ложиться в папочку (иногда с сохранением qs иногда без). В случае повторного ad-hoc - открываю сам скрипт и меняю фильтры, - скрипт на повтор. Проблем небыло Если говорим про то, что бы вернуть результат, получившийся тогда (а на тек. момент данные изменены и при повторном прогоне скрипта - разные результаты могут быть) - вещь крайне полезная
я согласен, но у меня не хватает например дисциплины переписывать код после того, как я уже закончил, чтобы он отражал хронологическое выполнение. Обычно тестирую довольно много гипотез, поэтому получающийся в итоге документ это жуткая мешанина из обрезков идей я сейчас пытаюсь для себя понять, насколько это проблема)) или просто that's life и нашёл, что дамп всех переменных самое простое в плане когнитивных ресурсов решение, чтобы посмотреть, а какие результаты были в сыром виде
как минимум, после завершения работы привести ноутбук в порядок, чтобы исполнялся по кнопочке рендер. И комментарии расставить
Обсуждают сегодня