Тихое повторное использование данных или требование от пользователя передать аргумент «повторное использование»?

Тихое повторное использование данных или требование от пользователя передать аргумент «повторное использование»?
Тихое повторное использование данных или требование от пользователя передать аргумент «повторное использование»? - fahiminia @ Unsplash

В конечном счете, оба подхода могут быть правильными

Важно то, что вы четко доносите до пользователя, что происходит.

Ваш шаблон 1 ориентирован на результат. Если нечего делать, ничего не будет сделано. Если детали уже сделаны, они будут использованы повторно. Например, так обычно работают файлы Makefile. Это хороший подход, если создание выходных артефактов обходится дорого, если есть промежуточные шаги, которые можно использовать повторно, и если вам может потребоваться возобновить прерванный процесс. Однако для этого требуется способ определить, актуальны ли эти промежуточные артефакты. Для этого файлы Makefile сравнивают временные метки файлов, так что любой выходной артефакт должен быть моложе своих входных данных. Более сложной альтернативой является использование хеш-функции для создания отпечатка текущей конфигурации и использования этого отпечатка в именах промежуточных файлов. Обычно существует способ clean всех сгенерированных файлов, чтобы весь процесс можно было запустить с нуля.

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

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

Я хочу повторить комментарий пользователя 253751 о том, что повторное использование любой информации в вашей конфигурации сервисов .onion позволяет подключать их, потенциально ставя под угрозу вашу анонимность.

Прикрепляю к посту несколько видео по теме:

Прикрепленное видео 1 - 🔴 ПОМЕНЯЙ Эти Настройки SIM карты И ОФИГЕЕШЬ!

Прикрепленное видео 2 - Паттерны хранения и обработки данных в ClickHouse, Александр Крашенинников (Badoo)

Прикрепленное видео 3 - Интенсив по LINQ. Упрощаем работу с данными в С -, .NET


LetsCodeIt, 29 апреля 2023 г., 21:12