Сколько лет работаю в ИТ, постоянно сталкиваюсь с необходимостью "закапывания" (sunsetting) изживших себя сервисов и миграции на новые. Я столько раз "хоронил" старые сервисы, что уже чувствую себя похоронным агентом цифровых систем 😄 Каждый раз казалось, что это последняя миграция в моей жизни, но рынок не стоит на месте — технологии устаревают, требования меняются, и снова приходится собирать команду для "переезда".
Почему это всегда больно? Потому что за каждой системой стоят реальные люди, привыкшие к определенному интерфейсу, горячим клавишам, автоматизациям. Потому что в старых сервисах живет наша бизнес-память — данные, история взаимодействий, наработанные процессы. И когда приходится говорить команде: "С завтрашнего месяца мы переходим на новую платформу", внутри всегда тревога: получится ли сделать это без потерь и слез?
В этих карточках я попытался собрать реальные этапы и работы, с которыми неизбежно столкнется любой, кто берется за миграцию. Это то, что я выстрадал на своих проектах, проверил на ошибках, и что сегодня помогает мне планировать такие переходы с минимальным стрессом для пользователей и максимальной сохранностью данных.
Сохраняйте себе — пригодится, когда ваш руководитель скажет: "Нам нужно переехать на новую систему до конца квартала".😉
P.S. Решил написать этот пост, т.к. в работе как раз есть ещё один кандидат на закапывание
#lifehacks #howto #guides
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥8👍2👏1
Если ваш сервис использует в качестве БД PostgreSQL и вы часто пишете SQL-запросы для аналитики — вам знакома боль: «а какая там колонка?», «как называется связующая таблица?», «какие индексы есть?».
Обычно лезут в pg_catalog или DBeaver, но есть способ проще и удобнее — особенно если вы используете LLM для генерации запросов.
Забудьте про системные таблицы — встречайте
pg_dump 🔥 — утилиту командной строки из поставки PostgreSQL, которая создаёт резервные копии БД. Но её можно использовать и для экспорта схемы данных в читаемом виде. И это идеальный способ получить полный контекст для LLM.(👀 см. карточки ↑)
⚠️ Важные нюансы
— Фильтруйте чувствительные данные перед отправкой в LLM: удалите комментарии с секретами, триггеры с логикой бизнес-правил.
— Обрезайте большой дамп — если схема огромная, оставьте только релевантные таблицы для задачи.
— Используйте
.pgpass — чтобы не вводить пароль каждый раз при запуске pg_dump.Промпт для генерации описания таблиц на основе схемы из
pg_dump:Проанализируй схему PostgreSQL, полученную через утилиту pg_dump (включая CREATE TABLE-запросы, комментарии к таблицам и колонкам, а также определения внешних ключей), и сформируй структурированное описание каждой таблицы в следующем формате:
# Описание таблиц BI-системы
## Хранилище данных: PostgreSQL
### Таблица: [название таблицы]
**Описание:** [Текст из COMMENT ON TABLE. Если комментарий отсутствует, сформулируй краткое описание на основе названия таблицы и контекста.]
**Колонки:**
- **[имя колонки]** ([тип данных]): [Текст из COMMENT ON COLUMN. Если комментарий отсутствует, опиши назначение на основе названия колонки и типа данных. Для внешних ключей добавь: "Ссылка на [таблица].[колонка] ([пояснение связи, например: 'определяет контекст видимости', 'используется для проверки условий']".]
**Бизнес-логика:**
- [Перечисли ключевые аспекты логики на основе:
1. Связей через внешние ключи (например: "Связь с [таблица] через [колонка] определяет [логика]"),
2. Флагов/статусов (например: "Использование флага [колонка] позволяет [действие]"),
3. Контекста из комментариев (например: "Алерты срабатывают при [условие] на основе данных из [таблица]").
Каждый пункт должен начинаться с тире и содержать пояснение, как колонка или связь влияет на бизнес-процессы.]
---
Требования к оформлению:
1. Используй строгую структуру с markdown-заголовками (###, **, -).
2. Для внешних ключей в разделе "Колонки" всегда указывай связанную таблицу и логику связи (например: "Ссылка на queries.id, по результатам которого проверяются условия алерта").
3. В "Бизнес-логике" фокусируйся на взаимодействии таблиц, условиях срабатывания, правах доступа и других бизнес-аспектах (не технических деталях).
4. Если в схеме отсутствуют комментарии, сделай обоснованные выводы на основе названий колонок и типов данных (например, `is_active` → "Флаг активности записи").
5. Не добавляй информацию, которой нет в схеме (только то, что можно вывести из pg_dump и логических связей).
Пример корректного описания для таблицы alerts (как в приложенном файле) должен быть воспроизведен для каждой таблицы в схеме.
🤌 Итого
pg_dump — это не только для бэкапов. Это мощный инструмент для ускорения работы с данными, особенно в связке с LLM. Вы экономите время на рутине и фокусируетесь на том, что действительно важно — анализе и принятии решений.См.также
— Как писать SQL-запросы с помощью LLM: гайд для менеджеров без аналитиков
— Pg_dump документация
#tips #llm #sql #analytics
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤5👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Вы когда-нибудь тратили 20 минут, чтобы сделать скриншот кода для поста, только чтобы в итоге всё равно выглядело как школьная тетрадь с помарками? 😅
На прошлой неделе я написал пост про SQL-запросы и буквально стонал от ужаса при мысли о скриншотах. Старые инструменты давали:
— Скучное белое поле с серым текстом
— Обрезанные края и размытые шрифты
— И главное — полное отсутствие стиля
И тогда я открыл для себя Carbon — сервис, который превращает ваш сухой код в визуальные шедевры. Просто вставляете код → выбираете тему → экспортите картинку. И всё!
Раньше я бы потратил полчаса на скриншоты, а с Carbon — сделал 4 идеальных изображения за 4 минуты.
Это бесплатно. Не требует регистрации. И работает так быстро, что вы не успеете допить кофе.
Проверьте — прямо сейчас вставьте свой любимый кусок кода в Carbon. Поверьте, разница впечатлит.
P.S. А вы какие инструменты используете для оформления технического контента?
#tools #dev #productivity #coding #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍7
Вы когда-нибудь сталкивались с ситуацией, когда нужно постоянно делать одни и те же действия на веб-страницах? Копировать информацию из разных мест, преобразовывать текст или скрывать чувствительные данные перед скриншотом?
Сегодня расскажу про букмарклеты, которые решат эти проблемы за один клик.
Букмарклет (bookmarklet) — это скрипт на JavaScript, сохраненный как обычная закладка в браузере. Вместо URL-адреса в нем хранится код, который выполняется на текущей странице при клике.
🔥 Мой кейс
Нужно было собирать данные с разных страниц сайта. Написал букмарклет через LLM:
— Закинул HTML страницы
— Описал, что хочу на выходе
— Модель сама нашла нужные элементы и сгенерировала код
— Теперь за клик копирую отформатированный текст в буфер!
🛡 Ещё кейс (см. скрины)
Букмарклет для "засекречивания" цифр в дашбордах. Перед скриншотом кликаю — все числа заменяются на █. Идеально для презентаций!
Вот код (можете сохранить себе):
javascript:(function(){function replaceDigitsInNode(node) {if (node.nodeType === Node.TEXT_NODE) {const originalText = node.textContent;const modifiedText = originalText.replace(/\d/g, '█');if (originalText !== modifiedText) {const newNode = document.createTextNode(modifiedText);node.parentNode.replaceChild(newNode, node);}}}function processElement(element) {const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT, null, false);const nodesToReplace = [];let node;while (node = walker.nextNode()) {nodesToReplace.push(node);}nodesToReplace.forEach(replaceDigitsInNode);}processElement(document.body);})();💡 Как создать свой?
1. Опишите задачу LLM (например: "Напиши код букмарклета в одну строку, который..."). Идеально если ещё дадите модели скачанную html-страницу (Ctrl + s)
2. Скопируйте готовый код из
javascript: (() => {
// Your code here!
})();3. Создайте закладку, вставьте код в URL — готово!
🚀 Что ещё можно
— Скрывать блоки рекламы
— Переключать тёмную тему
— Сохранять выделенный текст в Notion/Telegram
— Анализировать цены на маркетплейсах
— что угодно, загляните сюда чтобы попробовать
💬 Попробуйте!
Самые унылые рутинные задачи в браузере решаются одной закладкой. А какие моменты вас бесит больше всего? Может, придумаем букмарклет прямо в комментах? 😉
P.S. Спасибо Руслану, что рассказал про букмарклеты в своём канале)
👀 Смотрите также
— What are Bookmarklets? How to Use
— 15 Useful Bookmarklets for Web Devs
— Набор букмарклетов для аудита доступности a11y (чтобы сохранить себе, перетащите ссылку в закладки)
#lifehacks #tools #llm #dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩12🔥10❤8👍1
📊 Аналитика
— Как писать SQL-запросы с помощью LLM: гайд для менеджеров без аналитиков
— Как «подружить» LLM с вашей PostgreSQL: лайфхак для быстрой аналитики
— Метрики внутренних продуктов - фреймворк CASTLE
— Вовлекаем пользователей в приоритезацию: почему и как мы это делаем
💼 Менеджмент
— Менеджер B2E продуктов: кто это и чем он отличается от обычного PM
— Миграция между системами
— Фоллоуап — не вежливость, а инструмент управления ожиданиями
— Фреймворк ШИП: как создавать материалы, которые действительно будут использоваться
— Vibe Product Management - материалы "конференции"
🧱 Просто о сложном
— Релизы для новичков
— CLI для новичков: командная строка не так страшна, как кажется
⚙️ Полезные инструменты
— Букмарклеты: мощные кнопки в вашей панели закладок
— Скриншоты кода — инструмент, который превратит ваш код из "уродца" в "звездочку"
— Лайфхак: как за 2 секунды создать документ или таблицу в Google
— Удобные ресерчи с ИИ
P.S. Дайджесты в закрепе помогают навигироваться по контенту канала 😉
#digest
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥5
История про то, как я чуть не обвинил Claude в тормозах.
Пытался я как-то подружить Cursor с Claude. Нажимаю — ничего. Жду — тишина. Ещё жду — опять ничего.
И тут начинается классика:
— «Наверное, у меня дешёвая подписка, поэтому так медленно»
— «Или Claude вообще не такой умный, как хвалят?»
— «Может, интернет глючит?»
Потратил минут 15 на самоедство и теории заговора. А потом вспомнил золотое правило опытных девопсов:
«Не гадай — смотри логи».
Открыл консоль логов Cursor, скопировал ошибки, скормил их самому Claude в чате — и бац! Проблема оказалась вовсе не в ИИ и не в подписке:
— Не так был установлен git (а интеграция с ИИ его использует для работы с репозиторием)
— Системный шелл стоял bash, хотя на Windows гораздо стабильнее работает PowerShell
— Переставил гит, поменял шелл — и всё заработало мгновенно. 2 минуты на фикс против 15 минут бесполезных переживаний.
#thoughts #ai #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥8👍4🥴1
В эпоху когда все активно взаимодействуют с LLM стал процветать markdown-синтаксис — легкий, структурированный формат, который легко парсится моделями.
Недавно обнаружил, что в Google Docs есть фича «Скачать как Markdown (.md)»🔥 (Меню Файл → Скачать → Markdown (.md)). Это не просто удобство — это мощь! Для тех, кто собирает контекст в Cursor: теперь вы можете быстро экспортировать документы проекта в .md чтобы загружать их в модель без лишних конвертаций. Больше не нужно копировать текст вручную!
👀 Немного про то как работают с контекстом в Cursor
В Cursor менеджеры контекста автоматически сканируют структуру проекта. Если распределить .md-файлы по папкам (например,
design/, docs/, analytics/), модель будет видеть логическую иерархию знаний. Это повышает качество генерации — модель «понимает», где что хранится, и точнее отвечает на запросы.Итог:
Markdown — основа для взаимодействия с LLM. Экономьте время, структурируйте контекст и работайте с ИИ-инструментами быстрее
#ai #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤5
Последний год все сидят в чатах — ChatGPT, Gemini, Qwen, Claude. Но параллельно растёт другой формат: агенты. И разница между ними — принципиальная:
— Чат — это собеседник/советчик. Вы спрашиваете, он отвечает. Всё. Дальше вы сами: копируете, вставляете, пробуете, возвращаетесь с ошибкой. Чат не знает, что у вас за проект, какие файлы, что сломалось. Каждый раз вы заново объясняете контекст.
— Агент — это исполнитель (как ваш агент по недвижимости).
Он не просто отвечает, а действует. Видит ваши файлы, открывает их, вносит правки, создаёт новые. Вы ставите задачу — он делает.
Claude в Cursor (или другой IDE) — это как раз агент. Та же модель Claude, что и на сайте, но с «руками»: она подключена к вашему проекту и может в нём работать.
🤌 Аналогия
— Чат — это как позвонить врачу и описать симптомы по телефону. Он даст совет, но осмотреть не может.
— Агент — это врач, который пришёл к вам, видит анализы, сам ставит диагноз и выписывает лечение.
💡Почему это важно
Агентный формат — это тренд. Он придёт не только в код. Уже сейчас появляются агенты для работы с документами, таблицами, почтой, браузером. Скоро привычные чаты будут восприниматься как первый шаг — полезный, но ограниченный.
Главное отличие не в том, какая модель умнее. А в том, что ей разрешено делать — только говорить или ещё и действовать.
#ai #thoughts
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥5👍1
Вчера за 30 мин (прям буквально за 30 мин) сделал себе тулу, о которой давно мечтал.
Мне часто для работы надо смотреть что приходит с бэкенда, иногда то что приходит надо использовать для анализа либо для обработки (в Excel) и использования в другом месте.
Решил, что пора — волна вайбкодинга в самом апогее. Результат нашей переписки с агентом (Claude Code) на скринах выше. С чистого листа, до установленного расширения в браузере прошло 30 мин.
Агенту я лишь описал образ результата. Дальше он сам:
— Поискал в интернете как делать экстеншены
— Создал детальный план
— Скачал нужные библиотеки
— Установил нужный софт
— Сделал нужные настройки в IDE
— ... перечислять можно бесконечно, по факту - имея доступ к CLI агент может делать ВСЁ на вашем компе и взаимодействовать с любыми ресурсами, у которых есть такая возможность
— Результат опубликовал на Github
Размышления:Что на выходе
Для вайбкодинга хорошо бы знать терминологию и процессы разработки, фреймворки, библиотеки и прочее. Чтобы не просто "эй, сделай красиво", а прям с конретным описанием того, как это должно выглядеть и что должно быть под капотом
(для этого этот канал и есть😉)
API Data Grabber — расширение для браузера которое перехватывает все API-запросы, которые делает сайт, и позволяет:
— увидеть их список
— открыть JSON-ответ любого запроса (ну это итак можно было)
— автоматически найти в ответе массивы данных (списки пользователей, заказов, товаров — что угодно)
— посмотреть их в табличном виде с сортировкой, поиском и пагинацией 🔥
— Скачать в Excel или CSV 🔥🔥
👥 Кому полезно:
Продактам — быстро выгрузить данные из админки, когда нет готового отчёта
Аналитикам — получить сырые данные из любого внутреннего инструмента без запросов к бэкенду
QA — проверить что реально приходит в ответе API
Всем, кто хоть раз думал "мне бы эту таблицу в Excel скинуть"
📖 Как установить
— Скачать репозиторий: нажать зелёную кнопку Code → Download ZIP
— Распаковать ZIP-архив в любую папку
— Открыть в Chrome: chrome://extensions
— Включить Developer mode (переключатель справа вверху)
— Нажать Load unpacked и выбрать распакованную папку (ту, в которой лежит manifest.json)
— Готово — расширение установлено
https://github.com/Working-in-IT/api-data-grabber
#ai #vibecoding
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥10👍4