lemon1964

+4
с 18.03.2026

В 57 начал программировать с нуля. Сейчас мне 62, работаю удалённо над конкретными задачами. https://lemon1964.github.io/portfolio/

1 подписчик
0 подписок

Прямой fetch из интерфейса во внешний API обычно живёт ровно до того момента, пока проект не становится чуть сложнее. Потом выясняется, что UI знает лишнее: адрес внешнего сервиса, форму чужого ответа, правила ошибок, а иногда и то, что вообще не должно выходить в браузер.

В App Router эту зависимость можно разрезать через Route Handler. Внут…

1
Django/LLM, polling списка моделей

Одна из проблем в LLM-агрегаторе начинается в момент, когда список моделей загружается только один раз. Пока пользователь не обновил страницу, интерфейс продолжает жить на старом слепке каталога. Для обычного справочника это терпимо. Для LLM-слоя нет, потому что набор рабочих free-моделей у провайдера меняется заметно быстрее.

1
Django/LLM, fallback при падении провайдера и подмене модели

Один из практических узлов в LLM-агрегаторе находится в точке, где выбранная модель не отвечает. Пока интеграция идет по счастливому сценарию, кажется, что достаточно просто отправить запрос в провайдера и вернуть текст. Но реальная система живет хуже. Модель может оказаться временно недоступной, провайдер может вернуть ошибку маршрута, а иногда от…

Next.js, когда нужен React Hook Form

Один из вопросов в формах на Next.js звучит так, в какой момент ручное управление формой становится дороже, чем использование React Hook Form.

Next.js, dev vs build

Одна из неприятных причин путаницы в Next.js состоит в том, что dev и build легко принять за два одинаковых режима, отличающихся только скоростью. На практике это не так.

Django/LLM, плохой выбор первой free-модели

Одна из самых коварных ошибок в LLM-интеграции выглядит почти безобидно. Продукт получает список моделей от провайдера, находит первую бесплатную и делает ее дефолтной. Кажется, что это простой и разумный старт. На практике такая логика быстро превращает free-режим в случайный выбор, зависящий не от качества и стабильности, а от порядка элементов в…

Next.js, fieldErrors vs formError

Одна из типовых проблем формы в Next.js возникает не в submit и не в схеме валидации, а в формате ошибки. Пока все сообщения сваливаются в одну переменную, интерфейс перестаёт различать две разные вещи, ошибка конкретного поля и ошибка самой операции.

Next.js, revalidate, почему данные не обновились

В Next.js есть момент, который хорошо знаком после первых экспериментов с App Router. Страница уже пересчиталась, reload прошёл, а данные на экране выглядят старыми. Часто причина в том, что включён revalidate, а значит у ответа есть окно свежести.

Django агрегатор LLM, одна модель на бренд вместо бесконечного списка

Одна из проблем в интеграции LLM начинается в тот момент, когда продукт получает от провайдера длинный список моделей и без размышлений показывает его пользователю. На первый взгляд это выглядит как сильная функциональность. На практике такой список быстро становится декоративным. В нем много похожих id, мало понятных различий, а качество и стабиль…

1
Next.js, форма это не только submit

Одна из частых ошибок в проекте на Next.js выглядит просто. Форму собирают как input, кнопку и submit, а всё остальное добавляют потом по мере необходимости. Сначала это кажется быстрым решением, но дальше почти всегда начинается расползание логики. Где-то ошибка поля, где-то общая строка сверху, где-то можно нажать submit несколько раз подряд, где…

Next.js, no-store vs force-cache

В Next.js часто сбивает не само кэширование, а расхождение между рендером страницы и свежестью данных. Страница уже пересчиталась, а ответ от API всё ещё старый. Или наоборот, разработчик отключает кэш везде подряд и теряет сам смысл встроенного механизма.

Next.js vs Django, когда сессию лучше закрыть автоматически

Один из недооцененных узлов в auth-связке Next.js и Django находится в точке, где refresh уже не помогает. Пока access token можно обновить, поток выглядит предсказуемо. Но как только refresh истек, был отозван или перестал проходить backend-проверки, приложение должно принять архитектурное решение. Либо продолжать держать пользователя в полурабоче…