Найти в Дзене
YAML кажется простым, пока не наткнёшься на «магические» значения, отступы и странные преобразования типов
YAML кажется простым, пока не наткнёшься на «магические» значения, отступы и странные преобразования типов. Вот быстрый чек-лист, чтобы не попасть: 1. Булевы ловушки # Плохо enabled: yes # станет true answer: No # станет false # Хорошо enabled: true answer: "No" # строка 2. Ведущие нули # Плохо port: 080 # Хорошо port: "080" # строка 3. Даты как строки # Плохо version: 2025-08-16 # Хорошо version: "2025-08-16" 4. Только пробелы, без табов items: - a - b 5. Анкоры и алиасы (DRY) base: &base image: nginx:latest web: <<: *base replicas: 2 6. Многострочные строки: `|` vs `>` | — сохраняет переносы строк...
4 дня назад
В YAML списки (массивы) — это «последовательности
В YAML списки (массивы) — это «последовательности». Их пишут двумя способами: Блочный: с дефисами — самый читаемый servers: - web01 - web02 В строку (flow): компактно, но хуже на длинных списках web_servers: [web01, web02] Можно вкладывать списки в словари и наоборот: environments: - name: production servers: - prod-web01 - prod-db01 Длинные элементы удобно хранить как многострочные строки: config_files: - | server { listen 80; } Где это нужно: Ansible (tasks, hosts), Kubernetes (containers, ports), CI/CD (steps). Советы: * Только пробелы, без табов...
1 неделю назад
Если вы кодируете данные в Base64 для URL или пытаетесь сгенерировать JWT, символы + и / могут некорректно обрабатываться
Если вы кодируете данные в Base64 для URL или пытаетесь сгенерировать JWT, символы + и / могут некорректно обрабатываться. Для этого придуман стандарт Base64URL, где они заменены на - и _, а паддинг = убран. В PHP готовых функций нет, но их легко написать на основе base64_encode и strtr. Главное — не забыть при декодировании вернуть = на место, иначе ничего не получится. Кодирование: rtrim(strtr(base64_encode($data), '+/', '-_'), '='); Декодирование: base64_decode(strtr($data, '-_', '+/') . str_repeat('=',...
2 недели назад
🚀 Next.js: JSON 404 для несуществующих API-роутов
🚀 Next.js: JSON 404 для несуществующих API-роутов В App Router есть нюанс: для несуществующих API-запросов возвращается HTML-страница из not-found.tsx. Но клиентам API нужен JSON, а не HTML 🙃 Решение — catch-all роут Создаём роут, который перехватывает все неизвестные запросы: /app/api/[...not_found]/route.ts export async function GET() { return Response.json({ error: 'Not Found' }, { status: 404 }); } export async function POST() { return Response.json({ error: 'Not Found' }, { status: 404 }); } А для /api без вложений — отдельный route...
2 недели назад
Оптимизация приоритетов процессов с nice и ionice: - nice: регулирует приоритет использования процессора (диапазон от -20 до +19). - ionice: управляет приоритетом операций ввода-вывода с тремя классами (Idle, Best-effort, Realtime). Пример запуска резервного копирования с низким приоритетом: nice -n 10 ionice -c 3 backup_script.sh Так можно снизить влияние фоновых процессов на активные задачи. https://varnote.ru/linux/nice-and-ionice/ #varnote #linux
10 месяцев назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала