Analyst Boost. Никита Харичкин – Telegram
Analyst Boost. Никита Харичкин
5.73K subscribers
41 photos
5 videos
4 files
97 links
Лучшие практики, опыт, инструменты, статьи и мысли на тему как системного и бизнес-анализа, так и карьеры в целом.
Запись на курс AnalystBoost: @avtolicsipu
Download Telegram
Analyst Boost. Никита Харичкин
📟 Хакатоны и кейс-чемпионаты 📟 🎖 Хакерские марафоны... ... но без хакеров и бега: это соревнования по созданию прототипа продукта в сверхсжатые сроки, от нескольких недель до всего пары суток. Ориентированы на выявление потребностей заказчика, исследование…
🥷 Разбор отборочного этапа хакатона 🥷

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

🤖 От разминочных "Как сделать POST для создания заказа идемпотентным" и "Какое значение имеет поле userId в payload следующего JSON Web Token (JWT) eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJDLTNQTyJ9.kAtduYyxBxdNSdwPaJ80mYjp58edOi
r1J7_bCHCYFHc
" до интерпретации представленных диаграмм и ещё вот такой красоты (попробуйте ответить, а уже затем проверьте себя):

Приложение для работы с биржей было решено разделить на несколько микросервисов, один из которых будет выделен для работы только с криптовалютой. Какие утверждения про будущее приложение ошибочны?

• Приложению больше не требуется авторизация внешних вызовов, потому что технология блокчейн уже имеет достаточно высокую степень защищенности
• Генерация уникального traceId на уровне каждого приложения позволит однозначно идентифицировать ошибочные вызовы именно нашего приложения при разборе ошибок в системе трассировки Jaeger
• Для работы в режиме реального времени будет достаточно применения Firebase
• Использование мультирегиональности в Firebase позволит быстро «раскатить» приложение по всей стране и сохранить DeFi структуру исходного приложения
• Для хранения «холодных» данных достаточно использовать S3
• Потребуется новый вид тестирования E2E, которого не может быть в монолитном приложении
• Упростится масштабирование приложения и увеличится устойчивость к сбоям
• Перенос получения NPE для NFT повысит доступность нового приложения
• Использование стеганографии позволит уменьшить вероятность утечки данных больше, чем аутентификация

#артефакты | Analyst Boost
🔥21
🛫 Телега полезностей или воз инфошума? 🛬

🛩 Telegram продолжает работать над конверсией в подписку, посему недавно он обогатился функцией публичных папок. Пользователь собирает чаты в связку, создаётся постоянная ссылка на подборку, составитель делится детищем и оставляет за собой право управления составом папки. В бесплатном режиме количество и личных, и публичных папок ограничено. В результате, пока Павел Валерьевич растит метрики, читатели волнообразно тонут от притока новых каналов, а их авторы наблюдают приливы (на руку внутренней рекламе) и отливы (не понравится «живому» рекламодателю) подписчиков. Делюсь с вами такой организацией чатов, которая заставит работать непрочитки на вас, а не против.

🛰 Заводим архив, сразу жмём "спрятать из ленты". Добавляем в архив все большие группы, которые вы почитываете, но срочное реагирование в них не требуется, и каналы, контент которых вам важно отсмотреть хотя бы раз в сутки. Если страдаете от переполненной лички, то по тому же принципу смело добавляйте в архив несрочных собеседников. Отключаем уведомления в этих чатах, даже если считаете, что push'и и счётчик непрочитанных вам не мешают. Дорофеев вот уверен, что мешают. Не волнуйтесь, как только вам ответят или тегнут в группе, она выпрыгнет из архива в ленту чатов.

🛸 Заводим вторую симку (например, e-sim без абон. платы), на неё заводим новый пустой тг-аккаунт, добавляем его в приложении — теперь между ними легко переключаться. Создаём на основной учётке папку не вошедших в категории выше чатов и делимся ей со своим анон-аккаунтом.

🚁 Заводим локальные папки, даём максимально ёмкие названия либо назначаем эмодзи служить смысловыми пиктограммами, как сделал я. Упорядочиваем папки сначала по частоте обращения, затем по важности. Закрепляем самые частотные чаты внутри папок, включая базовую "Все чаты". Разбор стоит провести для обоих аккаунтов, ведь в его процессе приходит понимание, от каких сущностей пора отписаться. Видите счётчик за сотню непрочиток в канале — смело сокращайте свою ленту.

