Заметки
Технические тексты о границах форматов, представления и воспроизводимости.
- Имена файлов как часть интерфейса
Имя связывает файл с человеком, скриптом и следующей версией процесса.
- Границы нормализации
Стабильное оформление полезно, пока не меняет смысл исходных значений.
- Null, пустая строка и отсутствующее поле
Три состояния, которые нельзя объединять без решения предметной области.
- Дата без часового пояса
Календарная дата, местное время и момент времени требуют разных контрактов.
- Стабильная сортировка и определённый порядок
Стабильность алгоритма не заменяет полного правила сравнения.
- Переносы строк без скрытых преобразований
LF, CRLF и последний перевод строки влияют на байты и границы записей.
- Кодировка является частью формата
Расширение файла не сообщает, как превратить байты в символы.
- Контрольные суммы и пределы доверия
Совпадение байтов не устанавливает автора и не проверяет смысл.
- Атомарная публикация статического сайта
Проверенный каталог переключается целиком, а предыдущая версия остаётся для отката.
- Небольшие независимые снимки
Разделение помогает восстановлению, когда границы частей имеют ясный смысл.
- Журнал преобразований
Записывать нужно происхождение и результат, а не только сообщение «готово».
- Проверяемые примеры
Маленький образец должен действительно читаться заявленным инструментом.
- Воспроизводимость без контейнеров
Явные входы, версии и правила записи позволяют повторять небольшой процесс без образа системы.
- Когда SQLite проще набора JSON-файлов
Транзакции и индексы часто уменьшают объём собственной логики синхронизации.
- Когда не следует использовать YAML
Удобство ручного ввода не всегда оправдывает сложность типов и загрузчика.
- Как не опубликовать секреты с примером конфигурации
Образец создают отдельно от рабочего файла и проверяют по разрешённому составу.