Анализ, коты, цветы и Катя – Telegram
Анализ, коты, цветы и Катя
458 subscribers
277 photos
11 files
158 links
Пишу о работе системным аналитиком в IT: кейсы, ошибки, рост и жизнь по ту сторону процессов.
Автор — @Pacifica_cathul, аналитик, ментор и человек, который всё это пережил лично.
Download Telegram
📚 Книга: "Изучаем DDD — предметно-ориентированное проектирование"
👤 Автор: Влад Хононов

После каждого воркшопа по ES я делюсь списком полезной литературы — каждый раз в нём есть эта книга. Потому что если вам нужно кратко, быстро и понятно разобраться, что такое EventStorming, —считаю это лучшая книга. 💛 Глава 12 — до сих пор мой помощник и друг.

Хотя, конечно, сама книга не про EventStorming. Просто EventStorming часто используют команды, которые стараются в DDD.

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

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

В книге хорошо раскрыты как стратегии, так и тактики проектирования ИС. Есть отличные примеры, внимание уделено архитектурным шаблонам, работе с данными, и, конечно, микросервисам — как одному из архитектурных подходов, к которому DDD хорошо применяется (но, важно, не единственному).

📈 По уровню — несмотря на простоту подачи, я бы рекомендовала её для мидлов и выше.
Интересный момент: думаю, что аналитикам местами будет меньше открытий, чем разработчикам, ведь многие из нас интуитивно приходят к DDD-подходу в своей практике.

💬Кто читал, делитесь как вам?

#DDD #EventStorming #СистемныйАнализ
7🔥5
EventStorming или Event Storming? 🤔

Подготовка отпускает, и наконец появилось время подумать о мелочах.
И вот я зависла: нужен ли пробел в названии метода?

Впервые я увидела слитное написание в одной хорошей книге. На сайте метода Альберта Брандолини — тоже слитно. И даже в его книге.

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

Так как же правильно?

💬 ЧатGPT на этот вопрос повёл себя интересно: уверял, что сам автор задумал написание с пробелом. Ха-ха, не на ту напоролся! Я так давно не практиковала английский, как при чтении книги Брандолини 😅

Мой вывод: оба варианта читаются и понятны.
Но лично мне визуально больше нравится слитное написание — EventStorming.

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

#eventstorming #systemdesign
4👍3🔥2
🧡 Отзыв на свой же воркшоп. Да, так можно — я себе разрешила.

В эту пятницу при огромной поддержке NextWay прошёл мой первый коммерческий воркшоп по EventStorming.

📌 Для кого он был?📌
Я везде писала, что он — для начинающих специалистов. И с точки зрения “влететь и что-то вынести” это правда. Но уже теперь я считаю, что лучше всего он подойдёт мидлам и выше. Только тогда можно осмыслить полученный опыт, сразу понять, где метод работает, а где — не поможет вовсе.
По ролям: Архитекторы (да, я замахнулась), системные и бизнес-аналитики, продукты, продвинутые разработчики, которые уже поняли, что чистый код не решает всех проблем.

👉🏻 Организация 👈🏻
С площадкой, сайтом, чатами и рассылками помогали NextWay — поэтому здесь все было на высоте. Но были моменты, когда мне самой нужно было что-то оперативно сделать (например, поддержать атмосферу, ответить “привет” в чате), а сил — просто не было. Подготовка, работа, волнение.

А еще помните, я ворчала, что Кейс клуб не уложился в тайминг? Вот. Я тоже не уложилась 😅
Слегка оправдываю себя тем, что было очень живо и интересно — вовлечённость высокая. Но ведь провал, да?

🧩 Формат и содержание
Мы прошли по всем основным этапам EventStorming, поговорили немного про DDD и микросервисы, обсудили границы сервисов.
Я постаралась передать участникам ту самую “магическую” часть ES: как с помощью метода можно увидеть систему глазами всех участников, договориться о сути — и уже на этом строить архитектуру, а не на догадках.

