TGViewer
Channel Public Channel
Системный анализ | Ольга Пономарева

Системный анализ | Ольга Пономарева

@system_analyse

https://t.me/care_sa
Ольга Пономарева, старший системный аналитик с опытом более 8 лет

Выпустила более 2000 учеников, которые увеличили свой доход и прокачали скиллы

Найдите обучение для себя в школе Систем Аналист: https://systemanalyst.life
Subscribers
31.5K
Photos
3.5K
Videos
68
Links
1.3K

Showing posts older than #5115 · Back to latest

Older Posts 12 shown
Post #5114 3.72K
Системный анализ | Ольга Пономарева Вопрос с собеседования, который многих ставит в тупик 👇 Недавно один из наших экспертов проходил собеседование в одну компанию ретейл. Ему задали вопрос: «Какие изменения схемы обратно совместимы, а какие нет? Как организовать работу с новой версией схемы…
Этот ответ помог получить нашему эксперту оффер!

Несколько хороших ответов вчера было, но я хочу поделиться полным ответом, который дал эксперт на собеседовании:


1️⃣ Что такое обратная совместимость?
Изменения делятся на:
Минорные — добавили поле с default или сделали его optional. Старые консьюмеры просто игнорируют новое поле. Всё работает.
Мажорные — удалили поле, изменили тип или сделали обязательным то, что было опциональным. Консьюмеры падают. Это ломающее изменение

2️⃣ Что такое Schema Registry и как он помогает
В Kafka схема это часть контракта. Вместо того чтобы хранить схему в каждом сервисе, используют Schema Registry.
Это отдельный сервис, который:
- хранит все версии схем;
- проверяет совместимость новых версий со старыми;
- не даёт зарегистрировать схему, если она нарушает выбранную стратегию

3️⃣Стратегии совместимости (Backward / Forward / Full)
Настройка уровня топика определяет, что можно менять:
Backward — новая схема читает старые данные. Продюсер может обновиться первым, консьюмер — позже
Forward — старая схема читает новые данные. Консьюмер может обновиться первым
Full — и то и другое, но требования строже
None — можно ломать всё что угодно (но на практике так никто не делает)
Если вы пытаетесь зарегистрировать несовместимую схему — Schema Registry вернёт ошибку

Если возникли сомнения и проблемы при ответе на вопрос, то на курсе «Архитектура. База» мы работает с kafka и проектируем интеграционные взаимодействия с этим компонентом. Старт уже 7 сентября!
  • 🔥 10
  • ❤ 3
Post #5113 3.62K
Вопрос с собеседования, который многих ставит в тупик 👇

Недавно один из наших экспертов проходил собеседование в одну компанию ретейл. Ему задали вопрос:

«Какие изменения схемы обратно совместимы, а какие нет? Как организовать работу с новой версией схемы, если появились несовместимые изменения в Kafka?»


Как бы ответили вы? Пишите в комментариях
Post #5112 3.18K
Ранее рассказывали, что купили у Дениса Бескова профессиональный чат аналитиков

Одна из главных целей покупки — развивать в сообществе направление ИИ 🤖

😎 Мы хотим, чтобы аналитики не наблюдали за изменениями рынка в сторону ИИ, а разбирались в новых инструментах и учились применять их в работе. Потому что есть риск, что специалиста заменит не сам ИИ, а другой аналитик, который научился использовать его быстрее и эффективнее

Но когда мы зашли внутрь сообщества и начали разбираться с его структурой, появилась другая проблема...

😊 Чат существует с 2016 года. За десять лет там накопились тысячи обсуждений и полезных сообщений, подборок!

Можно было отправить старые чаты в архив и начать с чистого листа. Но участники рассказали, что периодически возвращаются к старым сообщениям и пытаются найти нужные разборы. Ключевое слово здесь — «пытаются» 😀

И тут две наши задачи сошлись в одну 😏

Мы решили с помощью ИИ разобрать архивы: найти темы, вопросы, решения и противоречия, сохранить ссылки на исходные сообщения и собрать всё в отдельную базу знаний на сайте с авторизацией.

