Бизнес-анализ & IT
19.2K subscribers
904 photos
1 video
17 files
3.78K links
Канал для IT-аналитиков с полезными статьями, анонсами, пруфами про зп и с дельными советами.

Вопросы — через сообщения каналу или @analytical_questions_bot

РКН: https://clck.ru/3Pt9zS
Download Telegram
Про выгорание

Вчера я делилась постом инженера, который работал в AWS и рассказывал про выгорание. Сегодня хочу продолжить эту тему.
Выгорание — болезненная штука. О нём много говорят, но мало кто реально понимает, что с этим делать. Я считаю, что полностью избежать выгорания невозможно. Да, можно заниматься профилактикой, но стопроцентной защиты не существует. Мы все рано или поздно в него впадаем — просто в разной степени и по разным причинам.

🎨🎨🎨🎨🎨
🎨🎨🎨🎨🎨
🎨🎨🎨🎨🎨

Что делать, если вы уже выгорели

Самое первое — база, как в пирамиде Маслоу. Сначала нужно закрыть все свои потребности. Это скучно, банально, но без этого ничего не работает: нужно спать, есть, пить воду, отдыхать. Если вы пока не понимаете, как заботиться о своём бренном теле, начните отслеживать при помощи умных часов, браслетов или колец свои показатели, пройдите чекап у врача. Если первый этаж этого домика закрыт, можно двигаться дальше. Без надёжного фундамента ничего не сработает.

Почему вы выгораете

Как я уже говорила, выгорание полностью предотвратить нельзя, но можно понять его механизм и определить личные триггеры.
Возможно, это хронический недосып, обилие переработок или избегающий тип привязанности — дома вас ждёт семья, а вы убегаете от них на работу. Или вы игнорируете свои потребности и расходуете ресурс не туда.
Например, вы сидите в офисе, а воображение рисует пляж под пальмами — это нормально, но иногда вовсе не означает, что вы “не там”, просто убегаете от реальности мыслями и живете в своих мыслях свою лучшую жизнь. Или сфера деятельности не соотносится с вашими ценностями, и вы тратите силы на постоянные уговоры себя.

Что с этим делать

Беречь себя и лучше понимать свои потребности. Если совсем всё плохо или непонятно, чего хочется — приводите «кукушечку» в порядок и обращайтесь к специалистам помогающих специальностей (психолог, коуч, психотерапевт). Можно пообщаться с коллегами, узнать, какие практики помогают им, или даже поучаствовать в марафонах по борьбе с выгоранием.

Проблема решаема

Понимаю, как неприятно осознавать, когда человек долго шёл к цели, чтобы войти в айти, хотел стать профессионалом, а тут внезапно ловит выгорание и не знает, что делать. Может возникнуть мысль уйти из отрасли. Или ощущение вины (которой, на самом деле, и нет). Но рецепты, как с этим справляться — есть, главное, понять причины и действовать по шагам.
Please open Telegram to view this post
VIEW IN TELEGRAM
326
Чем HTTP отличается от HTTPS

Увидела пост с этим вопросом для собеседования СА и немного орнула.

Итак, базу, конечно, надо знать, но упоминание данного вопроса на собеседовании в 2025 году не может не вызывать вопросики. Объяснюсь.

Если находясь на собеседовании вы слышите данный вопрос, то:

Вариант А. Вас собеседует дед (ничего против не имею — вангую, что из-за зумеров будем работать до победного).

Вариант Б. Вас собеседует какой-то вкатун, который нашел списки вопросов для собеседования десятилетней давности, и критическое мышление ему не позволило вычеркнуть этот вопрос.

Вариант А маловероятен, просто потому что трушные деды гоняли бы вас по модели OSI.

Вариант Б ближе к истине, просто потому что сайт на HTTP  браузер сейчас просто не откроет, а выведет предупреждение. Например, в том же Google Chrome такие ресурсы помечаются небезопасными аж с 2020 года (!). И если речь идет про API, то для прода это также уже недопустимо. Понимаете, насколько уже не актуален данный вопрос?

Так что услышав такой вопрос, лучше уточнить, почему интервьюер об этом спрашивает.

P.S. Про отличия кратко ниже.

Протоколы HTTP и HTTPS используются для передачи данных в интернете, они отличаются уровнем безопасности:
— HTTPS использует шифрование для защиты передаваемой информации, обычно с помощью протокола SSL/TLS, что обеспечивает конфиденциальность и защиту данных от перехвата;

— протокол HTTP передает данные в открытом виде (что делает их уязвимыми для перехвата и модификации).

Т.е., HTTPS — это тот же HTTP, но с добавленными методами шифрования данных и проверки безопасности.