✈️ @Analyst_Boost был включен в одну из таких подборок: Каналы Физтехов. Рекомендую ознакомиться с перечнем осознанно: добавить папку на второй аккаунт, далее пройтись по каждому каналу и прочитать интро из закрепа + два свежих поста — если суть была ясна, и в голове не возникло желания отвлечься — смело оставляйте канал. Если иначе — будет небесполезно отписаться. С некоторыми авторами я знаком лично, но многих открыл для себя впервые, за что спасибо организатору — Денису Айвазову. Пишите в комментариях, какими из орг. практик для телеги уже пользуетесь и делитесь своими.

#лайфхаки | Analyst Boost
🔥15🤩2
Никита_Харичкин_@Analyst_Boost_PlantUML_с_нуля_до_гуру_Конференция.pdf
2.4 MB
🏭 PlantUML с нуля до гуру: Учимся «кодить» sequence-диаграммы 🏭

В общий доступ выложили мой мастер-класс с конференции Flow'22: YouTube
Прикладываю презентацию, весь контент в ней копируемый, пользуйтесь на здоровье.
Вопросы по псевдоязыку мы активно разбираем в tg-группе, заходите, всем рады: @plant_uml

🏗 В качестве бонуса небольшой лайфхак:
вместо activate и deactivate можно использовать ++ и --. Когда активация разделена блоками альтернатив, бывает удобно писать полноценный activate, чтобы видеть начало и конец "полоски" и сворачивать блок кода в IDE или наглядно присваивать цвет.
Для кратких сценариев смело используйте ++ и --.
Копируемый код с комментариями и картинка в посте ниже.

#доклады | Analyst Boost
🔥29
Analyst Boost. Никита Харичкин
Никита_Харичкин_@Analyst_Boost_PlantUML_с_нуля_до_гуру_Конференция.pdf
@startuml plusplus_activation
autonumber 0
'из-за лишнего hidden шага приходится стартовать нумерацию с 0
actor Пользователь as user #LightCyan
participant "Приложение" as client #LemonChiffon
database "База Данных" as db
queue "Брокер" as b
'activate user
user -[hidden]-> user ++ #LightCyan: a
user -> client ++ #LemonChiffon: Активировать элемент\nуправления
'activate client
par
client -> b ++: Отправить запрос в очередь
'activate b
else
client -> db: Сохранить запрос в кэш
end
opt
user -> client --: Сделать скриншот
end
'deactivate user
alt #f0feed Операция успешна
b --> client: Передать ответ
client -> client: Отобразить сообщение
else #fff0f5 Истёк Timeout
client <-- b --: Передать код ошибки
end
'deactivate b
loop 2 раза
client -> db --: Сохранить лог ошибки
end
'deactivate client
@enduml

#лайфхаки | Analyst Boost
🔥21🤩3
🔥 Запускаем осенний поток 🔥

👨‍🎓 Сегодня ещё один наш выпускник порадовал меня добытым оффером. Сергей, мои поздравления! А я, в традиционной паузе между наборами, ещё немного доработал курс. Честно скажу, опасаюсь за доступность продуктов Atlassian, однако это лишь инструмент, что нашей практике вовсе не преграда.

🎯 Группа почти укомплектована, спасибо всем, кто ждал черёд с прошлого набора! У нас ещё осталась пара мест, так что пишите, контакт в закрепе.

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

🚀 Приходите сами, делитесь с заинтересованными знакомыми! Спешите успеть, начинаем с бесплатного вводного занятия уже 23 августа.

#объявления | Analyst Boost
🔥9🤩5
👣 Как в PlantUML выудить номер шага? 👣

В своих докладах я делился прекрасной функцией autonumber, которая сама нумерует шаги, сколько их не добавляй. Однако коллега в сообществе столкнулся с интересной потребностью: динамически высчитывать номер шага под конкретный интересующий его вызов.

🦶 Порассуждаем на примере. Допустим, у меня описана сложная и многокомпонентная интеграция, детали вызовов постоянно уточняются, добавляются новые шаги, какие-то упраздняются. Т.е. порядковый номер для конкретного интересующего нас вызова из A в B будет постоянно "скакать". Как же быть, если мы хотим далее ссылаться на тот самый вызов? Руками прописывать в ссылке номер шага? Тогда придётся постоянно следить, чтобы при обновлении диаграммы он был актуальным. Велика вероятность ошибки. Т.о. осознаём, что нам нужно динамически понимать, какой же номер сам plantUML присваивает важному вызову. Здесь я нашёл 3 способа:

1️⃣ Простой. Сохранять автономер в переменную
!$autonum = "%autonumber%"
И добавлять такую метку в каждый интересующий нас вызов (создаём аналог якоря в Confluence).
Ограничение в том, что тип параметра autonum останется string, и никаким %intval это не сконвертировать в int. Т.е. записывать значение в итератор не получится. Каждая операция i++ будет вызывать конкатенацию строк, а не сложение.

