~/guides
Гайды
Узкие практические проблемы с конфигами и текстовыми форматами, разобранные конкретно, с примерами кода.
- Git
.gitattributes и line endings: почему Pull Request показывает весь файл измененным
Как CRLF и LF превращают однострочное изменение в диф на пятьсот строк, и как это лечится одним файлом конфига.
- .env
Порядок загрузки .env: почему Node, Docker Compose и Next.js видят разные значения
Пошаговый разбор приоритета переменных окружения в трех популярных системах и как отладить, откуда реально взялось значение.
- JSON
Почему JSON.parse портит большие числа и что с этим делать
Разбор потери точности int64 идентификаторов при парсинге JSON в JavaScript и три рабочих способа обойти проблему.
- CSV
CSV и Excel: почему номер телефона превращается в 1.23E+11
Разбор того, как Excel угадывает типы данных при открытии CSV, и три способа сохранить числовые строки числовыми строками.
- Docker Compose
Docker Compose depends_on и healthcheck: почему сервис стартует раньше базы
Как условие service_healthy решает race condition при старте контейнеров, и почему просто depends_on без него не работает.
- JSON
JSON.stringify, null и undefined: три способа полю исчезнуть из результата
Разбор того, куда пропадают undefined значения при сериализации JSON, и почему это архитектурное решение, а не баг.
- Markdown
Markdown таблицы в GitHub README: почему все разъезжается
Частые причины сломанных таблиц в Markdown: неэкранированная вертикальная черта, лишние пробелы и путаница с выравниванием.
- Nginx
Nginx rewrite vs return vs try_files: как устроить бесконечный редирект и найти его
Разбор трех похожих директив nginx, из-за путаницы между которыми получается ERR_TOO_MANY_REDIRECTS в браузере.
- TOML
TOML и даты: почему валидный конфиг привозит время не в том часовом поясе
Разбор форматов дат по стандарту RFC 3339 в TOML и частых ошибок с локальным временем без явного часового пояса.
- YAML
YAML anchors и merge keys: один docker compose на три окружения без копипасты
Как раздать конфиг на dev, staging и prod через якоря и ссылки YAML, не размножая одни и те же настройки по трем файлам.