По факту это была почти полноценная сессия, которую в жизни проводили бы дня два. Мы уложились в 4,5.

Кому рекомендую:

Тем, у кого в команде проблемы с коммуникацией. Крайности: либо говорите слишком много и неэффективно, либо вообще не общаетесь.
Тем, кто слышал про ES и его популярность за рубежом и хочет понять: "А нам это вообще надо?"
Тем, кто хочет проектировать по DDD.
Тем, кто уже чувствует, как бизнес-логика превращается в чёрный ящик, и хочет это решить до того, как "Аленушка разлила масло".

Но в целом, вышло очень круто! 4,5 часа действительно летели.

Этого всего не случилось без: Саши Камзеевой (канал "Аналитик на всю голову") и известного Андрея Буракова (канал Yet Another Analyst) .
Огромная благодарность самим участникам, дополнительная тем, кто спорил, обсуждал, задавал вопросы — вы сделали этот воркшоп живым и насыщенным.

Особое спасибо Жене и Игорю — за помощь в доводке кейса. Да, сначала они почти довели меня до инфаркта, но теперь он идеальный

🔁 Будут ли повторы?
Пока не знаю. Собираем отзывы и смотрим на другие метрики. Но если будет — вы узнаете первыми.

#EventStorming #СистемныйАналитик #ITспикер
🔥96🗿2
В продолжения мыслей про DDD и аналитиков, недавно Бодров Иннокентий опубликовал статью, которая практически так и называется "Domain-Driven Design: зачем он нужен аналитику и как его применять на практике".



Хабр, конечно, радует срачем диалогом в комментариях. Но разве это нас остановит?

#DDD #СистемныйАнализ #ПроектированиеИТсистем
🔥5👍1
🎉Сегодня у меня день рождения 🎉

И это так приятно "взрослеть". Решила по такому поводу встать в 6 утра и накидать рабочие ИТ-лайфхаки, которые появились с опытом.
Получилось иронично-честно.

1) Я не хожу на встречи, куда зовут “просто чтобы была”.

2) У меня есть шаблоны, как объяснить требования джуну, а как сеньору.

3) Я увеличиваю оценки сроков Х2 для себя, Х3 для коллег. Это почти всегда спасает.

4) Красиво назвать очередь или endpoint, конечно, приятно. Но если обсуждение длится больше 15 минут, вы идёте не туда. Тогда я разрешаю себе побыть диктатором и принять решение: «Будет как я сказала».

5) Мои BPMN никто не читает. Но если написать там дичь — заметят.

6) Если в коллективе нет сильных коллег, у которых можно учиться нужно менять работу.

7) Но если сильный коллега это ты, и тебя слушают… ну, можно немного задержаться.

8) «Что бы что?» — фраза, которая должна была пугать заказчиков. Но кажется теперь чаще пугает моих друзей и родных.

9) Для случаев, когда хочется удариться головой об стол, у меня есть специальная подушка.

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

11) Не стесняюсь сказать: «Не ставьте созвоны после 16:00 — я не успеваю на пляж».

12) Завела телеграм-канал о работе, чтобы поныть на работу.

💬 С кем совпали?

Для тех кто хочет поздравить, сейчас, лучший подарок для меня репост и рекомендация моего канала вашим коллегам)
Чтобы мне не пришлось заводить ещё один канал, где я ною о своём канале, в котором я ною о работе. 😅

Уверена и у вас есть такие списки, делитесь самыми неочевидными и смешными пунктами в комментариях.
36🔥8👍5
🤪Всё сделала правильно. Но чувство, что я дурак🤪

Была у меня недавно такая ситуация: менеджеры попросили предупреждать заранее, если есть риск выхода из сроков. Обещали помочь и учитывать. А у меня как раз такой риск намечался — из-за сдвинувшихся сроков.