2️⃣ Явный. Создать функцию инкремента, чтобы итератор был целочисленным
!function $step($a)
!return $a + 1
!endfunction
В таком случае придётся вызывать её после каждого вызова, чтобы увеличивать самописный счётчик шагов. Можно делать это и без функции, напрямую:
!$i = $i + 1

3️⃣ Изящный. Создать и вызывать процедуру, которая номер шага и увеличит, и вернёт его значение
Тогда не придётся повторять инкремент в коде после каждого вызова:
!procedure $stepper($a)
$step($a)
!global $i = $i+1
!endprocedure

Полный код и диаграмма в посте ниже. Я был удивлён, что на форуме планта никто явно такие решения не предлагал, хотя вопрос возникал не раз. Если знаете ещё более наглядный или изящный способ — делитесь в комментариях.

#лайфхаки | Analyst Boost
🔥15🤩4
Analyst Boost. Никита Харичкин
👣 Как в PlantUML выудить номер шага? 👣 В своих докладах я делился прекрасной функцией autonumber, которая сама нумерует шаги, сколько их не добавляй. Однако коллега в сообществе столкнулся с интересной потребностью: динамически высчитывать номер шага под…
@startuml @Analyst_Boost autonumbers
autonumber
'Наш счётчик шагов $i
!$i = 0

== %autonumber% ==

!$AN = "%autonumber%"
a -> b: autonum: $AN
'Если записать в наш итератор значение autonum'а AN, то он
'станет string, и сложение сработает как конкатенация строк
!$i = $AN + 1
!$request_A = $AN
note left
i+1: $i
autonum: $request_A
endnote

== Function or ++ ==
!function $step($a)
!return $a + 1
!endfunction

!$i = 1
a -> b: autonum: $AN | Функция: $step($i)
!$i = $i + 1
a -> b: autonum: $AN | Функция: $step($i)
!$i = $step($i)
a -> b: autonum: $AN | Функция: $step($i)
!$i = $step($i)
!$request_B = $i
note left
i: $request_B
endnote

== Procedure ==
!procedure $stepper($a)
$step($a)
!global $i = $step($i)
!endprocedure

a -> b: autonum: $AN | Процедура: %invoke_procedure($stepper, $i)
a -> b: autonum: $AN | Процедура: %invoke_procedure($stepper, $i)
!$request_C = $i
note left
i: $request_C
endnote
@enduml

#лайфхаки | Analysst Boost
🔥12
🧑‍🎤 Конференция Analyst Days 16 🧑‍🎤

👩‍🎤
Опубликованы все доклады апреля 2023: Youtube playlist.
Презентации свежей 17й конференции: Dropbox.

👨‍🎤 Прежние записи AD:
см. в прошлом посте.

#доклады | Analyst Boost
🔥27🤩1
🎠 Diagram GPT by Eraser.io 🎠

Очередной и для нас долгожданный продукт поверх GPT — генератор диаграмм прямо из обычного человекочитаемого запроса. Ничего нового с точки зрения самой нейросети, но вот UX — прост и прекрасен, все нужные prompt'ы зашиты под капотом.

🐎 Преимущества
• Порог входа для генерации диаграмм ещё ниже, и это прекрасно.
• Можно выбрать тип желаемой диаграммы или взять запрос из подготовленного preset'а.
• После регистрации можно продолжить работу с диаграммой: редактировать (или скопировать себе) PlantUML код и добавлять к диаграмме любые другие графические примитивы: puml-часть воспринимается как единый объект на draw-io-подобной рабочей доске.

🏇 Недостатки
• В отличие от интерфейса ChatGPT, сервис не воспринимает последовательных запросов на улучшение созданного артефакта (воспроизвести мем "сделай богаче, затем ещё и ещё богаче" не выйдет), поэтому исходный запрос придётся целиком перезаписывать.
• GPT всё ещё не совершенен для наших задач, поэтому иногда генерируются лишние акторы, конструкции альтернатив строятся некорректно, а запросы не идемпотентны.
• Цветовой дифференциации мне добиться не удалось, думаю, это вшитая в prompt настройка. Eraser либо игнорирует меня, либо отображает пустую схему. Кто сможет хакнуть забавы ради — пишите в комментарии, как.
• В деавторизованной зоне доступно всего 5 запросов, но это легко обходится режимом инкогнито

🐴 В посте ниже прикрепляю GIF real-time создания диаграммы, интерфейс сервиса и пару полученных вариантов.

🤗 P.S. с 2000 органических подписчиков меня! Всем больше спасибо за доверие
.