❗️Так мы одновременно сохраним историю сообщества, сделаем её удобной для участников и покажем практическое применение ИИ на реальной задаче

Именно этот проект станет основой воркшопа по вайбкодингу

Вместе пройдём путь от сырого Telegram-архива до работающей базы знаний и сайта. А затем эту же механику можно будет применять к проектным чатам, документации, профессиональным каналам и материалам для подготовки к собеседованиям


➡️ Так что подробнее о воркшопе можете почитать тут. Но он точно стоит того, чтобы вы поучаствовали в нем!
  • ❤ 4
  • 🔥 1
Post #5111 3.18K
«Системный аналитик не должен выбирать архитектуру»

Звучит вполне логично. Архитектор проектирует систему, аналитик собирает требования и описывает их. Но на практике (!) аналитик часто оказывается человеком, который лучше всех знает, что именно должна делать система

Архитектор предлагает решение. А аналитик может спросить:
- А что будет, если пользователь отправит запрос дважды?
- Что произойдёт при недоступности внешнего сервиса?
- Какие данные должны быть согласованы между системами?
- Что изменится через полгода?

Почти всегда ответы на эти вопросы напрямую влияют на архитектуру. Поэтому вопрос не только в том, должен ли системный аналитик «выбирать архитектуру». Вопрос в другом:

Где заканчивается ответственность аналитика и начинается ответственность архитектора? 👀
Давайте в комментах похоливарим? У кого как на проектах? Считаете ли это правильным?
  • ❤ 4
Post #5110 3.24K

This post (sticker, poll or similar) has no web preview. Open in Telegram

  • 🔥 18
  • ❤ 5
Post #5108 3.34K
Самые частые ошибки в архитектурных решениях 🌚

Проверяем домашки учеников на курсе «Архитектура.База» и видим одни и те же паттерны. Кажется, что эти ошибки допускают все, кто начинает проектировать распределённые системы

Делимся тремя горячими:

1️⃣ Дублирование кодов ответа в теле
В ответе на запрос пишут ""code"": 200 и при этом в заголовках HTTP уже летит 200 OK. Зачем дублировать? Это лишний трафик, путаница, консистентность. Код ответа является метаданными, она живёт в заголовках HTTP. В теле достаточно возвращать только бизнес-данные и, если нужно, свой кастомный код для внутренней логики. А HTTP-статус уже говорит сам за себя.

2️⃣ Одна общая база данных на несколько сервисов
!!! Технически это не запрещено. В реальных проектах такое встречается. Но как только два сервиса начинают писать в одну базу, ты теряешь независимость. Изменение схемы одной таблицы тянет изменения во всех сервисах-соседях. И ещё вопрос: кто отвечает за миграции? Кто гарантирует целостность, если один сервис упадёт посреди транзакции? Такое решение требует жёстких договорённостей и сильной дисциплины в команде.

3️⃣ Брокер вместо синхронного запроса
Вместо того чтобы дёрнуть API и получить мгновенный ответ, ставят брокер сообщений. И получают усложнение инфраструктуры, задержки и головную боль с подтверждениями. Если тебе не нужна асинхронность, если клиент ждёт результат здесь и сейчас, брокер не нужен. Используйте синхронные вызовы там, где они уместны."


❗️Хочется отметить: само по себе решение редко бывает "плохим" или "хорошим". Вопрос в том, зачем вы его выбрали и какие последствия этого выбора понимаете. Именно это мы и разбираем на домашних работах!
  • ❤ 10
  • 🔥 2
Post #5107 3.34K
Системный анализ | Ольга Пономарева Сейчас снова проблемы с топливом — и приложение «ГдеБЕНЗ» опять как нельзя кстати Помните его историю? Создатель придумал сервис в самолёте, а после приземления завайбкодил его с помощью ИИ. И никакой команды разработки И мы тут подумали…: Наверняка среди…
Скинули много своих проектов, которые навайбкодили! А там правда есть на что посмотреть)