Как хорошая девочка — я предупредила. И как в анекдотах в ответ получила совет уровня "Не выходите из сроков", я персонально — Фи, вся команда — нагоняй, в календаре появилось несколько новых встреч "разбор полётов". Но мы с командой молодцы: активировались и справились. 🚀

И вот я сейчас сижу и не понимаю — какие выводы из этого сделать?

🤫 Не предупреждать о рисках, чтобы не оказаться в дураках?
😏 Игнорировать реакции менеджеров, если они всё равно не помогают процессу?
😝 Принять как неизбежное зло?

Странно. Вроде всё сделала правильно, а осадочек остался...

Здесь без ваших мыслей и 💙 никак!
Что думаете? Как вы поступаете в таких случаях?

В текущей команде такая ситуация произошла впервые — может, поэтому так зацепила. Обычно я всегда чувствовала, что "тылы прикрыты".

#SystemAnalyst #СистемныйАналитик #ИТБоль #РабочиеИстории #Рефлексия
Please open Telegram to view this post
VIEW IN TELEGRAM
15🤬4
🐰 Самый простой способ понять работу RabbitMQ 🐰

В сообществе аналитиков довольно известен этот визуализатор работы Kafka. Я узнала о нём из блога Системный сдвиг, а затем оценила классную рекомендацию по работе с ним от Yet Another Analyst.

Но поскольку я провожу уроки именно по RabbitMQ, стало интересно: А есть ли похожая визуализация RabbitMQ для тех, хочет быстро просто “увидеть”, как оно работает?

Оказывается, есть! И даже несколько:
🔗 TryRabbitMQ
🔗 RabbitMQ Visualizer

Я советую первый. Как с ним работать? Часть 1.


🚦 0. Добавьте producer и queue. Попробуйте соединить их напрямую. Добавьте exchange, соедините всё по схеме: producer → exchange → queue. Что то должно начинать получаться, потому что еxchange — обязательный этап маршрута в RabbitMQ. У связи exchange и queue появился binding — ключевой элемент понимания маршрутизации. Добавьте consumer. Попробуйте соединить consumer с exchange. Что-то снова будет не хватать. Но правильный порядок близок: producer → exchange → queue → consumer.

💥 1. Выберите для exchange тип fanout. Создайте еще 2 очереди и 2 потребителя и привяжите их к exchange. Отправьте сообщение без routing key. Куда оно ушло? Установите разные binding key и отправьте сообщения со случайными с routing key. Что происходит? Удалите один binding. Получает ли эта очередь сообщение? Здесь можно еще поэкспериментировать с ключами, Но основную особенность обменника типа fanout вы уже должны нащупать.

Это первые важные шаги для знакомства с базовой схемой кролика и типом обменника Fanout. Сохраняйте, пробуйте.

В следующем посте расскажу про упражнения для схем с Direct и Topic exchange — не пропустите!

#RabbitMQ #ОчередиСообщений #MessageBroker #SystemAnalyst
7🔥5👍3
🐰 Самый простой способ понять работу RabbitMQ — Часть 2 🐰
🧵 Первая часть

В первой части я поделилась двумя визуализаторами для RabbitMQ:
🔗 TryRabbitMQ
🔗 RabbitMQ Visualizer
И простыми упражнениями, чтобы разобраться с типом обменника fanout.

Теперь давайте посмотрим на обменники типа Direct и Topic.

1) Очистим поле и снова создадим схему: producer → exchange → 3 очереди → 3 consumer'а. Тип обменника — direct. Для binding key укажем key1, key2, key3. Теперь отправим сообщение с routing key = key. Куда попало сообщение? Затем поочерёдно отправим сообщения с ключами key1, key2, key3. Попробуйте также: key1_1, key1.*, key1.#. Если всё сделали правильно — должны появиться мысли про "полное соответствие".