Встретить сейчас сайт на HTTP довольно сложно — им нет доверия со стороны поисковиков и браузеров.
🔥15🗿51👍1🤔1👾1
#️⃣ Про нумерацию версий API

Версия — это последовательность цифр, которая определяет поведение API. Идеально, когда версионирование следует схеме семантического версионирования (SemVer).

Формат версии: МАЖОРНАЯ.МИНОРНАЯ.ПАТЧ
Например: 2.3.2

Мажорная (первая цифра) — увеличивается при обратно несовместимых изменениях, которые могут сломать старые интеграции
Пример: удалено поле или добавлено новое обязательное поле

Минорная (вторая цифра) — увеличивается при добавлении новой функциональности с сохранением обратной совместимости
Пример: появилось новое необязательное поле

Патч (третья цифра) — увеличивается для исправления ошибок, не влияющих на интерфейс
Пример: исправлена ошибка валидации или опечатка в документации

🤨 А что такое v1 и v2 в адресе API?

В URL часто указывают только мажорную версию — это называется «версионирование через URI».

Пример:
https://api.test.com/v1/customers/
https://api.test.com/v2/customers/
Это позволяет клиентам подключаться к конкретной мажорной версии и не ломать интеграции при глобальных обновлениях.

Важные моменты

Переход на новую мажорную версию (v1 → v2) требует доработок в вашем коде
Минорные версии и патчи обычно не отражаются в URL — их можно увидеть в документации API
Хорошая практика — явно указывать актуальную версию и помечать устаревшие версии как deprecated

🍀 Наглядный пример изменений между версиями

v1:
GET /v1/customer

{
  "id": 123,
  "name": "Тест Тестович"
}


v2:
GET /v2/customer

{
  "id": 123,
  "first_name": "Тест",
  "last_name": "Тестович"
}


В v2 мажорная версия изменилась, так как структура ответа несовместима с v1 — вместо name появились first_name и last_name.
Please open Telegram to view this post
VIEW IN TELEGRAM
110👍5🔥1
🖥 Шаблон промта для создания sequence-диаграмм

Ты — опытный software architect и аналитик. 
1. Контекст проекта:
*   Название системы/сервиса: [Краткое название вашего сервиса, например, "Сервис рекомендации книг"]
*   Основная цель системы: [Одно-два предложения о том, что делает система, например, "Предоставляет персонализированные рекомендации книг на основе истории чтения пользователя".]
*   Для кого диаграмма: [Я/команда разработчиков/менеджмент] — Уровень детализации должен быть [техническим/обзорным].

2. Участники процесса (Actors & Components):
*   Инициатор (Actor): [Кто начинает процесс? Например: Пользователь, Внешняя система, Администратор]
*   Основные компоненты системы: [Перечислите ключевые внутренние модули, например: Frontend, Backend API, Auth Service, Database, Search Service]
*   Внешние сервисы/API: [Перечислите сторонние системы, с которыми происходит взаимодействие, например: Stripe API, Google Maps API, Email Service]

3. Ключевой сценарий для диаграммы:
*   Название сценария: [Дайте сценарию название, например: "Успешное оформление заказа", "Поиск и фильтрация товаров"]
*   Пошаговое описание основного сценария:
    1.  [Шаг 1, например: Пользователь вводит данные для поиска и нажимает "Найти".]
    2.  [Шаг 2, например: Frontend отправляет запрос на Backend API.]
    3.  [Шаг 3, например: Backend API проверяет авторизацию, обращаясь к Auth Service.]
    4.  [Шаг 4, например: Backend API выполняет запрос к Database.]
    5.  [Шаг 5, например: Backend API обогащает данные, обращаясь к Внешнему API.]
    6.  [Шаг 6, например: Backend API возвращает обработанные данные на Frontend.]
    7.  [Шаг 7, например: Frontend отображает результат пользователю.]

4. Альтернативные потоки и обработка ошибок:
*   Что должно произойти в случае ошибки? [Опишите хотя бы один альтернативный сценарий, например: "Если товара нет в наличии", "Если платеж не прошел", "Если внешний API недоступен".]
*   Логика повторов (retry): [Нужно ли показывать повторные попытки запросов? Да/Нет]
*   Таймауты: [Важно ли отображать таймауты на диаграмме? Да/Нет]

5. Требования к выходной диаграмме:
*   Формат: [Mermaid JS / PlantUML / Текстное описание для ручного рисования] — предпочтительно Mermaid JS.
*   Уровень детализации: [Укажите, какие детали важно включить: HTTP-методы (GET/POST), названия конкретных эндпоинтов (/api/v1/order), формат данных (JSON), коды ответов (200, 404, 500).]
*   Особые пожелания: [Например: "Покажите параллельные запросы", "Используйте группирующие блоки (alt/opt) для условной логики", "Не показывать взаимодействие с кешем".]