На след неделе сделаем их подборочку, выберем интересные ✌️
  • 😁 9
Post #5098 3.71K
В задаче обычно остаётся, что нужно сделать. В документации — как это должно работать. А всё обсуждение о том, почему команда выбрала именно такое решение, часто продолжает жить только в проектном чате

Через несколько месяцев появляется похожая задача — и начинается расследование: поиск по ключевым словам, просмотр старых сообщений и вопросы коллегам, которые, возможно, уже сами не помнят деталей

В карточках собрали, что точно стоит вытаскивать из переписки и фиксировать отдельно 👆

А теперь представьте, что всю историю проектного чата можно автоматически разобрать: найти темы, вопросы, решения и противоречия, а затем связать их с исходными сообщениями 👀

У вас важные решения переносят из чатов в документацию или всё остаётся в переписке?
Post #5097 3.41K
Реальный кейс, с которым работает один из экспертов нашей школы

Есть система1, которая для своей внутренней логики нуждается в данных из системы2.

Немного НФТ:
- объём данных -- 100 ГБ
- 30 млн записей, в каждой по 30 полей
- все данные лежат в одной таблице

Вопрос: как организовать передачу?

Какие варианты видите? Что предложите?


p.s. REST вообще не вариант. Если отправишь запрос с телом в 100 ГБ, твой REST API умрет мучительной смертью на первом же сетевом устройстве. Серверы не читают файлы "на лету" частями. Большинство REST-фреймворков пытаются загрузить весь payload в оперативную память (RAM), чтобы распарсить его в объект. 100 ГБ в RAM это фантастика. У тебя просто нет столько памяти. Сервер упадет с ошибкой Out Of Memory (OOM) раньше, чем ты получишь первый байт данных в контроллере
  • 💯 3
Post #5092 3.43K
Где на вашем проекте хранится правда? 👀

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

Но даже если забыть про конкретного коллегу, ситуация довольно знакомая:

— в задаче осталась первоначальная постановка;
— в документации описан согласованный вариант;
— в чате потом договорились всё поменять;
— на дейлике разработчик предложил ещё одно решение;
— а в коде в итоге реализовано что-то пятое.

Проходит несколько месяцев, к проекту подключается новый человек и задаёт простой вопрос: «А как это всё-таки должно работать?»

Тут начинается расследование: поиск по чатам, просмотр старых задач, вопросы разработчикам и попытка понять, какая из найденных версий была финальной.

Кажется, проблема не только в сложных коллегах. Если принятые решения и причины их появления нормально не зафиксированы, проект постепенно начинает жить на устных преданиях 😀

А где на вашем проекте хранится финальная версия решения?

Ниже сделаем опрос, но можете рассказывать в комментариях подробно, какой источник у вас считается главным, когда документация, задача и реальная реализация говорят разное 👇
  • ❤ 1
Post #5091 3.67K
Какой коллега — твой главный кошмар?

Мы, аналитики, общаемся со всеми: заказчики, разработчики, архитекторы, тестировщики и все, кто только есть в команде. Но со всеми ли легко находить общий язык?)

В нашем чате экспертов недавно был крик души. У одного аналитика в проекте есть разработчик, настоящий гений. Реально крутой профессионал, технически сильный. Но таких токсичных надо еще поискать. Он постоянно меняет постановку задач по-своему: переписывает структуру базы данных, правит контракты, внутреннюю логику метода может сделать по-другому. Сначала аналитики пытались актуализировать документацию постфактум, но это оказалось слишком долго и сложно. Решили внедрить процесс техревью с его участием. Он приходил недовольный, но хотя бы присутствовал. А недавно его перестали видеть даже на техревью, услышать его можно только на дейликах. Как быть? Что делать? Для команды это пока загадка


А у вас есть коллеги, от которых глаз начинает дергаться?

И отдельный вопрос: где вы фиксируете финальное решение, если в процессе разработки всё поменялось?
  • ❤ 4
  • 💯 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →