Frontend Good Reads – июнь 2025
Ежемесячный дайджест моего телеграм-канала Frontend Good Reads, где я делюсь интересными статьями, видео и новостями из мира фронтенда и моими мыслями о них. Иногда бывают оффтопы: UX, обучение, технологии и тд.
Мой опыт использования ChatGPT с включенной персонализацией
Несколько недель пробовал использовать ChatGPT с включенной персонализацией.
Первую неделю это казалось удобным: не надо было явным образом прописывать особенности и ограничения разных контекстов и систем.
А на второй неделе начал ощущать явный упадок качества ответов, как будто весь контекст про меня перемешался в кашу, которую он пытался использовать и добавлял в неё новые и новые ингредиенты. В результате среднее качество ответов сильно упало и приходилось постоянно уточнять, что из моего контекста не надо учитывать в текущем вопросе.
Возможно есть способы, как управлять такой персонализацией, но решил просто её выключить несколько дней назад, и качество ответов резко выросло.
На эту тему интересно почитать статью Addy Osmani The Prompt Engineering Playbook for Programmers. Пишет он, конечно, красивым языком, но количество воды порядочное. Можно просто выделить эти принципы:
- **Предоставляй AI исчерпывающий контекст. Представь, что **AI ничего не знает о проекте кроме того, что ты ему расскажешь (а с выключенным контекстом это так и есть).
- Будь конкретным в своих целях и вопросах. Расплывчатые вопросы ведут к расплывчатым ответам.
- Разделяй сложные задачи. Начни с высокоуровневой цели и итеративно спрашивай о разных её частях.
- **Приводи примеры ввода/вывода или примеры ожидаемого результата. Поможет **AI лучше понять твои намерения и избежать недопонимания.
- **Используй роли. Это может повлиять на глубину и стиль ответа. Пример: **
You are a senior {language} developer. Review this function for {goal}.
. - **Итеративно улучшай диалог. **AI помнит историю чата, так что можно постепенно выводить его на чистую воду (но для меня лучше работает изменение промпта и старт с чистым контекстом, если результат очень далек от ожидаемого).
- Поддерживай чистоту кода и консистентность его написания. Продуманные названия функций и переменных, консистентное форматирование и уместные комментарии не только помогают людям понимать этот код, но и сильно оптимизирует работу AI с ним.
Несколько слов про заголовок запроса Cache-Control
Why Do We Have a Cache-Control Request Header?
Если про использование заголовка Cache-Control
в ответе всё понятно, то использование его же для запроса история вообще не очевидная, никогда в такой перспективе о нём не задумывался.
Он инструктирует CDN или сервер ревалидировать кэш для этого запроса. max-age=0
– запросить ревалидацию, no-cache
– запросить ревалидацию более настойчиво и запретить отдавать ответ без неё.
Несколько сценариев его применения:
- Используется браузерами для обычной и жесткой перезагрузки страницы, и как мы любим, все три основных браузера (Chrome, Safari, Firefox) ведут себя в этих сценариях по-разному.
- Можно добавлять к запросам, ответам которых очень желательно быть актуальными. В дополнение к правильным заголовкам ответа сервера для надёжности или если ему не доверяем.
- И самый интересный кейс – для оффлайн приложений со значением
only-if-cached
, чтобы не делать запрос в сеть, а только попытаться взять ответ из кэша.