---

Пожалуйста, проанализируй описание выше и создай sequence-диаграмму, которая будет полезна для документирования и проектирования системы.

Шаблон промта можно заполнить самостоятельно, а можно — целиком или отдельные пункты отдать на откуп ИИ. Пример использования и диаграмму можно посмотреть тут.

⚫️Бизнес-анализ & IT
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤‍🔥152
⌨️Пример промта и диаграммы, составленных при помощи шаблона

В качестве примера взяла создание сервиса по поиску научных публикаций в области психологии. Админу было лениво самой заполнять шаблон, поэтому попросила заполнить шаблон дипсика на основании моих вводных (и поплатилась за лень несколькими попытками доведения сценария и архитектуры до MVP). Также можно прогонять через ИИ такое описание на предмет поиска несоответствий, ошибок в логике или для оптимизации архитектуры.

Для корпоративных целей используйте инстументы, разрешенные ИБ вашей компании.

Заполненный шаблон для сервиса поиска научных исследований:


1. Контекст проекта:

· Название системы/сервиса: PsychoSearch
· Основная цель системы: Сервис для поиска и предоставления списка научных исследований в области психологии по заданной теме в едином формате "дата — название — авторы".
· Для кого диаграмма: Я/команда разработчиков — Уровень детализации должен быть техническим, но минимально необходимым для MVP.

2. Участники процесса (Actors & Components):

· Инициатор (Actor): Исследователь (Пользователь)
· Основные компоненты системы: Web Frontend, Backend API, Database (для кэширования)
· Внешние сервисы/API: PubMed API, PsycINFO API

3. Ключевой сценарий для диаграммы:

· Название сценария: Успешный поиск статей по теме с кэшированием
· Пошаговое описание основного сценария:
  1. Исследователь вводит тему исследования в поисковую строку Frontend и нажимает "Найти"
  2. Frontend отправляет POST запрос с поисковым запросом на Backend API (/api/search)
  3. Backend API проверяет наличие результатов в кэше (Database)
  4. Если результатов в кэше нет, Backend API параллельно отправляет запросы к PubMed API и PsycINFO API
  5. Внешние API возвращают результаты в своих форматах JSON
  6. Backend API обрабатывает данные: объединяет результаты, убирает дубликаты, форматирует даты и авторов
  7. Backend API сохраняет обработанные результаты в кэш (Database)
  8. Backend API возвращает отформатированный список статей на Frontend
  9. Frontend отображает результаты пользователю

4. Альтернативные потоки и обработка ошибок:

· Что должно произойти в случае ошибки? Если один из внешних API недоступен, система использует данные только от работающего API. Если оба API недоступны, но есть закэшированные данные - использует их.
· Логика повторов (retry): Нет, не показывать повторные попытки для упрощения
· Таймауты: Нет, не отображать таймауты на диаграмме

5. Требования к выходной диаграмме:

· Формат: Mermaid JS
· Уровень детализации: Включить основные HTTP-методы, показать проверку кэша и параллельные запросы к API
· Особые пожелания: Показать альтернативную ветку когда данные есть в кэше, акцент на простоте архитектуры
⚫️Бизнес-анализ & IT
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍2😍2
💬 Промт, который превращает описание задачи в SQL-запрос

Если продакт любит просить вас посчитать DAU/MAU, но ресурсы для дашборда не выделяет, попробуйте вот такой пример промта для LLM, чтобы модель автоматически превращала текстовое описание задачи в SQL-запрос. Теоретически этому можно обучить и самого продакта 😉.

💡Пример промта для LLM (ChatGPT и др.):


Ты — senior data-инженер. Напиши корректный и оптимальный SQL-запрос для ClickHouse/PostgreSQL по описанию ниже.

Структура данных:
- Таблица: `events`
- Поля: `event_date` (DATE), `user_id` (INT), `product_id` (STRING)

Задача:
«Нужно посчитать DAU (ежедневное количество уникальных пользователей) по каждому продукту за октябрь 2025 года»

Требования к результату:
- Вывести столбцы: date, product_id, dau
- Запрос должен быть эффективным


Результат (пример для ClickHouse):


SELECT
event_date,
product_id,
uniq(user_id) AS dau -- для PostgreSQL: COUNT(DISTINCT user_id)
FROM events
WHERE event_date BETWEEN '2025-10-01' AND '2025-10-31'
GROUP BY event_date, product_id
ORDER BY event_date, product_id;
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥64
Всем привет!

По просьбам дублирую ссылку на наш чат для размещения вакансий IT Аналитиков (Business/System/Data analysts), а так же Владельцев и Менеджеров продукта (Product Owners, Product Managers) ➡️ @bam_job (резюме тоже можно размещать)