#инструменты | Analyst Boost
🔥18🤩1
📆 16 декабря, 19:00 (Мск)

📺 Никита Харичкин (тимлид, автор курса) и Мария Кащеева (продакт в инвестбанкинге, выросшая из СА) проведут эфир на популярную, но мало освещённую тему:

🇩🇪 Системный анализ в немецких компаниях:
от отличий рынка аналитиков до особенностей всего ИТ в Германии

🎤 Обсудим:
• Как зовутся и где обитают аналитики
• В чём сложность поиска работы в Германии
• Как обязанности аналитика распределяются на смежные роли
И ответим на ваши вопросы! Присылайте их по форме регистрации до эфира или задавайте живьём во время — каждому будем рады.

▶️ < Записаться на вебинар >
Подписаться на канал Марии: MariaKas|Жизнь в Германии|Продакт|Мама

Прийти на эфир в tg-канале Никиты Analyst Boost
🔥17😁1
Live stream scheduled for
Analyst Boost. Никита Харичкин
📆 16 декабря, 19:00 (Мск) 📺 Никита Харичкин (тимлид, автор курса) и Мария Кащеева (продакт в инвестбанкинге, выросшая из СА) проведут эфир на популярную, но мало освещённую тему: 🇩🇪 Системный анализ в немецких компаниях: от отличий рынка аналитиков до особенностей…
Скоро начинаем эфир! Пока что запись не планируется выкладывать, так что рекомендую подключиться. Если в шапке канала не отображается идущий эфир, посмотрите в деталях канала, либо обновите telegram.
🤩5
Live stream finished (1 hour)
Analyst Boost. Никита Харичкин
📆 16 декабря, 19:00 (Мск) 📺 Никита Харичкин (тимлид, автор курса) и Мария Кащеева (продакт в инвестбанкинге, выросшая из СА) проведут эфир на популярную, но мало освещённую тему: 🇩🇪 Системный анализ в немецких компаниях: от отличий рынка аналитиков до особенностей…
Media is too big
VIEW IN TELEGRAM
📺 Запись эфира "Системный анализ в немецких компаниях" 📺

🇩🇪 Вживую было очень интересно пообщаться с Марией, поэтому делюсь записью с теми, кто не смог подключиться. Ниже некоторые таймкоды, а в первом комментарии — аудио-версия для любителей подкастов.
2:30 Как выглядит аналитик в Германии?
10:40 В каких компаниях ценятся навыки проектирования интеграций? Это выделенная роль?
19:00 Требуется ли умение проектировать базы данных и писать SQL запросы?
22:40 Кто тогда занимается выявлением требований и работой с заказчиком? Насколько важно знание предметной области?
26:20 Насколько реально найти работу только с английским языком? Много ли таких предложений?
30:50 Аналитик — это в том числе грамотный управленец? Soft skills решают?
35:20 Есть ли работа вне столицы? Какова география вакансий?
41:40 На какую зарплату стоит ориентироваться?
50:20 Популярна ли удалёнка? Ко скольки приезжают в офис? И секция ответов на вопросы.

#доклады | Analyst Boost
🔥33🤩2
🎄Открыт набор на новый поток🎄

🍾 Завершился поток, все соискатели успешно обрели работу и круто изменили свою карьеру! Горжусь ребятами, большой путь прошли.

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

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

🌲 Берегите себя и не бойтесь перемен! По всем вопросам смело пишите мне: @avtolicsipu

#объявления | Analyst Boost
🔥10🤩8
🤖 PlantUML joined telegram 🤖

🤖 Сделал крутого телеграм-бота, который создаёт диаграммы из puml кода прямо в чате. Чтобы воспользоваться ботом, необходимо:
1. Добавить бота в свой групповой чат
2. Сделать бота админом (оставьте хотя бы право на отправку сообщений)
3. Написать мне, я добавлю чат в белый список
4. Наслаждаться UX на кончиках пальцев

🤖 @Plant_UML_Analyst_Boost_bot реагирует на ключевые слова
@startuml и @enduml,
и если сообщение состоит только из puml кода, то мгновенно кидает картинку. Если исходное сообщение отредактировать, он снова сгенерирует и отправит диаграмму, что очень полезно для коррекции опечаток и мелочей, чтобы не слать код по 10 раз.

🤖 Обратную связь можно оставить прямо в личных сообщениях с ботом. Обратите внимание, в ЛС он не будет строить диаграммы, они будут только в группе. В скором обновлении бот будет транслировать ещё и ошибки исходного псевдокода.

👾 Заходите к нам в чат @Plant_UML, увидите бота в действии и сможете обсудить все тонкости псевдоязыка в компании экспертов.

#инструменты | Analyst Boost
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22