2) Меняем тип обменника на topic. Для binding key задаём: *.low.* , #.spb , *.high.#
Сразу подсказка: . — разделяет ключи, * — заменяет ровно одно слово, # — заменяет 0 и более слов. Пробуем отправлять: key1.low.smr, key1.middle.spb, key2.high.krd, low.smr, key, high и другие. Для полноты картины можно поэкспериментировать с регистром и пробелами.

3) RabbitMQ для практиков: создаём схему с несколькими exchange'ами, соединяем их как на картинке. Пробуем задавать разные типы для обменников, подбирать ключи и очереди, отправлять сообщения с разными routing key. И просто наблюдать, как идёт сообщение. На этом этапе особенно важен подход "А что если?.." и ваша фантазия.

💡 Еще в TryRabbitMQ можно поэкспериментировать с периодичностью отправки и анонимными очередями. Но, на мой взгляд, в визуализаторе эти функции реализованы довольно скучно и не слишком информативно.

📌 В последней части (на следующей неделе) расскажу, что нельзя увидеть в визуализаторе, куда копать тем, кто хочет больше.

#RabbitMQ #ОчередиСообщений #MessageBroker #SystemAnalyst
👍5🔥4
Как профдеформация и ChatGPT чуть не спасли нам деньги сорвали нам сделку

#выходнойконтент

У нас в семье сейчас важный этап: мы покупаем жильё. Смотрели варианты в разных городах, общались с соседями, ездили на показы. И вот, наконец, тот самый момент: екнуло «хотим». Решили выходить на сделку.

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

Как думаете, что могло пойти не так?

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

Там уже мы убеждали, что правда просто хотим квартиру. Дожили.

Моя внутренняя зануда, конечно, уверена: это нормально интересоваться экологическими и геодезическими изысканиями, стоимостью «камер и благоустройства», материалом окон и расположением мусорки (а будет ли сортировка?). А все договора как минимум прогонять через ИИ.

Мой внутренний юморист смеётся: аналитик на работе — аналитик по жизни.

А как у вас проявляется деформация?

📌 Если нужно могу поделиться чек-листом вопросов для покупки жилья. Дайте знать.

#аналитик #недвижимость #chatgpt
🔥12😁103👍3🤔2🗿1
🐰 Уже не самый простой способ понять RabbitMQ. Часть 3 🐰
Часть 1
Часть 2

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

Визуализатор не расскажет: о последнем типе обменников Headers, как устроены dead-letter очереди, какие бывают свойства сообщений, как реализуются режимы доставки at most once, at least once и почему exactly once в RabbitMQ невозможен, что такое федерации, как обеспечивается идемпотентность.

Что делать? Как разобраться и попрактиковаться?

На самом деле, если вы умеете учиться самостоятельно, вам хватит всего двух ресурсов:

1️⃣ Официальный сайт RabbitMQ — там действительно есть всё необходимое: от теории до практики.
2️⃣ CloudAMQP — здесь можно бесплатно развернуть виртуальный брокер и потренироваться с реальным интерфейсом и настройками.

Лично для меня изучение RabbitMQ стало настоящим увлекательным приключением — надеюсь, вам тоже будет интересно!

#rabbitmq #брокеры #очереди #системныйаналитик #интеграции
🔥32👍1
И давайте в заключение темы RabbitMQ проверим ваши знания.

Что обязательно нужно, чтобы сообщение попало из producer в очередь?
Anonymous Quiz
7%
Выбрать exchange типа fanout
7%
Указать routing key
69%
Настроить exchange и binding к очереди
17%
Привязать consumer
В topic-exchange сработает ли routingKey = logs.error.db при bindingKey = logs.*?
Anonymous Quiz
13%
Да
75%
Нет
13%
Только если включить multi-routing
0%
Только если настроено wildcard-поведение вручную
Можно ли привязать одну очередь к нескольким exchange?
Anonymous Quiz
50%
Да
31%
Нет)
0%
Только если exchange одного типа
19%
Только в версии RabbitMQ 4.0+