Перед размещением резюме/вакансии, пожалуйста, ознакомьтесь с правилами 🙏
Please open Telegram to view this post
VIEW IN TELEGRAM
👏32
🤓 Как нанимают fullstack-аналитиков: инсайты от работодателя

Всем привет! Наткнулась на статью про подбор аналитиков со стороны работодателя.

Автор статьи подробно описывает:
- этапы отбора кандидатов;
- на что обращает внимание при просмотре резюме и на собеседовании;
- и делится готовым планом интервью на позицию Fullstack-аналитика.

Также в статье есть примеры «фильтров», по которым некоторые работодатели могут отсеивать резюме. Но не стоит воспринимать это как универсальное правило — это лишь одна точка зрения на большом и разнообразном рынке труда.

Статья может помочь тем, кто готовится к собеседованиям — будет полезно заглянуть в голову рекрутера.

📎 Читать статью на VC
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥63👏1😁1🤔1🌚1👨‍💻1
📖Один Swagger вместо сотни страниц Confluence: как в Рунити навели порядок в API-документации

Сложность: ★☆☆ | Время чтения: 9 мин | Автор: Маргарита Сорочинская, технический писатель отдела архитектуры в Рунити

Автор рассказывает об опыте описания API целиком в Swagger, без дублирования в Confluence, а также делится пошаговой инструкцией документирования и загрузки на Git.

📎 Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3
✏️Что такое диаграмма С4 и как ее нарисовать

В статье рассказывается:
- что представляет собой диаграмма С4;
- из каких компонентов состоит;
- а также приводится пример создания диаграммы.

📎 Читать статью
🔥62
📉Как мы превратили BI в полноценный корпоративный инструмент: дизайн-система, виджеты и self-service

Сложность: ★☆☆ | Время чтения: 8 мин | Автор: Вадим Крысин,  начальник отдела разработки решений для анализа данных в «Газпром ЦПС».

Автор рассказывает об опыте разработки BI-системы вместо того, чтобы каждый раз делать делать BI «под задачу».

📎 Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
👏32😁1
🤍ИИ не волшебная пилюля. Это долго, дорого и больно

Автор статьи, Алиса Анкушева, спикер СберУниверситета и консультант по технологиям компаний «Мегафон», Grow Food, «Самокат», рассказывает о том, почему внедрение ИИ ради халявы оборачивается миллионными убытками

🔗Читать статью на rb.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
3
🔍По горячем следам расследования в Лувре напомню базовый минимум нефункциональных требований к паролю.

Базовые ограничения:
— длина от 12 символов;
— буквы обоих регистров + цифры + спецсимволы;
— запрет паролей из словаря (password, 123456, qwerty, LOUVRE);
— запрет на использование данных пользователя (имя, email);
— двухфакторная аутентификация (по возможности).

Политика безопасности
— срок действия и периодическая смена пароля (правда, NIST рекомендует не мучать людей без причины);
— запрет на повторение N последних паролей;
— блокировка после M неудачных попыток входа;
— восстановление только через подтверждённые каналы.

Хранение и передача:
— хеширование с солью (bcrypt, Argon2 — выбор согласуем с ИБ);
— никакой передачи в открытом виде;
— только через HTTPS.

UX-бантики:
— индикатор надёжности в реальном времени;
— понятные комментарии ошибок (например, «минимальная длина пароля должна быть 12 символов», а не «неверный формат»);
— отображение/скрытие пароля при вводе.

Ну и не забываем согласовать с ИБ (обычно они в этом вопросе стремятся к роскошному максимуму, но бэклог не резиновый).
Please open Telegram to view this post
VIEW IN TELEGRAM
5👨‍💻5🔥3😁1
👀 Data Quality в масштабе Big Data: как мы построили систему контроля качества данных в Hadoop

В статье рассказывается то, как в Ozon Data Platform реализовали проверки качества данных в таблицах в HDFS

📎 Читать статью
2
Если хотели поиграться с trino iceberg и minio, тот вот репозиторий с docker compose настройками.

Можно провалиться в кишки таблицы iceberg на s3, ну и посмотреть на логику работы trino в ui.

Для развертывания трино необходим новый тип CPU, не везде может запуститься. Но в крайнем случае можно VPS арендовать на время 😉

https://github.com/ivanshamaev/trino-iceberg-minio

#trino #iceberg #minio
3🔥2
Оптимизация запросов в Trino

Наковырял из документации основные термины и понятия по Trino (плюс настройки из последней версии 478, которые могут пригодиться для оптимизации). Получился в некотором виде конспект.

https://ivan-shamaev.ru/trino-query-optimizer/

Также на днях вышел перевод книги Trino. Анализ больших данных.

Первая глава и оглавление доступны для просмотра

#trino #iceberg
🔥32