Episode Transcript
Друзья, привет. Это подкаст Организованное программирование. А я его ведущий Кирилл Макевнин. У меня в гостях в гостях Евгений Лукянов, архитектор, специалист по ДД. И сегодня у нас будет довольно необычный выпуск, я бы сказал, экспериментальный, потому что, а, у нас уже был один выпуск по ДД, где мы разбирали его философии. Но помимо философии есть конкретные прикладные практики, есть конкретные подходы, как писать код. И я хотел как бы все эти вещи в конечном итоге затронуть. И вот сегодня у нас будет тот самый момент, когда мы будем делать, а, правильно я говорю, ивентрминг, да, да, будем делать, попробуем, по крайней мере, да, будем делать такую штуку, которая в ДД называется evвентрминг, а где мы берём некую идею, которая у меня есть, а, и начинаем её раскладывать. А, соответственно, если этот выпуск зайдёт и людям понравится ДД, скажут: "Мы хотим дальше, интересно, действительно полезная штука". Мы вот как бы то, что сегодня сделаем, будет ещё один выпуск, в котором мы переложим это всё на код, где уже непосредственно всё это запрограммируется. Поэтому сегодня мы будем много рисовать, у нас будет открыта доска, а возможно этот подкаст будет лучше смотреть, а не слушать, но посмотрим. Я думаю, что и слушать вполне тоже, да. И я сам, честно говоря, не знаю, к чему это приведёт. И самое, знаете, что забавное, интересное в этом моменте, я Жене не сказал, какой проект мы будем разбирать для того, чтобы он не подготовился. Поэтому он сидит и не знает, чем мы сегодня, ну, каким проектом мы будем сегодня заниматься. Да, сейчас опозорсь на на весь белый свет. Привет. Все боятся всегда. Да, спасибо большое, что позвал меня. На самом деле давно собирались созвониться, но взрослая жизнь вносит свои коррективы. Вот. Да, сегодня попробуем сделать, провести авиеншторминг и попробуем разобрать предметку. И в целом в целом вот ты говоришь, зайдёт формат или не зайдёт, я тут немножко повангую. Душные видосы очень плохо заходят. То есть там, ну, ребята осудят, да, но в любом случае это важно, потому что говорить про ДД, знаешь, как вот мы собрались и такой подкаст разговоров, этого недостаточно. Из этого никаких выводов не сделаешь. Поэтому я, например, стараюсь в видео, а делать лайкодинг, делать, короче, какие-то вещи, когда вот мы что-то ручками делаем и показываем. Это чуть более сложный, наверное, формат для восприятия, но, по крайней мере, он показывает действительно какую-то ценность в том, что о чём мы говорим, а не просто слова. Давай, знаешь, мы сейчас прямо буквально пятиминутку небольшую по смыслам и потом, собственно, открываем канвас и погнали всё это дело делать. Расскажи про просто про эту процедуру, какую она задачу выполняет, почему это вот старт, когда мы говорим про ДД и про какой-то проект, который собираемся делать по его принципам. Ивентрминг - это, наверное, самый простой инструмент из того, что есть для исследования предметок, для исследования, для моделирования и так далее. Э, в основном он применяется в совместной работе с экспертами предметки, да? То есть у нас есть какие-то люди, которые в эту предметку погружены. Он подкупает своей простотой. То есть там очень понятные концепции. Никакого BPмна, да, нашего любимого, который рисует аналитики, а потом все на него забивают, потому что, ну, кто же его будет читать? А, очень простая нотация. Это неформальная история. Вот. И почему нравится лично мне? Потому что на выходе получаются стикеры, которые в итоге очень будут похожи на код. Не один в один, но всё-таки можно узнать очертание. Я сам, не знаю, сколько, наверное, лет шесть-7мь назад узнал про такой подход. Может быть, может быть, меньше. И с тех пор бегаю с ним как дурачок, пропагандирую. -э, и мне удавалось научить, ну, даже людей, которые, в принципе, далеки от техники. Вот, э, он очень хорошо работает на предметках, которые уже существуют. Ну, то есть мы там берём какую-нибудь бухгалтерию, да, разбираем, как чего, э, функционирует внутри. Но есть ещё один момент, когда мы моделируем то, чего у нас ещё нету. А когда у нас предметки может ещё не существовать, то есть это может быть как бы такая предметка, которая уже где-то есть, но мы берём из неё части и формируем какой-нибудь продукт, да, мы рисуем, ну, точнее, мы хотим разработать и автоматизировать какие-то вещи. Так, и мы можем придумать что-то совершенно новое, чего нету. Ну вот представь, ты додумался до того, что можно в интернетах рекламу показывать. Вот при этом интернетов ещё ни у кого нету. А рекламу обычно публикуют в газете, в журнале, на телевизоре. И, соответственно, там не будет, ну, у тебя в голове нету никаких понятий типа клик по рекламе, да, там стоимость клика и так далее, потому что это предметки ещё, ну, как бы нет. Вот. И эта штука всё равно позволяет нащупать какие-то, э, предположения, как-то замоделировать и понять, насколько всё плохо. В общем-то, я такие вещи провожу даже, наверное, до того, как мы в целом разрабатываем требования, потому что из того, как, ну вот из функционирующей м системы, точнее из функционирующей предметки, можно эти требования получить более точными. А там можно даже сделать такой как бы цикл. Сначала мы накидываем требования, допустим, в виде карты пользователь истории, потом погружаемся в предметку и потом сопоставляем, что у нас получилось, э, в результате исследования с тем, что мы этапно придумывали в виде требований, пользовательских историй и так далее. Там половину обычно можно выкинуть, а, потому что оно не соответствует действительности. А то, что мы там хотели разработать, это наша фантазия, оно так не работает. Ну, в общем, довольно простая практика. А-а, ну я не знаю, как у нас сегодня получится, потому что даже, ну, какую-то вот такую пристрелочную сессию сделать, это довольно большое количество времени нужно. Вот. Ну, мы, может, хотя бы какой-нибудь кусочек возьмём и попробуем нарисовать. Вот. А затем уже, если, как ты уже сказал, зайдёт, можно и код нарисовать. Знаешь, что интересно? Чем это отличается от каких-то стандартных подходов, начиная там более формально, когда мы через юзкейсы идём или просто опытный разработчик или предприниматель сидит ээ и что-то накидывает и придумывает. Потому что если ты говоришь, что он такой простой, типа чем отличается, если бы, например, тот же самый проект, который я сегодня тебе буду рассказывать, я бы сел, допустим, со своим партнёром, мы просто обсудили, я как технарь, понял, какие там сущности, тра-та-та-та-та и пошёл кодить. Я думаю, тем, что мы можем замоделировать код, условно, то есть есть уровни вот этого виншторминга, где мы уже прямо видим, какие сущности, какие методы, как что где связано и так далее. То есть есть элемент вот такой вот формальщины, а, на котором мы можем опереться и не переводить вот как обычно бывает, да, вот мы напридумывали требования, потом у нас есть целый системный аналитик, который нам пытается объяснить, ну, нам разработчикам, что же в итоге нужно сделать. Наверное, вот в этом, если говорить про юзкейс, такая штука, м она сложна для нетехнических специалистов. То есть, если ты юзкейс там будешь объяснять какой-нибудь тётенькебухгалтеру, ну, она закончится довольно быстро. Ей срочно захочется побежать пить чай, а не выслушивать вот эту вот нудятину и документировать, что самое главное, и читать потом все эти документы огромные, которые, э, мы тут нагенерили. Но на самом деле документ всё равно потом получится. Это же как бы не мы можем составить и спецификации по а тому, что получилось, и какие-то другие формальные вещи сделать и показать уже потом, но не придётся по 10 раз объяснять, что мы в итоге пытаемся сделать и перевести на их язык. То есть в домдерин дизайне есть же такая штука, наверное, одна из самых главных - это единый язык. Вот ивентрминг позволяет нам этот язык извлечь из голов специалистов и загрузить в головы разработчиков. Я бы прямо хотел усилить эту штуку, потому что знаешь, как это выглядит, когда ты говоришь, это очень такой звучит очень entprйen, да, что у нас есть там системная алитика и так далее, а я, например, человек простой, я вообще из стартап мира, у меня никого нет, я просто сел и закодил, да, вот прямо сегодня так и хексет когда-то появился, там за 3 дня его зафигарил и как бы пошли. Ну, я имею в виду, он до меня был, но ту версию, которую я хотел, и дальше 12 лет мы её как бы эволюционировали. Хотите расти как разработчик не в одиночку, а вместе с сильным сообществом? Вступайте и в Hexetк клуб. Это закрытое пространство для тех, кто уже в профессии хочет развиваться дальше. Здесь помогают определить уровень, построить персональ��ый план развития и дают обратную связь менторы из индустрии, в том числе из зарубежных компаний. В клубе живые разговоры о технологиях, собеседованиях, работе в компаниях, карьерном росте и нетворке. Есть отдельные топики с историями участников, отзывами о работодателях, отчётами менторов и планами развития. Люди приходят в клуб, чтобы расти, и помогают другим делать то же самое. И вот подход, когда мы, э, делаем проекты, я как на код смотрю, естественно, я сразу там, ага, сущности, связи. И поскольку я сам владелец, у меня это всё соединено, да, то есть я сам себе этот и придумал. Я просто хочу это подчекнуть, потому что не то, что ценности нет в этом, грубо говоря, в стартапрах, скорее всего, просто стартапом это часто не нужно, потому что ты как бы одновременно и разработчик, и и продукт, и всё остальное, и тебе не нужно самим с собой договариваться, да? То есть если ты достаточно опытный разработчик, ты пошёл, как бы накидал, ты же не будешь там ТЗ, инфраструктура, понимаешь? Да, ты там типа выкатил лендинг и погнал. Вот у тебя всё так работает. Согласовать не забудь. Ну, сам с собой, да, созвон поставить, да. А то, что ты рассказываешь, это, конечно, очень понятная, важная вещь. И и прямо вот мне очень нравится то, что ты говоришь, когда речь идёт о том, что мы не просто пытаемся создать техническую часть, а о том, что если мы, разработчики, даже думаем, что мы понимаем, что мы хотим, я это специально говорю для людей, которые смотрят на это и думают, что это фигня какая-то. А если вы при этом не поговорили с людьми, которые, которым это надо, очень вероятно, что вы пребываете в иллюзиях. Вы такие: "Да, я понял сущности, как я сейчас тут разложу, все дела". Только у них поднятийный аппарат другой. У них проблематика другая, там логика другая, да? И, соответственно, скорее речь, наверное идёт о том, что за это время обе стороны как бы трансформируются, да, как бы немножко меняя своё сознание и делая более такую типа мы друг друга понимаем, о чём мы говорим. Да, всё правильно. Ну, тут прокомментирую. Во-первых, тебе в ко в комментариях обязательно напишут, что мы здесь код пришли писать, а не ээ не вот это вот всё. Мы не хотим разбираться в в требованиях и вообще в том, чего нужно. Но я не совсем соглашусь, что это история работает только в стартап мире. Я делал, в смысле, в entтерпрайзмире ты имеешь в виду? Ненене, не. Ты говоришь, что в стартап мире там ты сам себе и продукт, и проject, и разработчик, и ис и и ещё офис подметаешь. А в entтерпрайз истории там тоже есть ээ этому место. И я тебе скажу, что вот даже в больших конторах самые лучшие результаты у меня получались тогда, когда у меня не было никакого системного аналитика. То есть я прямо ходил и сам выяснял, что нужно, то есть как это работает, как устроена ваша бухгалтерия. У меня записочки висели на экране. Я так до сих пор не за не запомнил, что такое дебет для активного счёта и кредит для пассивного. Вот какие-то такие вещи мне вспоминаются. И напрямую взаимодействуешь вот с этими экспертами. У меня нету никакой прослойки глухого телефона, а когда мне нужно переводить. И есть обратные примеры, когда а системные аналитики там понаписали много чего. Вот ты это реализовал, да, вроде всё нормально. А потом, когда к тебе приходит, ну, условный пользователь, да, или вот эксперт предметки, который с этим работает, ты, как дурачок пытаешься ему перевести, что же ты тут сделал, и в трёх соснах путаешься, тебя не понимают. Вот. А потом возникает вопрос: "А что это ваши программисты тут сделали? Давайте мы их всех на мороз отправим". Какие-то они странные. Они сделали то, чего нам особо-то и не нужно. Вот. А системные аналитики, ну, не всегда у них есть мотивация, а, как бы погрузиться и понять, что же пользователю нужно. Их задача там быстренько собрать требования и отлететь на следующий проект, вот, или в другую контору вообще. Так что я иногда даже закидываю такую мысль, вот за что меня потом приходит бить ногами, что системные аналитики не нужны. То есть я прямо вот вбрасываю так очень жирно. Конечно, всё зависит от проекта. Иногда там нужно в какой-нибудь регулиторке разобраться адовой или же э раскурить опишку и понять, как там работает условный вендер, и всё в этом. духе, но это не значит, что мы сидим и просто ковыряемся в носу. Вот. И ждём, пока нам принесут. Я такой паттерн, когда аналитик всё делает и тебе ещё даже говорит, в какую табличку чего положить. Я называю это анемичный разработчик. Зачем тогда разработчик нужен? Немножко научите аналитика программировать и всё. То есть, ну, там дайте какого-нибудь сеньора, чтобы сильно не накосячил и нормально пойдёт. Маленький кейс расскажу в тему. Значит, было время, когда я консалтил была в компании. Ну давай так, я регулярно про это рассказываю. В общем, у меня такой год был, когда я в Питере жил, там помогал ребятам. И, значит, они делали для Мегафона утилиту, точнее приложуху, которая помогала. Вот прямо в в битубишных их у них есть точки, и там есть битубишная часть, вот когда подключают именно а компании к Мегафону, и у них там, собственно, свой интерфейс, где они работают. Ээ, и там был такой кейс, что вот эта команда, которая это разрабатывала, там у неё были проблемы, и её надо было что-то с ней сделать. И туда назначили одного из, ну, моего друга, кстати, а, собственно, руководителем в терминах вот того, там своя терминология была, может, они продуктоунером его называли, но вот что-то такое ажаile там ориентированное, в общем, туда Скрам ориентированное. А, и знаеш, что он первое сделал? Буквально, когда он туда попал, они, а, у них там планы, они что там разрабатывают, все дела. Он говорит: "Так, давайте, значит, находим первый офис, который тут у нас рядышком в Питере там сидим, да, который рядышком, и все вместе за ручку идём в этот офис, садимся. Это классно, это вообще и смотрим, как они работают. Но я всегда, когда про такие вещи вспоминаю, такой: "Блин, кбек там со своими ребятами в экстремальном программировании это сказал ещё там в девяностых, да, что пользователи всегда рядом, имея в виду непосредственно того, кто не заказчик, а тот, кто вашим софтом пользоваться будет". И с тех пор оно так вот качует как бы в разные в разных формах, в разные как бы культуры, подходы и так далее. А идея-то по сути плюс-минус одна и та же осталась. Осталась этим. Ну да. Да. Ещё бы я бы добавил, что эти пользователи иногда знают, где ты живёшь. Вот. И да. Воткнуть тебе перо в бочину, когда ты будешь довольный, из офиса идти. Опасные пользователи. В играх такое случается, кстати. В бухгалтерии может случиться. Не дай бог. никому. Ну что, давай, давай поехали. В общем, есть у меня идея, поэтому я буду немножко играть роль такого, наверное, где-то местами непонимающего человека для того, чтобы это было, ну, правильно. То есть я как бы как эксперт и как технарь, и с этой стороны, значит, продуктовый всё это разложим. Маленькая ремарка, последняя, наверное, всё это, конечно, не имеет отношения к настоящему бизнесу. В плане чего это всё-таки как бы, как правило, проект, который надо сделать. Тут нет никакой истории про то, что продукт маркетинг feit, а дистрибуция, каналы, привлечения, продажи и всё остальное. То есть это как бы за рамками. Это то, что мы говорим, это непосредственная имплементация с точки зрения использования. А если вы как бы занимаетесь бизнесом, вы в первую очередь финмодель должны посчитать, прежде чем вообще хоть что-то про проект начинать там рассуждать в глубину, а потом потом попробовать это продать и если оно продаётся, да, лендик на тильде сделаете, да, продадите и только после этого приходите из ДД занимаете. Так к слову, что это никакого отношения к бизнесу вот в этом смысле не имеет. А это имеет отношение всё-таки больше как бы когда уже что-то понятно и уже надо дальше делать. Хорошо, давай сегодня раскрываем, так сказать, давай сюрприз. Это реальный проект, который я собирался делать последние много лет. Он связан с моей личной болью. Я знаю аналогичные проекты. Я хочу его очень сделать. Более того, мы даже начали его частично делать, но не доделали. Поэтому вполне возможно, кто сейчас меня послушает, я не боюсь этого, скажет: "Блин, это охрененная идея, я пошёл делать". сделает. Не забудьте мне потом роялти платить тоже на Да, на Сбер закиньте мне тоже дисклеймер, да. Значит, проект такой. Я контент-крейтор, собственно, мы сейчас занимаемся созданием контента, я пишу посты в телеге и так далее. У меня есть какие-то успехи, да, там не с денежной точки зрения, потому что я рекламу не размещаю, но с точки зрения охвата аудитории, влияния какого-то, да, что-то есть там, сколько, 12.500 почти подписчиков в Telegram-канале с, так сказать, этими руками, этой клавиатурой я смог собрать. то уважаемо. Так вот, да, не платно всё это, абсолютно бесплатно. И какая там есть, значит, история? Я при всём при этом стараюсь мотивировать других ребят тоже как-то, знаешь, писать. И я знаю, что есть огромная проблема у людей, которые пытаются завести свои каналы и вообще что-то делать. Это, ну, непосредственно о чём писать-то? О чём? Как писать? Интересно, а естьли какие-то правила, как писать, а как оценивать эффективность и так далее? Короче, много всяких вопросов. Ну и понятно, да, куда я веду. То есть смысл в том, что нету системы, которая бы позволяла им помогать в этом пути как бы развивать свой контент и зарабатывать. Такой такие проекты существуют, но не для Телеграма. Например, существует такой проект, как вид IQ. Мы его по-русски Видик назовём. Я не знаю, слышал или нет. Знаем такой, да, пользусь. Это очень известный проект, который вот YouTube крейторы про него знают, потому что эта штука, тренды, конкуренты, что у них там заходит, в какие дни лучше публиковать. Daily Ideas, у меня, кстати, очень много там сохранённых видео, которые надо. Он это делает на базе конкурентов, на базе твоего контента и на базе трендов. Там тренды, возможность лидерборды посмотреть, ну, короче, много-много много всякой функциональности, которая существуют. Для телеги такого нет. А сейчас ещё Иишка очевидным образом. Да, и моя идея очень простая, создать проект, в котором кйтор по сути мы упрощаем до уровня есть один пользователь. Кстати, я люблю проекты вот чисто с точки зрения бизнеса, где ты ни на кого не завязан. То есть это не marкетплейс, это не массовая штука типа чата, где тебе надо много людей. То есть каждый человек получает полную ценность, которая ему нужна. Да. Вот он туда зашёл и всё, ему больше никто не нужен. Это с точки зрения бизнеса самые лучшие бизнесы. Но это B2C. Ещё тебе не нужно общаться со всякими корпоративными воротилами, а просто продаёшь. Это с точки зрения овнера, да. И действительно привлекать таких людей интегрировать намного легче. Другой вопрос, что ограничена очень аудитория. То есть там миллионов не заработаешь, но что-то можно заработать. Так вот, а значит, идея простая. Человек, значит, заходит туда, видит, что это говорит штука: "Я тебе помогу, ты как бы зайди, зарегайся, я тебе помогу с тем, какой контент создавать, когда его херачить, буду оценивать, конкурентов твоих смотреть, показывать, в общем. А или опять же, может, ты их не воспряшь как конкуренты, да, но похожие каналы, грубо говоря, которые растут, чтобы понимать, какие паттерны у них есть, для того, чтобы работало. Я, кстати, не могу не отметить, знаешь, я когда всё это думал вчера, сидел я уже с чатом GPT посидел, подготовился, я понял, что мне это очень сильно NLP напоминает. Кто помнит, есть такая штука, нейролингвистическое программирование называется. Это, конечно, такой термин такой ненаучный, но скам скамом пахнет прямо. Но это интересно, потому что по факту механики-то многие такие используют. То есть, грубо говоря, для того, чтобы быть успешным, повторяйте то, что делают успешные люди. Там сиди, дыши, зеркалируй, там куча всяких механиков. Родись в богатой семье. Дада. Эта штука в каком-то смысле об этом же, да? То есть, да, конечно, твой контент должен быть интересным, классным, но при этом есть ещё поддерживающие механики, которые тоже полезно делать. Ну, типа, когда публиковать, сколько раз, потому что очень многие крееторы уже, на самом деле, в своей жизни наэкспериментировались. То есть, например, я легко скажу, сколько раз в неделю надо, сколько раз в неделю не надо, да? То есть, например, есть люди, которые пытаются публиковать там пару раз в день, и если ты и обычно это приводит к проблемам, потому что, ну, люди устают, они твой канал перестают читать. Короче, там куча таких вот вещей, которые помимо контента можно давать. Ну и, конечно же, всё-таки ядро, я бы сказал, это идеи. Идеи и, возможно, дальнейшая даже генерация, поскольку сейчас аватаро алям можно делать, да, ну, как минимум наброс набросать план и предложить, собственно, о чём и как написать, собрать там конъюнктуру. То есть я бы считал, что вот это вот главная идея этого проекта. Вбил конкурентов и, значит, тебе говорят, что о чём лучше писать, какие тренды, допустим. Да, в принципе, наверное, всё. Видик зарабатывать деньги. Вот на таком проекте тоже можно зарабатывать деньги. Это какая-то подписка. Всё очень просто. Дальше можно функциональность там и автопостинги. Ну, сам понимаешь, там можно много чего придумывать. Ты не поверишь, но я последние 2 месяца думаю примерно о таком же. М, у тебя загружена модель, значит, получается, в го? Да, у меня уже загружена модель. Я, э, что-то даже думал на этот счёт. Вот. Ну, моя идея, она была чуть попроще. А про аналогию с Видиком я даже не думал. Вот что это действительно очень похоже, но мне бы было бы было, например, интересно отслеживать тоже вот каналы, может быть, не только канал, но и какие-то там HTML блоги, ну, в смысле, веб обычные. Смотреть, как люди реагируют, где возникают баталии в комментах, то есть где есть эмоциональная реакция, где народ друг друга на ножи обещает поднять. И в общем, вот это вот было бы интересно ваться такой Винипух. И допустим даже у нас отрасль сейчас снова динамично развивается. С этой яишкой никто ни зачем не успевает. И хотелось бы понимать, что в отрасли происходит, да? А где эту инфу собрать? Ну вот можно пылесосить какие-то каналы, вот, и на основе этого тоже делать какие-то новы, ну, свои новости, свои видения, ну, через свою призму. Так что да, у меня примерно такая же идея есть. Давай попробуем вот как сделать. Я уже говорил, что есть у нас а цикл, да, можно им воспользоваться, когда мы сначала попытаемся накинуть пользовательские истории, точнее карту пользовательских историй. Сталкивался ты вообще с таким? Нет. Когда-нибудь именно с картой? Ну, типа майндмапа, когда мы типа ветки разные раскладываем или нет? Не совсем. М, не совсем. В общем, есть такая, э, концепция, называется карта пользовательских историй. Это пользовательские истории, упорядочены определённым образом. А ты процесс раскладываешь, а, по, мм, скажем, каким-то эпикам, да, а и рисуешь так называемый хребет. То есть у тебя есть такой вот горизонтальная идущая штука, которая называется хребет. В нём находятся различные эпики, типа, ну, вот регистрация, да, вот пользователь регистрируется, и внутри этого хребта ты можешь описывать пользокие истории. Я, как там пользователь могу, не знаю, зарегистрироваться через Google, через ВКонтактик. Это всё каждая отдельная история. И, соответственно, у тебя отрастает такое тело. Дальше ты там допустим, вводишь свои какие-то каналы. Вот. И эти каналы начинают пылесоситься, добавляются там какую-то подборку. Вот. И что ты с ним можешь делать? То есть я могу добавить канал, я могу его удалить, я могу там поставить на стоп, ну вот всёвс всё, что угодно. И дальше, ну уже в зависимости от того, что ты там себе напридумывал. Это вот я прямо сейчас поверхностно попытался твою идею всквернуть. Но а дальше, когда ты это всё нарисовал, нужно переходить к ивентрмингу. И в целом вот первый шаг этот мы можем пропустить и сразу попробовать поразгонять. А что же у нас может получиться в целом, да? Какая история? Что мы хотим? И мы, может быть, даже увидим какие-то, если монагерским языком говорить, да, критические пути, а только не критичес путь не с точки зрения, да, что нам нужно какие-то задачи выполнить, а какие-то фичи, чтобы это было, ну, законченным продуктом, который имеет ценность, да, там вот вот столько ценности, да, вот столько он имеет, но тем не менее это видно. А, ну, в смысле, за это можно уже и денежку слупить какую-нибудь с пользователя и подсадить на наш прекрасный продукт. Так, да, переключаемся на экран. Да, всё готово. Отлично. Что мы сейчас будем делать? Мы сейчас попробуем, как мы уже в начале говорили, провести сессию ивентрминга. Она не всегда как бы красиво получается там с первого раза. Плюс времени нужно на это, ну, так достаточно дофига подумать, но хотя бы какие-то наброски мы сделать можем. Вот хотя бы в каком-то примитивном виде в какие-то э кусочки. Первое, с чего мы начинаем - это события, то есть события предметной области, которые должны у нас происходить внутри. А что такое событие предметной области? это некий свершившийся факт в предметке, который по какой-то неведомой причине нас интересует. Ну, допустим, если мы берём э медицину какую-нибудь, м это может быть пациент пациент, ну, пациент умер, да. Ну, это, кстати, пиво ивент. Об этом мы чуть дальше придём, если доберёмся. Мозг у меня интересно работает. Да, вообще, ну, допустим, пациент, э, сдал анализы, то есть, о, он получил результаты анализов, да? То есть нас не интересует вот то, что он в данный момент писает в баночку. Нас интересует то, что эта процедура закончена и есть уже какой-то результат. Причём вот это вот событие тоже может распасться на два. Допустим, то, что он, э, как бы принёс образцы, скажем так, да, и то, что эти образцы поступили в лабораторию и, ну, уже там закончен их лабораторный анализ. То есть вот они могут декомпозироваться. Но здесь мы давай попробуем вот самого простого, да? А это, допустим, пользователь зарегистрировался. Вот пользователь зарегистрирован.
в системе. Это супер простое событие, да, оно наверняка у нас будет. И событие у нас как получается в совершённой форме, да, в совершенной форме, как как правильно сказать, я уж я уже забыл. Хотел сказать, что мне это напоминает концепции целеполагания, э, когда правильная, ну, есть такие тоже подходы, типаля, там, знаешь, тайм-менеджмент, целеполагание, там есть такой подход из серии, что цель надо формулировать в совершившемся действии. Тогда ты более точно сможешь её описать и, ну, понимать, как ты к ней там будешь идти и так далее. Мне кажется, это что-то очень похожее. То есть мы как бы пытаемся так делать, чтобы лучше формулировать, а для чего мы всё это делаем, а не отвлекаться на детали. Да. Да. А тут есть ещё два момента. А ты вот правильно сказал про формулировки, когда мы исследуем, там обязательно, ну, короче, нужно слушать экспертов. У них есть жаргон свой, да? У не у них есть какие-то термины, которыми они называют те или иные вещи. У них даже есть какие-то неявные понятия, да, которые мы извлекаем и мы можем их явно как-то обозвать. То есть у них нету для этого названия, мы можем зафиксировать. Вот это первый момент. Второй момент, у меня на канале есть видосик про планирование через ивентрминг. Ну то есть, а что у нас события же, да, идут, как бы мы их друг за другом можем ээ вешать и цеплять, точнее. И когда ты в совершён, да, в совершенной в совершённой форме, ладно, да простят нас лингвисты, мы уже слишком давно учились в школе, чтобы правильно помнить. Если ты вот в такой форме говоришь, то у тебя нету возможности, как бы психологически ты этот стикер закрасишь только, когда он будет действительно готов. То есть ты его покрасишь в зелёный цвет. Поэтому вот есть такой психологический эффект. Не то что ты начал делать, а вот закончил. Вот. Ну ладно. NLP, как я и говорил, да, ну реально как-то некомфортно становится. Ну типа, ну ты же ещё не сделал, типа, что красть. Так, пользователь зарегистрирован в системе. А это самое простое событие. А, и вот дальше, что ты предполагаешь, что пользователь будет делать? Ну, у меня в голове онбординг, конечно, это первое во всех таких сервисах, конечно, надо добавить канал. Ты должен добавить свой канал, да? Так. Канал добавлен. Так, дальше вот я добавляю канал. Если чисто с визуальной точки зрения, вот такое здоровая как бы история, понятное дело, что у тебя где-то там это всё показывается, у тебя есть возможность там зайти и посмотреть какую-то стату там абсолютно стандартные вещи, да, там популярность там за год, за месяц, что у тебя самое популярное было и так далее. То есть тут пока ещё никакого анализа нет. Идём дальше. Наверное, с чего бы мы бы хотели, да, у нас есть несколько вариантов. У нас есть вариант такой. Мы можем идти по ветке сейчас и вот этой главной истории, связанной с рекомендациями, но рекомендации требуют для себя чуть-чуть более сложной механики. То есть, например, там есть, знаешь, что точно а рекомендовать как бы в какую сторону? То есть мы пытаемся понять тематику канала просто потому, что у тебя там внутри, но, например, я, когда об этом думал, я понимаю, что это так не совсем сработает. Например, у меня есть рубрики разные, да, я, например, иногда там специально пишу что-то про свою жизнь, иногда я пишу про девопсона, да. То есть, короче, я, когда это прикинул, я понял, что, а, плюс ещё оно может меняться с годами. Ну, такой немножко слайд такой, потому что сейчас вот иишка там раз проишку больше появилось. Поэтому получается, что давать рекомендации или вот как бы делать выводы только на основе этого не совсем получится. А может ты новостник, а может и специалист, который там про это пишет. Поэтому о чём я здесь подумал? Во-первых, как будто бы, возможно, надо ещё очень важно при добавлении канала, э, то есть обычно есть много неважных вещей, да, типа, ну, как ты регаешься там, что указал, неважно, а вот тут может влиять категоризация, то есть по какому принципу ты категоризируешь, либо категоризация идёт при добавлении конкурентов. А, но тут тоже возникает сложность. Видишь, тут уже м как бы в моей голове, когда человек получает вот эти идеи ключе да или ID, давай их называть, то есть ежедневные идеи, это прикольная механика. Вот видики так устроено, и ты там как бы выбираешь сохранить или отклонить. И он ещё, кстати, показывает их типа вероятность того, насколько она будет зайдёт. То есть такая тематика. А человек хочет в конце концов это увидеть, но он же ещё не добавил конкурентов. И по идее эта механика и без конкурентов должна работать, а с конкурентами как будто бы лучше. И вот тут вот видишь получается, что я до конца не понимаю, как сделать лучше, но как человек, делающий стартапы, понимаю, что и не получится заранее это предугадать. Поэтому скорее сейчас имеет смысл придумать механику, при которой всё работает с минимумом усилий, а потом мы будем наворачивать сверху. Вот поэтому после добавлен канал, это скорее давай вот прямо финальный такой шаг, видишь, между которыми может быть много всего. Это сохранил daily ids, вот что-нибудь в таком. То есть сохранил ежедневные идеи. А так давай не сохранил. Короче, здесь есть два момента, которые я бы хотел подсветить. События обычно это те вещи, которые меняют состояние системы. То есть состояние системы изменилось, появилось событие. Это даже потом в технике так реализуется. То есть там, если у класса состояние не поменялось, мы события не генерим, потому что ну нахрена? Это первый момент. Второй момент, мы в основном используем бизнес-терминологию, то есть не погружаясь сильно в детали, то есть не мы не используем кноп не используем формулировки типа там нажал кнопку, там сохранил в базу данных, там прочее. То есть это может сбивать потом с толку, потому что, ну, мы можем, э, эти рекомендации не в не в базе данных хранить, а в бочке с огурцами. Почему бы нет? Вот нам, в принципе, ну, важно, что они появятся. И, а, вот я ещё, кстати, забыл сказать, почему нужны вот эти вот требования, про которые я в начале говорил. Потому что в этих требованиях есть модели чтения, когда, ну, грубо говоря, состояние не меняется, но нам что-то важно увидеть. Вот. То есть вот вот эти вот рекомендации банально, да, мы там хотим увидеть какие-то штуки, которые может быть и у нас сразу есть вся информация, нам ничего вычислять не надо. Ну там посмотреть список каналов, да, какие у меня есть. А, соответственно, это на эвентрминге можно легко упустить. Вот. И когда мы совмещаем потом вот эти вот две истории, уже получается более-менее полная картина. То есть вот такой цикл. Ну давай. рекомендации, как я почему именно сказал сохранить, чтобы, знаешь, это через действие выглядело. То есть конечно я имел в виду посмотреть дневные дневные рекомендации, то есть предоста предоставить, то есть дневни дневные дневные рекомендации предоставлены тогда, да? Предоставлены. Ну давай тогда. Отлично. Так. И это выглядит как вот такие вот у нас три события, да? И вот это вот целевое событие по сути, да? То есть наша цель предоставить всё остальное во многом это очень тоже важно вот не терять эту нить когда мы запускаем что не надо много фич это всё людям не нужно обычно приходит ради одной важной штуки всё остальное скорее корректировка и улучшение то есть например добавить конкурентов зачем для того чтобы ещё лучше давать рекомендации то есть в конечном итоге мы а дневные чём кстати ты классно сформулировал потому что это же не обязательно идеи рекомендации могут быть и другим способом сформулированы не то как Видик это придумал о'кей давай вот у нас получилось вот как бы, ну, можно сказать, что вот это вот начальное событие, да, вот это вот конечное событие, между ними что-то должно тоже появиться. Вот в чём ещё прелесть вот этого ивентрминга. Мы делали медицинские рекомендации вот примерно так же вот. То есть мы что-то там добавляем, и у нас там шуршит огромная машина, которая там мотоном ещё тогда без всякого. И, ну, по-моему, и в медицине не сильно разрешён, потому что ты не можешь объяснить, как как это работает. За одной кнопкой вот в требованиях кроется огромная просто вот эта вот портяна из событий. Там считается чёрт знает что. Это мо можно криво оценить. То есть, ага. предоставить рекомендации там по кнопке, реально одна кнопка, а за ним огромный алгоритм, механизм там и так далее. И вот этим тоже ценна такая штука. Давай по попробуем подумать. Вот канал мы добавили, да? О чём мы дальше? А можно одну штучку добавлю? А потому что я буду, я иногда, наверное, знаешь, буду такие вставлять как бы дополнительные истории, потому что вот мы как там предприниматели всё время этим занимаемся. То есть знаешь, как предприниматель любой на это смотрит, для него это просто воронка. Это конкретная воронка этапа активации. То есть, грубо говоря, от момента регистрации до, собственно, получения той ценности, которая приводит к тому, что ты, например, там начинаешь покупать. И, собственно, если бы это были маркетологи или предприниматели, которые стартуют такие бизнесы, они бы ровно то же самое сделали, но именно фокусируясь на смыслах и вообще без разницы, что там технически, они говорят: "Так, о'кей, у нас воронка состоит там из трёх шагов, т-та-та-та". Поэтому получается, что это как бы похожий уровень, только такой ещё связанный с технической историей. То есть мы сейчас будем с тобой туда уходить глубже, они бы уже не уходили глубже, да? Более того, если вот у нас вот эти вот бизнесовые события есть, да, ну, то есть вот вот прям по ним всякие, не знаю, LTVI считать и прочие может, ну, конверсии, да, этапов ты будешь считать, конец. Воронки, вот ты можешь прямо свою нотацию сделать, что, ребят, вот здесь вот на этом событии, вот здесь вот можешь э ввести вот свою какую-нибудь штуку, назвать её метрикой, да, что вот это вот у тебя порождает, это отъезжает в метрике. И тем самым ты сразу видишь, как ты будешь оценивать там рентабельность, успех, неуспех. Стоит ли продолжать или выкинуть это всё в помойку и продолжать формашлёпить. Вот ничем таким не занимаясь. Так, о'кей, погнали дальше. Угу. Да. Вот давай канал добавлен. Что дальше мы с этим каналом хотим сделать? Наверное, как-то проанализировать его, да? То есть вы а мы исходим из следую всё-таки с конца начинаем или середины, потому что я знаете что сейчас боюсь? То есть если мы начнём канал добавлен, мы начём фантазировать в целом то всё пятое десятое. Но далеко не все из этих целей ведут к дневним рекомендациям. То есть это скорее побочные ветки нашей истории. Да, ты правильно говоришь, можно из конца тоже попробовать размотать, но в целом мы это потом просто всё грохнем и, ну, всё, что оказалось нерелевантным, можем убрать. Это же неформальная фигня, и мы код не пишем. Это недорого. Мы просто на доске там байтики пересылаем. Вот это как раз скорее вот про фокусировку, потому что, грубо говоря, мне мне надо себя заставлять, а то есть я сейчас пытаюсь об этом думать не просто, да, то есть типа выбирать, что что ведёт именно туда, потому что я могу тебе сказать: "О, давай автопостинг сделаем". Что можно в канал постить автоматически, знаешь, существуют такие сервисы. И это вполне себе релевантная история, только это явно не нужно добавлять, вообще не думать об этом первые месяцы, пока ты вообще не доказал, что у тебя бизнес-идея хими рабочая, да, просто даже думать не надо об этом. А думать будут. Вот в чём главная проблема. Если программисты сидят, они будут об этом думать. Да, они обязательно будут об этом думать. И ты правильно это подметил, но, короче, когда я, например, планирую через ивентшторминг, я действительно начинаю с конца. То есть, ага. Что мне нужно, чтобы у меня вот это событие свершилось? Шаг назад делаю. Что мне нужно, чтобы вот это свершилось? Давай про пройдём пока по линейному. Вообще в классическом ивентрминге мы просто вываливаем всё из головы, а следующим шагом уже делаем хронологическую такую вот привязку. Но другое дело, что там ребята как бы работают по уже существующей, да, ну, бухгалтерия там какая-нибудь условная, ты понимаешь, что зачем идёт. А здесь мы пытаемся нафантазировать, поэтому можно и с конца, ну, давай попробуем вот пройтись, добраться вот до этой рекомендации. То есть, чтобы нам добраться до рекомендации, нам, наверное, нужно канал наш проанализировать каким-то образом. Все посты, да, какая-то должна быть категоризация, понимание, наверное. То есть, во-первых, давай подумаем, откуда вообще брать рекомендации. Мы же не можем их взять банально на основе того, о чём я только пишу. То есть, скорее всего, произойдёт, что мы делаем некую категоризацию, определяем темы, допустим, а на какие человек пишет. И и давай вот в целом, как будто мы поняли, человек пишет про про фронтнд, он фронтендер. Вот, блин, мои соболезнования. Но каналов про фронт реально много. Хотя, стой, что мы тупим-то? Раз мир сейчас про искусственный интеллект и все и, кстати, многие каналы реально с, ну, запевотились в эту сторону. Давай будем считать, что чувак решил писать про про Ии. Это на хайпе, можно набрать людей, всё хорошо. И вот он, значит, пишет про ИИ. И мы теперь о'кей, какие дневные рекомендации предоставить? Мы каталогизировали, поняли, что и там, конечно, внутри тоже могут быть разделы, но пока достаточно. То есть, подожди, сейчас тебя приторможу. То есть нам нужно сначала разобраться, о чём пишет канал. Да, интересующая нас. Тематика, да, тематика. Тематика определена, наверное, да. Тематика извлечена из или определена. Опреде. Знаешь почему? Потому что, может быть, мы поймём, что правильнее всё-таки давать ему список тематик и чтобы он выбирал. Угу. К чему ты относишься. Видик, кстати, так не делает. Может, и не надо. Я просто знаю много сервисов, которые прямо просит тебя тематику указать. Это может быть больше для продаж используется, конечно. Может быть и для вставки рекламы. Угу. А так тематика определена. Мы просто, я уже, знаешь, так в голове механику проворачиваю. Мы подобную историю делали только для жирных банков и хэдж-фондов. И там тоже контент мы анализировали, мы фичи контента доставали. Но это чуть дальше мы можем прикинуть. В классическом ивентрминге нету данных, насколько я знаю, если там ничего не поменялось, но мы в целом можем даже модельку прикинуть потом на основе того, что получилось. Давай. Тематику мы определили. Что, что дальше делаем? От, а, от, очень простой ответ. А, первое, наверное, самое простое, что можно делать - это писать на горячие темы. То есть это, по сути, такой новостник стайл, когда мы пытаемся понять, о чём сейчас люди говорят, о чём стоит говорить. Поэтому мы по этой тематике должны каким-то образом понять спрос. Так, о'кей. Смотри, есть есть несколько вещей. Спрос имеется в виду, что, ну, например, ты пишешь про фронд, да, и прямо сейчас у тебя идеально же, как вот как вообще бизнесы делают, как спрос определяется. Ты в Wordstat пошёл и посмотрел, да, и понял, во, там у тебя тренд, мы бы сейчас, кстати, с тобой могли б А давай что тупить. Я я просто сейчас покажу, потому что многие про эту штуку не знают, она реально очень важная. Как определяется? Я не говорю, что мы так будем делать. Я просто хочу показать на примере, потому что далеко не все в курсе, да, мы мы предметку подсмотрим. Кстати, тоже классная штука, когда ты не знаешь, как что-то работает, да? Ты просто берёшь и подсматриваешь у тех, кто уже это реализовал. Да, зелёный чай. Это он мне предложил искусственный интеллект. Ты видишь? Да. Всё, да. Да. Смотри, а смотрим динамику. О, что-то там хорошо поехало сейчас. А как бы нам посмотреть за более длительный период?
Вот так вот.
Ну-ка. О, интересно. Да, был какой-то адовый пик, но в целом рост идёт. Было небольшое падение. Ну, короче, оно выросло сильно и, в общем-то, продолжает расти. Вот здесь количество запросов. Но это, видишь, это прямой. Это я искусственный интеллект задал. Понятное дело, что если сделать и, то тут цифры будут другие. А сейчас же пяти. А, ну вот смотри, давай даже так посмотрим. Красиво, да? Да, вообще совершенно другая картинка. Ну, потому что искусственный интеллект всё-таки мало кто набирает. Это слишком узкий запрос. Там видно было 1.000 запросов, а и набирают все. Поэтому у тебя как бы цифры здесь просто безумные. Вот. И дальше смотри, самый простой способ мы знаем, но, кстати, Wordstat отстаёт примерно на месяц, да? То есть ты не можешь увидеть прямо сейчас тренд, но ты по ты можешь восходящие тренды видеть. Анализируешь и видишь, во-первых, что с и набирают, но самое интересное - это похожие запросы. Угу. Зашибись похожий запрос. Я знаешь почему? Потому что и слишком коротенький, и люди часто ошибаются или что-нибудь не то хотят. Это, кстати, хороший кейс. То есть ты не у тебя не получится просто так, а, а вот вот в чём прикол. Знаешь, что мы с тобой сразу видим? Это я, кстати, этого не знал. Люди, которые называ, например, набирают фронтенд, например, для нас, вот для школ программирования, там курсы по фронтенду, там купить курсы по фронт, там есть некая связь. Здесь, видишь, в чём прикол? Люди, которые набирают ИИ, очень часто это делают, потому что хотят получить ответ в поиске от ИИ. И поэтому у тебя нету структурированных запросов там типа и новая версия чат GPT. Там прямо пишут и кто основал Нижний Новгород. То есть мы с тобой сейчас увидели по сути, что люди используют поисковую строчку для того, чтобы вызвать Ишку поисковика, чтобы им тут же показал ответ на их вопрос. Поэтому по этой штуке мы с тобой не определим, что люди. Ну давай, давай какой-нибудь другой запрос. Не знаю, там Toyota. Нет, давай что-нибудь вообще вот прям совершенно другое. А, ну мы просто с тобой, поскольку тематика Ишка, поэтому если мы Тойота Селика будем искать, мы с тобой не найдём. То есть тут, короче, видно, что по этой штуке мы с тобой не определим, потому что здесь новостного, то есть, короче, мы с тобой видим рост канала, но мы не видим здесь вот этой связи, чтобы отсюда можно было темы вытягивать. Поэтому я скорее ради этого смотрел. То есть темы не получится вытягивать, у тебя только какие-то глобальные тренды можно увидеть, скорее всего. Ну да. И поэтому мы бы так сказали, как можно определять, о чём вообще можно писать по этой тематике? Просто брейнштормингом. Во-первых, выходы новых моделей, вообще любые новости, связанные с этим. Соответственно, получается, у тебя, грубо говоря, внутри должен быть некий механизм, который способен информационную повестку по этой теме вытаскивать. Это первый самый базовый механизм, который бы помог работать на инфоповодах. А могу прямо прикол рассказать, вот как я, например, делаю. Я редко, кстати, этим пользуюсь, потому что у меня не новостник, но иногда это делаю. Вот буквально сегодня утром я сделал пост. Знаешь, на какую тему? Есть такой фреймворк tail win CSS. Ты, наверное, знаешь его. А это может быть. Ну, это фронтендовая штука, на которой Sшат CNN. То есть всё, короче, сейчас основано. Это Атомиic CSS, который начал в какой-то момент стал очень известный, популярный, все в мире им пользуются. На базе него созданы UI киты. Короче, это самое номер там вот один во фронтде. То есть Wind - это всё. И чувак буквально вчера написал пост о том, что его бизнес-модель была следующая. У него там через доку шли на его приватные платные компоненты, которые он предоставлял юишные, да, а там блоки какие-то и так далее. И раньше люди их покупали. Ну и у него хватало денег как бы жить и там пять программистов содержать. Бизнесмен он как бы понятное дело, то есть он сидит код пишет и в конечном итоге, то есть грубо говоря, начала меняться конъюнктура, люди перестали заходить в доку, потому что lЛM всё генерит, и у них начало падать у него, значит, начало падать ревеню, то есть очень сильно на 80%. Ему пришлось уволить людей. И чувак, короче, вчера написал большой пост на эту тему, что мне [ __ ] я, короче, там тону, все дела. И вот это вот супер информационный повод. То есть абсолютно все у меня весь Twitter, поскольку я смотрю технических чуваков, у меня просто весь Twitter вот в этой фигне. А и все, кто об этом пишут, собирают много лайков и собирают много всего. И все блогеры русскоязычные, кого я знаю, про это написали. Кто-то там квотил твит, кто-то с нуля. Ну я, естественно, то есть я не хожу по каждой штуке, не сообщаю, но поскольку open source, fronнд и бизнес для меня близкие тематики, я сегодня с утра быстренько накидал пост и угадай, что куча переписок, э, шаринг там и так далее, и так далее. Поэтому получается, что есть как бы история про новости в целом, что происходит в и вообще в целом, а есть новости вокруг, которые происходят, связанные с этим, что вот-вот об этом можно написать. Насколько технически реально это вытаскивать и понимать такие вещи? Для меня загадка. Ну, то есть, наверное, возможно, но, понимаешь, надо что-то из Твиттера тянуть, что-то, может быть, из хитхаба, может быть, тебе надо знать конкретные компании, которые этим занимаются, а, и каким-то таким образом эту инфо узнавать. Если бы это было просто, такой сервис бы любой дурак сделал и ничего бы на нём не заработал. Всё правильно. Пожалуй, я тоже напишу в своём канале про эту новость. Спасибо за идею. Посмотри, да, там интересная была история. Там бурлит, кстати, до сих пор. А, смотри, пока мы далеко сильно не ушли, то есть мы определили тематику, и нам теперь нужно где-то, вот ты правильно говоришь, э найти, что этому каналу рекомендовать. Вот. То есть нам нужно, а, по этой тематике, да, ну, по сути, не знаю, тут где-то очень близко мы находимся к последнему шагу, но откуда брать? непонятно. Здесь есть предложение, например, -э, вот, по крайней мере, на первых порах вручную добавлять какие-то каналы. То есть я прямо так и пытался сделать, ну, прикидывал, точнее. То есть я подписан на там 10000 каналов, которые я, естественно, не читаю. Вот. Но мне бы хотелось оттуда, ну, вот мимо этой новости я бы не прошёл, наверное, да? То есть она бы где-нибудь всплыла в каком-нибудь из каналов. Я бы хотел знать, что, оказывается, эта новость там есть в десяти каналах, пусть будет и в моём одиннадцатом. Я бы, э, в этом случае, наверное, на первых порах сделал механизм автомати ручного добавления. То есть вот на что я подписан. Давайте-ка. Ой, слушай, я упрощу. Действительно, я же знаешь, самое странное, я же именно так себя это и видел изначально. Естественно, когда ты в видик всё добавляешь, у него весь YouTube туда загружен, и он просто тупо знает всё, что происходит в Ютубе. То есть мы сейчас говорим действительно не о передовом узнавании до того, как это где-то появится, а скорее о том, что какая-то пошла история движуха, мы тут же её, ну, как бы, ну, не то что копипастим, но, в общем, мы видим, по крайней мере, на что все пошли. То есть это такое не опережение, а следование за кем-то, но очень быстрое. И в этом плане нет вообще никакой проблемы. Просто автоматически, грубо говоря, мы сделали сервис. И первое, что мы сделали ещё до того, как открыли людям, это написали парсингу канал парсин парселку. Парселку каналов. у него загружен туда весь YouTube. И действительно, это идея о том, что мы в первую очередь следим за трендами, то, что уже пошло, а не то, что мы заранее узнаём. Потому что это вот эта сложная задача, да, она действительно реализуется очень просто, потому что у тебя все каналы, как минимум, хоть те, на которые имеет смысл обращать внимание, они добавлены, ну, как минимум, в проект, который называется ГСТ, если ты знаешь такоя штука, куда все все добавляют. Соответственно, первая базовая вещь, которую можно сделать, можно просто тупо пропарсить этот сайт. Или вообще есть ещё сайты со списками этих каналов, там десятки тысяч этих каналов загрузить к себе. Есть только нюанс. Я не уверен о том, что не имея прямого доступа в канал, что у тебя туда добавлен человек, ты можешь как бы посты оттуда читать. Я уверен, что это такие серые схемы того, как это делают, потому что прямого апи нету. Просто взять канал и прочитать оттуда посты. Но как минимум можно читать хотя бы, ну вот типа с сегодняшнего дня. То есть, понимаешь, да, не прошлое, а с сегодняшнего дня. А тут тут я прямо не уверен. Это надо смотреть какие есть механики. Но, допустим, мы считаем, что, о'кей, мы написали фигню, которая просто тупо вот под АГстату забрала весь список каналов, и вот с этого момента, как мы запустили сервис, начала отслеживать посты. То есть у нас все новые посты, грубо говоря, появляются. И вот там внутри должна быть какая-то машинерия, которая, собственно, что делает? как-то это всё классифицирует, понимает, что этот канал к такой-то тематике относится и, соответственно, рекомендуют, э, давай даже так ещё до рекомендации, вот тогда мы скажем, а, показывает такую штуку, как тренды. То есть, грубо говоря, вот в Видике есть раздел, где просто вот всё, что по твоей тематике выходит и в первую очередь набирает хоть немножко популярности, потому что это первый шаг будет к тому, что а теперь из этого давай что-нибудь вытаскивать дальше. Угу. То есть, смотри, нам, значит, нужно тогда сделать ещё отдельную ветку, да? То есть это какой-то условный администратор, да, каким-то образом добавляет эти каналы. То есть то есть мы вот это вот наш канал, да? А если не он не сам добавляет, это скорее даже я тебе даже так скажу, это даже админа, скорее всего, никого касаться не будет. Это просто чисто такая фича, что у нас есть регулярный анализ там какого-то списка типа ГСАТ, который просто вгребает внутрь в автоматическом режиме вообще без нашего участия и автоматически их каталогизируют, автоматически собирать с них постоянно посты. О'кей. Э тогда м нам нужно продумать вот этот вот вот эту ветку. То есть у нас есть канал, который добавляем мы, есть канал, который уже как бы существует в ТГ-стати, ну или в каком-то другом сервисе. И вот тут вот как раз-таки почему я говорил про админа. Может быть, что-то вручную добавлять, да, может что-то не вручную, но это уже дополнительные фичи, которые можно использовать. Может кто-то в ТГста ничего не добавил. Вот. Там просто, ну, это я это самый простой способ, да. Тут просто, видишь, важно понимать, что когда мы говорим канал добавлен, это немножко тут надо терминологию разную использовать. Почему? Потому что добавление канала пользователем не означает, что у нас его в базе нет. Это означает просто, что он, грубо говоря, себя привязывает к какому-то каналу, который есть. Вот и всё. А тогда можно назвать, что, не знаю, канал добавлен, канал зарегистрирован или что-то в этом роде, канал привязан к пользователю. Тут ещё вопрос возникает: а как подтвердить владение этим каналом? Я тебе легко отвечу. Вот ТГста это делает. У тебя, грубо говоря, когда ты указываешь канал, там прямо внутренняя механика, жмёшь кнопку, и он заставляет тебя залогиниться из-под своего аккаунта, и он, соответственно, делает эту связку. Это, короче, такая это типа как логин через Google. Это очень простая механика, которая легко делается. Понязовём это канал привязан. То есть ты же не можешь там левый канал привязан, он может у нас уже как бы быть в базе. А здесь, э, условно Ну давай список. Список каналов получен, да? То есть мы его откуда-то изъяли. Откуда, непонятно пока что. Вот. А дальше нам надо подумать, а что мы с этими каналами будем делать? Вот у нас их 100500 штук. Мы в каждый из них полезем. Вот как мы будем их обрабатывать? Ну я могу прямо даже технически, потому что уже подобные механики я у себя реализую. Раньше это было чуть сложно. Сейчас сышкой, конечно, категоризировать очень легко. То есть фактически, как делается в делается внутренний какой-то рубрикатор. Угу. Который непротиворечивый. То есть он довольно логично должен быть. Дальше, соответственно, у тебя будет что-то типа там какая-то яишка, которая будет его знать и будет прямо возвращать не какие-то рандомные ответы, а её можно прямо заставить вернуть там джесончик или ещё что-то. Структурировано, короче, структурированный вывод, да. ты даёшь ей, например, там описание канала, а его, значит, там посты последние, допустим, что-ты ещё говоришь, там, определи тематику этого канала. И, кстати, что ещё проще, как это обычно делается, у тебя есть ТГстат, в котором есть тематика этого канала, потому что там тоже куча аналитики. Давай вот для интереса мы не будем пока ТГстатом пользоваться. У нас просто есть где-то список, потому что ТГстат нас вполне может послать в одно место. Вот. А знаешь, Авита всех посылает, его парсят только в путь. Это для это решаемый вопрос, да? Серый парнер, кто кто их не покупал. Да, тут скорее я, наверное, концепцию скажу. Грубо говоря, агрегируется вся информация, которую ты только можешь создать для того, чтобы выполнить главную задачу. Тебе сначала нужна категоризация. Ты не можешь без категоризации работать, потому что ты иначе будешь не тем рекомендовать. Поэтому, как только каналы новые у тебя внутри появляются, тут же работает механизм, который занимается этой категоризацией, потому что именно потом, собственно, базовая вещь, которая происходит, вот прямо базовая, да, ты привязываешь свой канал и тут же прямо моментально в разделе тренды, вот как в Видики, да, который показывает лучшие посты, которые вот по связанной тематике идут. Поскольку всё это уже загружено, он тебе бам начинает показывать. Угу. Уже польза. Всё. То есть ещё не анализировали глубоко, мы просто сразу говорим: "Смотри, из нашей базы вот вот что пишут эти каналы". Так, хорошо. Значит, нам нужно ещё где-то эти категории взять. То есть у нас ээ какой-то условно справочник, да, должен быть справочник, да, мы категория добавлена. Я прямо, кстати, готов поспорить, что их не сложно сам чат GPT, поскольку многие категории какие-то подобные, ну, делают по контенту категоризацию. Я прямо уверен, что если я сейчас чат GPT попрошу, он мне там выдаст. Причём иерархический, скорее всего, ещё и список. Да, тут ещё можно добавить такое событие, что категория удалена, потому что, ну, мы можем её заархивировать, если она не используется где-нибудь, ну, при каких-нибудь инвариантах, но мы до них, я надеюсь, доберёмся тоже сегодня. Вот. Категория удалена, там архивирована, софт дали делаем, да? Вот дальше, если так вот подумать, там может быть сделать автоопределение категории такой, которой ещё не было. Ну, допустим, мы загрузили не всё, да, и появился канал, который э какую-то дичь постит, и у нас просто этой категории нету. И мы можем тоже предложить и сказать: "Вот, ребята, есть такая категория, там её окните. Вот как как опция. Так, хорошо. Категории мы разобрались. У нас есть список каналов. Теперь мы должны пройтись, по сути, по каждому каналу, да, и, аэ, определить определить а категорию. Категория для канала определена. Единственное, опять же, поскольку мы говорим про, а, стартап-режим и любой стартап проходит какие-то пивоты, да, то есть он всегда меняется, всегда всё оказывается не так. Я даже когда говорю категории, понятное дело, в голове прокручиваю такую мысль: может быть, это будут теги, может быть, их будет много, может быть, там привязка, да. Поэтому, когда мы это говорим, мы скорее обозначаем некую область, которую ещё надо покопать. То есть я бы вот, например, допустим, если бы мы по-настоящему это делали, я после этого так, надо эту тему вот прямо категорийность поизучать отдельно. Я пошёл с чатом GPT поговорил, опять же, ТГста посмотрел и уверен, что после этого пришёл бы уже с другой какой-то концепцией или там сильно поправленной и мы бы продолжили или я бы продолжил, если бы сам это делал. И смотри, я ещё что хочу сказать. Вот тут сразу видится, у нас есть тематика и категории, да? А тематику может быть тоже имеет смысл разложить на несколько историй. То есть у тебя вот в моём канале, да, что мы там пишем духоту какую-нибудь, да, стори из жизни и мимасики. То есть мы даже можем какое-то процентное там соотношение составить, что, ну, если какой-нибудь есть хороший мимасик, который есть в условно в теме вот этих вот каналов, то может быть его тоже подсветить и сделать с него репост. Понял, да, идею, кстати? Да, но единственное, тут уже чисто такая бизнесовый мозг мой включается. Могу сказать следующее. А важно не забывать, вот каждый раз, когда мы это сделаем, важно не забывать вот эту ценность, которую человек себе в голове видит, приходя к тебе на канал. А, например, Видика просто скажу, несмотря на то, что на Ютубе, допустим, я мог бы, ну, многие выпускают разные тоже, да, тематики, YouTube, они всё-таки не стараются, а, они не стараются именно вот так вот рулить, типа там сегодня, знаешь, там брендовая штука, завтра у нас юмор, послезавтра работа с возражениями. Они скорее в целом смотрят трендовые темы и тебе их рекомендуют, потому что это, во-первых, слишком сложно. Во-вторых, всё-таки основной посыл в основном как бы ключевом контенте, а всё остальное человек там плюс-минус и сам может. Ну, типа, ты же не будешь ему рекомендовать, я не знаю, вот у меня там, знаешь, есть история, по пятницам я иногда про свою жизнь рассказываю, там про медицину в Штатах, про то, как дети в школу уходят, про климат, про города, ещё что-то. И он мне такой будет говорить: "Так, давай сегодня про американские бани расскажем. Как-то будет странновато, не?" А это, кстати, может быть вполне себе ок. Мы экспериментировали, закидывали вот такие вот темы там. А это очень любят, потому что, ну, это как бы чуть-чуть подальше от духоты. Но вот тебе другой кейс. Я скорее про сервис. То есть то, что такое делается, это Да. Я скорее про то, что я бы не ждал от этого от сервиса, потому что мне от него как раз нужен вот мясо. То есть вот я бы так это воспринимал. кейс тогда что-то мы уже совсем куда-то от веншрминга уплыли и вообще тут сидим. А, кстати, вот ты не считаешь, что та и должно быть, когда речь идёт про реальный бизнес? Потому что а как ещё? Мы же не готовую какую-то структуру разбираем. Ну да, да. Я вот про что хотел сказать. Допустим, я сейчас канале пишу про dominand Diven Design, да, и про яишечку. И мне бы было бы здорово, если бы мне что-то подтаскивали по дом древедизайну и по яишке. А это могут быть совсем разные каналы. То есть тематика-то у меня плюс-минус э сохраняется, да? То есть категория. А вот мне и про то, и про другое интересно знать. Вот как тебе такая идейка? Тут комбинаторика может быть сумасшедшей, поэтому действительно хотелось бы упростить до уровня. Грубо говоря, если ты пишешь про ДД, то ДД там сыишкой, как бы это логично, это вполне себе входит туда. Например, я там пишу про, ну, например, видео про программирование, да, и, естественно, я когда смотрю, особенно вот для новичков, если братиться сам Хекслет, а не мой личный канал, у меня всё-таки больше для продвинутых людей, там, например, банально вот у тебя есть просто набор тем про найм. Угу. Потому что это связная история. Да. Да. Да. И так далее. Поэтому, грубо говоря, программирование и в целом всё, что вокруг этого. А, кстати, знаешь, в чём ещё прикол? Ты вот написал тематика, категория. Я ведь даже не заметил, что что в голове я говорил об одном и том же, но как-то получилось так, что я использовал потом другое слово, и у нас как бы разъезд пошёл. То есть А я тебе про это сказал как раз-таки то, что у нас есть категория сработало, да, у меня не сработало, потому что у меня в голове-то было одно и то же. Я бы, наверное так сказал, есть типы контента, опять же, юмор, там, не юмор, там личная история, ещё что-то есть. Действительно, и вот тематика категории, мне кажется, не стоит вводить два этих понятия, потому что скорее даже я слово категория бы переименовал в тематика, потому что тематика может быть выражена тегами, а может быть выражена с фиксированной иерархией, но нету разных понятий категории тематики, да, тогда тематики канала в таком случае мы вот чточто вот это, наверное, имеет смысл заложить, да, что как будто их может быть несколько, допустим, да, вот это вот было бы тематики определе. Я просто, блин, у кого-то в в канале на и тему опубликовали ссылку, типа жмякни, посмотри там про что вообще пишут, про что ты пишешь. То есть там вбиваешь ссылку своего канала и он собирает какую-то статистику, сколько тебе там лойсов поставили, сколько какашек, а и ээ показывает, про что ты пишешь. И вот там вот у меня там несколько пунктов прямо вывалилось, соответственно, тематики. Я думаю, это это прямо то, что нам надо. Ой, то есть это не однаединственная. Ну и тогда как цель результат, человек смотрит тренды. Я бы сказал так. Тренд вотг- это это вообще базовая вещь SMма любого и контент-мейкинга. Это в первую очередь смотрим, что делают другие, что быстро набирает, и тут же очень быстро повторяем, но в своей стилистике, со своими, а добавлениями. Поэтому, можно сказать, вот рядом с дневными рекомендациями я бы добавил тренды увижены. Тренды тоже тренды собраны, чтоб что проанализированы скорее тренды показаны. Тренды мы же всё-таки про людей, да? То, что мы их проанализировали, да? Предоста. О, кстати, вот мы говорим, говорим, говорим. Я знаешь что понял? Всё-таки, мне кажется, имеет смысл показать видик, потому что иначе будет дополня конца непонятно, о чём идёт речь. Засколько он действующий, я за него плачу. А давайте я вам его открою сейчас. Они тут, кстати, интерфейсик поменяли ещё. Ну вот она базовая инфа. То есть как только ты добавляешь канал, тут же получаешь эту инфу. О, прикинь, тут ишка. И убрать её никак нельзя. Ну ладно. Значит, смотри, он показывает сразу какие-то микро, а ошибки. То есть, например, что я забыл добавить там описание вшs, а предложение по тайтлам. Ну, это вот то, о чём мы с тобой говорили. упороться, но мы очень быстро потеряем главную идею. То есть понятно, что вокруг там столько всего можнорнуть. Ну давай посмотрим, что у нас для чего я, кстати, использую видик в основном для поиска тегов. Нушка, давай в двух словах, да, то есть у них очень размазанная такая получается модель. Ну они просто уже давно и большие, поэтому они добавляют фичи, которые уже нужны там небольшому проценту пользователей. А понятно, что у них даже есть там генерация вообще сценариев, картинок, чуть ли не видео. Я думаю, скоро они за тебя просто всё делать будут. А, значит, вот я открыл. Это по сути Outliers называется. А это как раз вот те самые видео. Обратите внимание, они вот все связаны с кодингом. И это опять же есть видео шорсы и картинки, кстати, даже можно смотреть. Ну и вот разные способы соответствовать. Кстати, мне знаешь, что ещё кажется? Они, возможно, делают тупее, чем мы сейчас с тобой на на придумывали. Тут, видишь, написано ключи. То есть вполне возможно, что сопоставление видосов конкретно идёт по ключам. По по ключам, да. Один и тот же канал же может совершенно разные вещи постить. Кстати, в отличие от О, хотел тут сказать, тут есть ещё разница чисто контент у контент-рейторов между созданием контента под телегу и под YouTube. Например, YouTube люди смотрят часто непоследовательно. Это нормально, что у тебя есть какое-то переключение, оно допустимо. То есть, например, ты можешь лайв сделать, ты можешь подкаст сделать, а потом херакс, там, не знаю, разбор какой-нибудь серьёзный, да? Вот. Или ты там в путешествие уехал, что-нибудь показал. Ну, так стараются уж совсем делать. Такое бывает. В телеге с этим сложнее. Ты не можешь прыгать по тематикам, потому что люди к тебе, кто подписался про Ии слушать. Если ты вместо этого начал писать, не знаю, про кошек регулярно, от тебя будут отписываться. Там там просто невозможно смотреть непоследовательно, потому что YouTube, как правило, ты не ходишь на канал, а тебе просто тупо подкидывает, да, то, что тебе интересно. Поэтому, когда вот это вот здесь показывается, возможно, здесь более сложная тема, то есть, например, в Телеге достаточно ориентироваться на сам канал и на его тематику. Ну, в целом можно упростить жизнь, то здесь скорее каждый конкретное видео, оно имеет конкретное э приложение. И поэтому каждое видео анализируется индивидуально с точки зрения того, к какой тематике оно относится. Ну, это я так гипотетически сейчас фантазирую. И смотри, вот это вот число, ты знаешь, что оно обозначает, это как раз outперance, то есть когда у тебя канал перформит намного сильнее, чем обычно видео на этом канале, и поэтому они сюда и попали. Это те самые тренды. То есть вот прямо пропёрло там. Ну, представляешь, да, у чувака, не знаю, было 1.000 просмотров, он выпустил видос, а у него 100.000 просмотров. Охрененно, да? Ну и таким образом мы получаем с тобой первую базовую вещь, которая в целом уже, мне кажется, ну, представляет из себя ценность. Ты такой вот что прямо сейчас прёт в разных местах. Я, кстати, хотел бы это видеть по телеге, то есть вот что где у кого сейчас прёт. Да. Да. Ну и давай сразу уж тогда покажем, раз уж мы здесь вот эти Daily ideas, как это работает. Мне именно нравится, кстати, концепция. Они прикольно придумали, что это именно, то есть не просто у тебя непрерывный поток, а то, что они это привязали, что каждый день новый, и ты такой у тебя есть как бы некий ритм, ты этого ждёшь, ты это понимаешь, эту механику, что надо каждый именно заходить, не каждую секунду тебе там просто генерирует что-то новое. Вот как это выглядит. Как избежать главных ошибок новичков программирования? И я тут типа лайк либо дислайк. Там пять распространённых ошибок начинающих программистов. Что спросить у рекрутера на собеседование? Ну и пошёл там по популярности, меньше, меньше, меньше. И вот я их откладываю. У меня там появляется, вот видишь, там сохранённая. Угу. Дальше есть компетиторы. А я вот сюда всяких разных ребят добавил. Кто-то сейчас, наверное, удивится, увидев тут разные имена и всё остальное. Но я просто добавляю всех тех, кто, а, как бы может неплохо перформить. Соответственно, здесь могу их анализировать, смотреть, кто растёт, кто не растёт. Видишь? А за эту неделю общее количество просмотров. Ну, и самое главное, их видео и на основе этого что-то делать. Ну, а дальше уже более хитрые всякие штуки. То есть, по большому счёту, смотри, генерация, написание скриптов, обработка, а это создание, это школа их обучения, это там анализ твоих подписчиков, то есть это уже всё, всякие дополнительные приколюхи, которые нужны. Ну и Optimй - это сеошная история, он тебе как раз рекомендует, но тут надо понимать, что это практически неприменимо к телеге, потому что там нет, там нету, да. Вот поэтому пока это неприменимо. Так, ну что, давай вернёмся к нашей истории. Надо подумать, э-э, вот тематики мы определили, да, у нас есть тренды показали, да, тренды показали. Как мы дойдём до этих трендов, что нам нужно сделать с, в простом варианте предлагаю сопоставление делать на уровне каналов, не на уровне конкретных постов. Э, потому что, опять же, я объяснил, почему, по крайне мере, сейчас это точно допустимо, соответственно, а внутри, ну, неважно каким механизмом, короче, какой-то идёт механизм сопоставления. Дальше мы делаем очень просто неки некая выборка из базы, что достань мне все посты каналов, которые А у меня уже в голове джой нарисуются, да, каналов, которые соответственно к этому относятся, да, и просто показываем, даём какие-то фильтры, сортировки и показываем, насколько они перформят, вот как там показано, там 100X и так далее, вот эти вот циферки по сравнению с обычным количеством просмотров. Но здесь есть нюанс. В Ютубе у тебя реально существует понятие выйти за рамки своей аудитории и показать вообще всем. У тебя там иксы возможны. В телеге так работает очень мало. То есть, да, у тебя бывает шаринг большой, а, но, как правило, такого, что у тебя было там обычно 1.000 просмотров, а тут 10.000, бывает крайне редко. То есть оно там скачет не так сильно. Поэтому там скорее будет опираться на engagement рейд, например, сколько пошарили, сколько там реакций поставили, сколько лойсы поставили, если они включатся, что да, engagйрей там будет стоять. е охваты, то есть там есть, сколько посмотрели твой пост. Ну это я то как раз сказал, что в телеге оно не сильно скачет, у тебя нету возможности её, то есть пока её не шарят, у тебя нет возможности показать её за рамками своей аудитории, как делает YouTube, который у меня, знаешь, есть этот шортс, который, значит, обычно шорсы 5-6.000 се просмотров, один шорт, бам, 3 млн у. Угу. Ну, потому что YouTube решил показать его всем. Вот в телеге. В телеге таких механик не телеги, да, нету. Э, хорошо. Вот тематики мы определили и, э, мы дальше, получается, каким-то образом собираем, а, тренды, да, вот по вот этой штуке и делаем это, допустим, периодически. То есть тренды они тоже, наверное, какие-то дневные. У нас, мне кажется, тренды просто тупо добавляются каждый раз. То есть, если я сейчас F5 нажму, там нет никакой привязки. Но это и не принципиально, грубо говоря. Просто есть на фоне некая наша, а, джаба, которая ходит там и занимается тем, что собирает эту инфу, формирует тренды, да, и постоянно просто добавляет в базюльку, а мы, соответственно, F5, F5, F5, да, тогда давай давай тренды за период, тогда мы их назовём, за период предоставлены. Почему за период? Потому что, ну, как бы каждый раз делать джойн, условно, ну, мы опять, да, в технику упарываемся. Каждый раз делать джоийн, наверное, не очень будет хорошо. То есть мы каждый просто и времени формируем эти тренды и потом уже их отображаем какой-то линии, условно, да, там, на самом деле, нет, там проблем не будет никакой. Это 100%. Ну просто ладно, тренды показываем, фильтрации, всё остальное. Так, хорошо, тренды мы поняли, мы примерно уже в голове у себя прикинули, как мы, э, предоставляем, а вот как мы рекомендации делаем. То есть рекомендации наверняка на основе трендов у нас будут. Это сложный вопрос. Вот ты же видел сейчас рекомендации, которые я показывал, там какие рекрутеры, бла-бла-бла, они не выглядят как на основе прямо трендов. То есть я, честно говоря, над этим сильно не думал и и понимаю, что скорее всего я даже вот сейчас в течение там надо вот минуты, допустим, чтобы люди ещё не устали, придумать механизм. Я не уверен, что я его придумаю. Мне кажется, что а скорее, знаешь, как это может быть? Вот самый тупой вариант. Ты просто берёшь тематику и говоришь чату GPT опять же, типа, скажи, какие темы можно было бы там рекомендовать. И мне кажется, что опять же самый простой вариант, чтобы просто запуститься, к тебе пришли люди, начали тебе давать фидбек и говорить: "Он херню рекомендует", и ты там промтами начал, знаешь, этот чистить. То есть я вижу, что есть какой-то микс промнжениринга за 500к на Да. Дадада. Я думаю, что здесь именно микс между промнженирингом, а тем, что ты получаешь, и возможностью иишки использовать тулы. Тулы, я имею в виду, типа пойти поресёрчить. То есть я бы не стал сам парсить интернет. Я бы использовал тулы ишки для того, чтобы, а, например, сказать ей там, не знаю, посмотри новости. Вот примерды в твиттере. Классная же вещь. Она вот об этом, кстати, да, которую показываете, что входит. Например, вот эту штуку посмотреть. Короче, я бы сейчас максимально сделал тупое решение, завязанное на Иишку, которое эти тренды, эти идеи бы формировала, даже если это не Ну, даже вот смотри, он там пишет: "Пять вопросов рекрутеру". Ну нет никакой привязки ко времени. Это и 5 лет назад можно было рекомендовать, правильно? Ведь поэтому я думаю, что Иишка в этом плане нормально справится, даже несмотря. Мы ещё пока не говорим про инфоповоды, о которых узнаём. Это надо новости все парсить, по сути. Да, смотри, здесь у меня какая идея пришла. Мы по сути же рекомендательную систему пытаемся сделать из говна и палок. Вот. А нам в комментариях обязательно скажет, что так никто не делает. Вот. Но для нашего эксперимента, я думаю, вполне себе хватит. И мы, я думаю, сейчас ещё эту иишку отобразим где-нибудь на схеме. А не думаю, что скажут, потому что речь идёт же про бизнес. Рекомендатель система всё-таки немножко другое. Это вот у тебя уже там набор, не знаю, музыки, видео, и ты что-то рекомендуешь. Здесь фактически тренды, ну, в смысле, не тренды, а рекомендации, это о чём ещё можно писать. Потому что если писать только о том, о чём уже написано, это такое себе, честно говоря. И вот вот к этой идее прийти надо. То есть она ты не можешь её сразу придумать классной. И более того, я вообще не верю в то, что то, что надо над этим сильно думать. Надо дать возможность увидеть что-то, что похоже на темы. Ну, например, ты говоришьфнendнд, чат GPT спрашивает, он говорит: "Напиши про про хуки в реакте, напиши про новый двадцатый реа". Ну, понимаешь, типа концепции какие можно рассказать. Дальше ты приглашаешь там своих друзей, кого угодно, говоришь бесплатный демодоступ, показываешь и самое, знаешь, что главное рекомендуе реализуешь на сайте систему обратной связи и возможности быстро с людьми поговорить. Это очень важно в данном случае. Ну да. И просто тупо максимально быстро начинаешь с ними общаться, и они тебе говорят: "То, не то" и так далее. Я уверен, что за неделю такого вот альфа-теста, это даже не бета-тест, а идеи о том, что и как лучше поправить и в какую сторону идти, они придут просто в огромном количестве. То есть самое главное, что есть некая концепция, она вот как-то выводится, мы как-то её храним, а то, как она там вот именно непосредственно получает эту инфу, ну, какой-то алгоритм, который будет оптимизироваться. О'кей, давай тогда, смотри, э мы как будто бы придумали события, которые будут в нашем MVP. Их не так много, всего восемь штук. Вот. И, а, мы можем сейчас попробовать э добавить вот такую вот вещь под названием команда. Она называется в нашем случае, наверное, это будет выглядеть очень примитивно, но это действие, которое нужно выполнить, чтобы у нас событие вывалилось, то есть, чтобы событие произошло. Условно, вот если пользователь зарегистрирован в системе, то нам нужно, ну, выполнить команду зарегистрироваться, да? Очень просто регистрироваться. Причём мы можем даже вот мы же делаем MVP, а через Google, там через Google там их ОIDЦ или что у них есть, а чтобы самим ничего не придумывать. Вот. То есть мы зарегистрировались через Google, у нас всё, пользователь появился. Вот. Дальше пользователь заходит, да, а и выполняет привязку канала. Привязать канал. Люди, которые меня регулярно смотрят, сейчас должны, знаешь что сказать? А это те самые конечные автоматы, о которых всё время говорит Кирилл. Меня, то есть тебя, видишь, считают фанбоем там ДД шторминга, а меня считают фанбой в конечных автоматов. Я говорю: "Вот всё проектируется, что не ФМ боем". Вот.
Ну, по сути, это очень похожая история. То есть, если ты помнишь теорию конечных автоматов, они как раз-таки, по-моему, порождают события. Вот есть автоматы мили, автоматы Мура. Не, мы реально моделируем. То есть у тебя моделирование всех этих штук, конечно, через автоматы идёт. У тебя есть набор состояний, у тебя есть переходы, да? Да. Я именно в этом смысле. Я всегда говорю: "Ребята, не надо про эту математику. Мы говорим про нормальную жизнь. У вас есть там доставка, у вас есть там покупка, оплата. Это всё моделируется автоматами". Да. Так, дальше определить тематики, да, или там выделить. Выделить это по сути то, что мы будем кодировать. То есть любое действие - это именно то, что мы кодим, да? И дальше давай. У нас тут супер простая история - это добавить категорию. Добавить категорию. Ну и здесь можно написать, наверное, удалить категорию. То есть это будет soft delete нам напоминать, что она будет заархивирована. Ну и может быть инвариант я продемонстрирую. А на этом удалить категорию или не категорию, у нас же тематика, да? Дадада. Да, мы же договорились, что тематику. Угу. Тематику.
Пока ты пишешь, хочу сказать, независимо от того, используете вы ДДД или нет, идея, которую пропагандирует ДДД о том, что терминология важна и важно о ней договориться сразу и так, чтобы с ней согласились все и эксперты, и люди, которые непосредственно это всё имплементяят, и бизнес потому что не факт, что это эксперты. Это очень важно, потому что если вы этого не сделаете, это потом огребёте. кто называет тематикой, кто категории, как это в кодесано, приходят новые люди используют такой аппарат, потом надо в голове это транслировать, это кошмар, как бы это всё равно произойдёт. Любой взрослый продукт всегда расходится, но думать об этом и стараться унифицировать и вообще говорить на одном языке экономит очень много ресурсов и сил. И очень хорошо сейчас даже видно, да, как мы с тобой в процессе, даже, казалось бы, в такой теме простой и понятной для нас с тобой тут три события тут путаться не ни не в чём, по сути. Да, да, мы всё равно с тобой терминологию такие, а как это назвать и так далее. А я помню, когда у тебя там опять же телеком тот же самый, ну там часами просто только можно обсуждать. А если финансы какие-нибудь, страхование, э медицина там, ну ты просто терминов даже таких не знаешь, вот которые они используют. Они ещё могут противоречить каким-то зарезервированным словам в коде. Знаешь, такие приколы бывают. У нас было то ли групп, то ли модуль, я не помню. Короче, мы какое-то слово использовали и начали его имплементить. И оказалось, что в рубях у нас есть прямо встроенный такой модуль, и им просто нельзя называть. И мы такие: "Чёрт побери, пришлось там перепридумывать". Многие хихикают над над одинской. Вот. Но один - это, по-моему, неплохой пример единого языка, как они там программируют, чем они пользуются. Ну, с определёнными говорками всё-таки, но тем не менее бухгалтера и другие там технические, более технические специалисты, они плюс-минус друг друга понимают. Вот. И ничего смешного нету. Мы даже в одной системе, я не знаю, то ли специально так получилось, то ли эчано использовали русские символы. Java же позволяет там, э, можно по-русски классы называть, просто они так называли, что я не знаю, как это перевести на английский. Вот, честное слово. Вот если будем переводить, запутаемся. Там именно какие-то юридические, регуляционные вот эти вот штуки вот. И прямо назвали по-русски. Ну ладно, не запутались. Так, мы команды написали. В более сложных системах они называются чуть-чуть по-другому. То есть не не вот прямо один в один, да, как у нас сейчас вышло. А и можно попробовать определить роли, то есть кто это делает. Я обычно лейбл рисую вот здесь такой, да, то есть тут пользователь, допустим. Слушай, а для сравнения можешь сказать, э вот, допустим, какая-то система, которую ты бы проектировал вот в большом сложном приложении, сколько бы получилось событий? Там десятки легко вообще. Вот. Плюс это не, ну, э- мо може могут и сотни получиться. Тут как бы можно может и до тысячи. Другое дело, что эти события потом объединяются в какие-то, точнее, разделяются ограниченными контекстами, да. Вот. И это не всё одна система, а это дальше идёт там на какие-нибудь микросервисы делятся или просто внутри одного деплоймент юнита размещается и просто эти контексты друг от друга друг о друге особо ничего не знают. Вот. Э тут прикол в том, что ты иногда сидишь, у тебя уже там башка кипит, событий этих получилось целое ведро, ты уже не помнишь, с чего ты начинал. Вот и сидишь думаешь, а люди же такое разрабатывают просто, ну, типа, да, да, мы сейчас сделаем, короче, вот. И начинают там сущности в базейке размечать. Плюс события иногда вот они дублируются, когда ты экспертов просишь, типа, вот напишите это обычно не я делаю, да, а кто-то вот они пишут эти события, то есть это должны эксперты писать. У них события получаются одинаковые, а на самом деле они не совсем одинаковые. Это просто из разных контекстов. Вот. И в общем, там столько нюансов есть, но как минимум получается наглядно и в голове немножечко причёсывается, как это всё работает. Можно возвращаться. Мы, более того, когда разрабатываем вот эту историю, делаем рабочим инструментом. То есть она не вот эта карта, она не устаревает, то есть мы её не забрасываем. Прежде чем сделать какое-то изменение, мы сначала моделируем, потом уже делаем. То есть, и оно постоянно находится в актуальном состоянии. Ну, плюс-минус. Так, значит, мы теперь проставляем вот эту вот историю, да? То есть мы говорим, кто это должен выполнять. Выделить тематики канала, это возможно будет система делать. Тут, кстати, я забыл, а, дневные рекомендации, да? А, предоставить дневные рекомендации. ��от иногда я пишу система, да? То есть это как какое-то автоматическое действие от нас независящее. Иногда я ничего не пишу, просто, ну, типа это где-то внутри происходит. Здесь опять же нужно понимать, что эта штука неформальная, да, у нас нету каких-то ограничений. Единственное, чего здесь обязательно, я бы, наверное, сказал- это событие, ну, потому что на них всё опирается. Вот. Дальше тематику у нас добавляет некий администратор, да? То есть это, ну, какой-то челик, администратор. А это, ну, с точки зрения процесса, мы сейчас говорим, на самом деле пользователь может называться не пользователем, а клиентом. И в одном контексте это будет пользователь, а в другом, например, врач. То есть вот у меня есть пример такой системы, где мы добавляем специалистов врачей, добавляем пациентов. И в одном контексте они врачи, пациенты, а в другом просто пользователи. Ну, потому что контекст авторизации и аутентификации - это generic контекст, да? То есть это универсальный. Мы там взяли условный кейк или что-то в этом роде, и всё, мы его не реализовывали самостоятельно. И там он пользователь, а здесь он, э, врач. Здесь пока что пользователь и администратор. Мы на там самом зачаточном уровне находимся. Нам вот этих двух чуваков хватит. Дальше список каналов у нас тоже каким-то автоматическим образом получается. А определяется м определяются тематики канала тоже автоматическим образом. Ну и тренды, в принципе, вот. И выходит, что у нас пользователь взаимодействует вот в двух местах, да? То есть он регистрируется, привязывает канал, а дальше он состояние системы не меняет, он только наблюдает. То есть всё остальное происходит у нас магическим образом. Вот. Ну мы, кстати, можем добавить добавление конкурентов, потому что это 100% будет один из прямых следующих шагов. Но опять же, в отличие от Ютуба, тут немножко сложнее. Надо будет подумать, на что это и как будет влиять. Давай пока что пока что мы, ну, для упрощения мы не будем этого делать, просто пусть будет вот таким образом реализовано. Так, следующее, над чем нам нужно подумать - это над агрегатами. Э, я надеюсь, все примерно представляют, что это такое. Обычно я изображаю таким таким вот оранжевой штучкой. А это то, над чем производится действие и что в конечном итоге порождает событие, да? То есть вот здесь вот у нас, например, будет пользователь.
Вот мы его зарегистрировали, да, точнее он зарегистрировался. Вот событие свершилось, и у нас появился пользователь. То есть это, ну, прямо можете считать, если на технический уровень падать, это, ну, запись в базе данных, да, условно. Дальше у нас идёт, а, привязка канала. Здесь, наверное, будет какой-то канал.
То есть мы его добавляем. И мы не просто добавляем, мы должны его привязать толь толь только после его верификации. Вот эта, кстати, штука может тоже распасться на несколько частей. То есть мы канал добавили, потом каким-то образом его верифицировали, и только тогда он считается привязанным. То есть на на два можно шага разбить, но это надо уже конкретную механику смотреть. Как это делается сейчас, ну, мне, по крайней мере, тяжело сказать. А для таких вот вещей, когда мы не до конца понимаем, что делать, мы можем поставить какой-нибудь там ядрёно-красный цвет сделаем. И можем поставить вопросик, да, вот так вот. По-моему, это называется хотспот, когда мы не знаем детали. И иногда я ещё подписываю вот так вот посмотреть механику привязки. Привязки каналов. Подтверждение. Как там? Подтверждение же, да, по-моему. Ну да, подтверждение. Владение механику. Подтверждение владением канала. Ждение владений каналом. Отлично. То есть это может быть распасться ещё на несколько. Дальше. А вот мы выделяем тематику. Мы, в принципе, можем эту тематику, а, как бы поработать над каналом, да, самим, то есть внутрь него запихать эту тематику. Мы вычислим, у нас условно, да, будет прямо метод. Либо же мы можем даже сделать отдельные записи по тематике, э, сделать связь между вот этой вот тематикой и, э, вот этой штукой. Но если вот говорить бизнесово, мы как будто бы определяем тематику самого канала. То есть мы можем пока так оставить. И ещё раз напомню, что это не точная копия кода. Это очень похожая на неё вещь. В процессе реализации бывает так, что ты понимаешь, что так не работает, да? То есть это, ну, просто невозможно таким образом реализовать. И ты возвращаешься обратно и думаешь: "А как бы нам перепилить?" Вот здесь у нас явно, ну, будет какая-то простая вещь под названием тематика. И, соответственно, мы над ней выполняем какие-то действия, да? Вот так вот. Тематика архивирована.
Так, получить список каналов. Вот здесь вот тоже есть канал, да, но в чём прикол? Это может быть не тот же самый канал. То есть это может быть какая-то другая а сущность, какой-то другой агрегат. И тут надо подумать, может быть, знаешь, как делается? Мы сначала добавляем канал, потом делаем его привязка. То есть вот эта вот штука распадается на две, то, что я говорил. То есть мы сначала добавляем его, а затем привязываем. То есть мы создаём привязку, а не сам канал. Дадада. Да. Ну вот вот вот такой вот можно разделить. имеет, поскольку там уникальные идентификаторы, все каналы уникальные, поэтому там имеет смысл действительно общий вести список, в том числе потому что, допустим, добавили новый канал, который ещё не было, тыже с него можешь начать собирать инфу. Так что это 100%м решеним. Давай тогда сразу это и разделим таким вот образом. То есть, а мы м сначала добавляем канал, да, получается добавить канал. Так вот сразу делаем. Добавить канал.
Ой,
канал добавлен. А затем мы над этим каналом мы что делаем? Мы подтвердить владение каналом.
владение каналом каналом. И то есть мы привязываем вот здесь надо тоже подумать. Вот мне не очень нравится то, что мы это делаем над каналом. Возможно, есть какая-то а привязка. Вот как-то может быть у тебя в голове есть как-то можно это сформулировать, да, термин какой-то. Мы же выдумываем сейчас предмет, да? У нас просто как пример скажу. Вот у нас есть такое понятие в нашей образовательной тематике у тебя есть урок, ты можешь как бы типа аля участник урока, ну, потому что ты в него вступаешь, у теб есть какая-то аналитика, да, например, курс, ты можешь стать участником курса, там есть программа обучения и так далее, и у нас есть внутреннее понятие, мы всегда это называем, то есть есть курс, есть юзер, а есть курсмер. И вот и вот это, да, распространяется на всё. И вот здесь получается у тебя есть, слушай, ну я бы сказал так, я бы назвал это автор канала, потому что как бы человек, не автор канала, это просто человек. И как бы мы создаём, то есть мм нет, автор, да, автор канала - это связь между, собственно, каналом и пользователем. Авторство. Может быть, вот так вот. В любом случае это куда-то сюда. Вла владение владелец, да? Давай. Мо, может быть, написать владение владелец. Хм. А вот смотри, а здесь, кстати, вот мы сейчас термин владелец используем, а вот здесь вот может быть не пользователь, а как раз-таки владелец регается просто пользователь. Ну типа он ещё он ещё ничем не владеет. Чтобы ты стал владельцем, ты должен подтвердить его владение. Вот. А вообще такие вещи, кстати, очень классно разбирает чат GPT. Давай я вот прямо сейчас у него спрошу. Давай. Ну ты пока дальше двигайся, а я просто на фоне тут. Вот здесь я чуть-чуть переименовал событие. Мне кажется, лучше его назвать список каналов загружен. Немного технический термин, но на самом деле он не не совсем технический. То есть загруженно здесь что имеется в виду? Что мы его получили и где-то разместили. Вот типа такого. Ну тоже как бы обсуждаемо. То есть мы их добавили по сути или можно даже вот так вот сделать. Канал добавлен. Вот даже такое же событие. Каналы добавлены. На самом деле там будет 100500 э событий, либо же одно событие с каналами. которых ещё не существовало. Вот типа такого. Ну, ну это скорее всего индивидуально, потому что это Да, оно вообще в целом, а, короче, я посмотрел, знаешь, что он рекомендует? Он говорит: "Channel ownership", то есть владение владение, да? Давай. Он сказал, что это распространённая фр Ownerership, да, это прям вот английское слово Overship, оно очень распространено. Вот. А как уж э по-русски, ну ладно, давай так назовём. Вот. То есть каналы добавлены. И а здесь мы ещё что делаем? Мы у нас опять над каналом мы проделыем то же самое, то есть тематики определяем и затем
вот тематики определены. Вот прямо опять же вот вот эта вот штука прямо у нас используется как будто бы. Видишь, очень похожая история. То есть мы и там, и там определяем тематику. Может быть, это сделать одним событием. Ну, логика та же самая, да, просто моменты запуска и нотификация пользователя. Да, ну, про запуски и нотификации сейчас тоже посмотрим. Так, здесь у нас будут рекомендации, да, какие-то рекомендации. Причём рекомендации, я так понимаю, они для конкретного канала, так ведь? Да, они прямо индивидуальные. Это тут сехо не просто. Кстати, вот знаешь что интересно? Они, скорее всего, себе жизнь упрощают. То есть если у тебя есть одна тематика, ну нафига независимо генерить? Можно же под тематику генерить. Вот надо тут будет думать, не ответишь сразу. Да, давай. Тогда получается, что у тебя тематик должно быть много. Я бы, знаешь что, я бы здесь просто сделал пока рекомендации для владельца, потому что мы рекомендации предоставляем, ну, вот конкретному какому-то чуваку, да, вот он владение подтвердил. Мы не всем пишем, что тебе писать. Так ведь? Ну, иначе это было бы странно. Угу. Мне кажется, а рекомендации для владетельца.
И здесь, а, тренды они, в принципе, общие, да? на на период ещё я бы добавил. То есть рекомендации период рекомендации нам же предоставляются на какое-то время, то есть вот на сегодня условно, да, чтобы ты мог там отлистывать назад, смотреть типа, что тебе вчера рекомендовали. Да, там по можно по-разному, конечно, делать. В любом случае, в ба всё это лежит. Да, ну да, да. Ну давай, ладно, если тебя это смущает, давай для владе для владельца просто как-нибудь. Пока что без разницы. А здесь тренды. Тренды. Вот. Причём тренды, я так понимаю, они ну это уже надо будет содержимое смотреть, и может мы сегодня доберёмся до этого. А это могут быть несколько там позиций, да, внутри, э что сейчас есть, да, либо же, смотри, тут самый простой вариант, сразу объясню. как вот там они показывали, у тебя, грубо говоря, тренд определяется не тем, что а мы в целом весь массив анализируем. Это слишком глубокая, сложная задача. Тут скорее речь идёт о том, что если ты смотришь, что в конкретном, а, то есть о чём пишут в целом все каналы, но среди всего, что они пишут по твоей тематике, мы выбираем только те, в которых, а, ну, самая базовая механика - это outperперformance, то есть когда у тебя количество лайков, всего остального выше. То есть приме мы за последнюю неделю посмотрели все посты от всех авторов в твоей тематике и посмотрели, что вот если, то есть у тебя, например, разница может быть огромная, что у этого канала там 10.000 просмотров, а у этого 100, но у того, у кого 100, у него всё, все посты до этого только по одному разу смотрели. То есть получается, что он более трендовый, если у того, у кого 10.000, 10.000 и так каждый раз, понимаешь, да? То есть тебя как ты смотришь относительно канала Performance и таким образом ты это даёшь. Плюс дополнительно можно, например, смотреть опять же под трендом, иметь в виду то, что делают все. То есть, например, мы ещё анализируем, ну, о чём пишут конкретно люди, потому что там же их не, ну, не так много, если уж ты соберёшь посты за неделю, за последнюю. И ты можешь, например, посмотреть, э, типа, какая тема встречается чаще всего, потому что, например, это инфоповод и его порекомендовать. Ну, грубо говоря, набор таких микромеханик, потому что ты не придумаешь один единый алгоритм: "Подбери мне тренды". Да, это набор микромеханик, как отобрать из этого массива то, что надо. Ну, и их можно постоянно тюнить. Это такой непрерывный процесс. У так, э, о'кей, с этим понятно. Тут можно даже тренды, а, потом разделить. То есть тренды, например, на основе таких-то механик, тренды на основе таких-то механик, потом это всё, да, пошь там выбор даже был, там лучшее совпадение, максимальное количество этих там старов, что-нибуд что-нибудь такое, да. И они ещё там категоризируются по что там у нас тематика, да, это называется. И таким образом, ну, смешнявка, ты имеешь в виду, или там серьёзный пост или что-то тако, да? Ну, или там ДД и или ещё что-то. Так, окей. Это да, я ещё раз для зрителей на всякий случай напомню, это отправная точка всего лишь, да? Это мы сейчас просто фантазируем, а дальше обычно возвращаются к этому ивентрмингу и по 10 раз, а, уточняют, докручивают и так далее. Так, теперь у нас есть такая история под названием инварианты. Оно обычно я изображаю вот таким вот цветом. В чём его суть? Инвариант - это такая вещь, которая некое правило, которое должно быть, э, должно выполняться на протяжении всего жизненного цикла агрегата. Вот. Ну, допустим, самый простой инвариант, что можно придумать, там в заказе может быть не больше десяти позиций. То есть ты на вход передаёшь, ну, как бы заведомом валидные данные, но десятый за там одиннадцатый заказ туда не лезет. Вот типа такого может быть инварианта. Причём я разделяю инварианты на общесистемные и внутри агрегатные. Ну вот с заказом это внутриагрегатный, да. Я не знаю, есть такая классификация или нет. Честно говоря, пофигу. А я ей просто пользуюсь. Всё, что тебе нужно для поддержания этого правила, есть в самом агрегате. А есть инварианты, которые как бы между вот этими агрегатами. Вот, допустим, у нас пользователь, да, а должен быть там с уникальным не знаю, что там, имейлом, да. Ну, это самый простой вариант. И система просто не должна дать сохранить эту историю, да. То есть должен быть уникальный. Давай такой для примера напишем. Быть тоже опять же, чтобы люди не думали, что мы идиоты. Это просто для наглядности. Понятно, что все для всех это очевидно, да. Но вот в этих инвариантах, э, кроется м большая, не знаю, как это назвать, магия или не не магия. Суть в чём? Многие вот эти вот штуки, правила и ограничения игнорируют. И нужно прямо носом водить и говорить, типа, ребята, какие у нас есть ограничения? Ну, допустим, мы добавляем канал, да? Мы же не любой можем добавить канал, наверное. То есть вот, э, кто-то уже владеет этим каналом, а я хочу ещё его, да, у себя в личном кабинете подтвердить его владение. То есть, может быть, ну ладно, о'кей, добавить канал мы разрешим любой, но подтвердить владение, да, вот вообще в целом запустить эту процедуру может только человек, если это если этим каналом никто не владеет. Никто не владеет. Там, знаешь, а не покатит. Знаешь почему? Это, кстати, интересная штука. Я вряд ли бы мы стали об этом думать, когда реализовывали сходу, но я просто знаю к чему какая там есть подводная штука. Давай, давай, давай. А, допустим, ты подтвердил владение, у тебя есть канал. Угу. И в этот момент владелец передал его другому человеку. Другому человеку, да. Всё, у тебя связь потерялась. То есть ты внутри системы продолжаешь ему, значит, говорить, что это твой канал, а в реальности уже владеет им кто-то другой. И, соответственно, вот а вот может быть, да, ну, тут уже из предметки надо смотреть. Ну, может быть, на первый на первый раз это ОК. То есть для MVP, то есть мы как будто бы считаем, что он не передаётся. Для каких-то тестов этого будет достаточно дальше уже, да, думать, там, отслеживать, может быть, владение этим каналом и так далее. Вот. А теперь, да. А теперь я добавлю именно то, как это на практике происходит. Дело в том, что это всё связано ещё с мы тут домен-то один не описа, в смысле баун контекст один не описали. Это бабло. Это вот всё, что касается там страйпа, подключить и снимать деньги с людей. А, смотри, в чём прикол. Подтверждение владения довольно тяжёлая операция. То есть этот это этап воронки, на котором ты потеряешь кучу людей. Угу. И в чём здесь фишка? Канал - это всё-таки не такая вещь. То есть мы же не автопостингом занимаемся, и мы не делаем какие-то вещи, которые могут привести к, ну, к тому, что-то пойдёт не так. Ну, то есть любой человек и так может посмотреть твой канал и поанализировать и на основе него что-то делать. Соответственно, если ты возьмёшь видик, то вообще-то никаких ограничений не существует. Ты берёшь любой канал и, пожалуйста, просто нет никакой прямой вообще связи. А в ТГстате есть понятие подтверждения. Но для чего? Если ты хочешь, то есть у них на этом по сути бизнес-модель построена. Если ты хочешь расширенную аналитику по сво по каналу, она продаётся, но для этого ты должен подтвердить владение, потому что там там тебе дают уже очень много у них там инструментарий уже начинают появляться, ботики всякие туда-сюда. Поэтому тут можно смотреть на это так: "Да вообще похер, добавляйте канал, какой хотите". Вот когда появится дополнительная функциональность аля автопостинг, но там просто по-другому нельзя. Тебе придётся там бота добавлять и как-то подтверждать и вот это всё. Поэтому мсо вреда никакого не можно принести, да? Вреда принести нельзя никому вообще никак, потому что это мы берём только публичную информацию, да. Поэтому с точки зрения бизнеса лучше нахер убрать и вообще об этом не думать. Угу. Всё, понял. Это тоже валидное замечание, да? А бабло потом на это насадить, когда надо будет? Аа я просто когда когда э там мы говорили про валидацию, у меня тоже там есть несколько роликов, э у ребят возник вопрос типа: "А нафига так сложно?" То есть мы, допустим, делаем там валидацию какого-нибудь инна, вин-номера, там, не знаю, что что угодно. И в каких-то случаях нам достаточно, чтобы, ну, как бы формат совпадает, да, там какой-то ереси откровенно нет, потому что вот вин-номер завалидировать, там умрёшь. Потому что есть несколько форматов, где-то есть чек сумма, где-то нету. И пока ты будешь реализовывать, ну, как бы тебя уже конкуренты обскачат. Для чего есть смысл, да? Если у тебя этот вин-номер распространяется там по другим системам и уезжает куда-то, ты не сможешь его потом исправить. То есть цена ошибки очень большая. Если ты просто для своего учёта это делаешь, да, то как бы, ну, и ладно. То есть там какую-то примитивную валидацию сделали. этот вин-номер никуда не уедет. Ну или там много с чем можно так делать. То есть в зависимости от твоих кейсов, в зависимости от того, как ты связан и насколько эта инфа критическая, да, ты можешь варьировать правила, то есть делать их более мягкими, скажем так. Вот. А где-то нужно сделать прямо очень жёстко и никуда. Вот тут то же самое. То есть, о'кей, да, мы можем это правило приделать, да, этот Н вариант, но в целом он ни на что не влияет, и навредить ты никак не можешь. Поэтому единственное я добавлю, если, допустим, нам бы пришлось это реализовывать, ну, потом, например, там есть интересный нюанс. Вот, как я говорил, переход владения, то есть получается, что там связь потерялась, у нас внутри система, человек продолжает им владеть. Но знаешь, как это просто делается? Если, например, приходит новый человек и делает клейм, что типа он владелец, то тогда и владение переходит ему, а у того чувака мы такие можем, ну, типа мы можем регулярно проверять, но это нахер никому не надо, на самом деле. Просто в тот момент, когда мы видим, что надо привязать к новому, потому что это новый владелец, в этот момент мы старую связь можем просто пометить. Если чувак зайдёт, ему скажут: "Сон, ты потерял владель, тебе нельзя". Ну, например, нельзя постить автоматически на него. Но да, в чём тут безопасность? Безопасность в том, что, грубо говоря, все системы, которые вот так автоматически, допустим, постят, они гарантированно при каждом постинге проверяют э доступ. То есть они всё равно тебе не дадут это сделать, даже если у них есть техническая возможность. Если, например, он к кому-то привязан, у нас там бот, например, добавлен, через который мы можем постить, поэтому поэтому тут как бы, понимаешь, такая немножко отложенная система, достаточно безопасная перехода владения, даже без твоего участия, если оно действительно произошло, то есть на самом сервисе. Вот я что хотел сказать, да, вот тоже из, кстати, из реальной предметки пример. По-моему, в банках, если ты продаёшь свою организацию, ну, или там становишься, э, там из выходишь из учредителей и так далее, тебе в принудительном порядке должны открутить доступ. То есть ты даже ничего не должен делать. Э приходит информация о том, что ты больше не собственник и не имеешь к нему доступ, и всё, у тебя доступ забирается. То есть, ну вот какой-нибудь там интернет-банк, допустим. Так, ну вот здесь вот можно сделать очень примитивный вариант. Добавить тематику, да, такой там название тематики должно быть уникальным. То есть тематика должна быть уникальной. Ну валидации понятно. То есть валидации там накидать вообще не проблема. Может, да, это это не совсем валидация. Это вот не совсем валидация. Это видишь, то есть у тебя есть, я имею в данном случае, в данном случае очень сложно отделаться от мысли, да, потому что это вот прям тут сложно как бы логически это надо прямо напрягаться, чтобы в общем тут эту границу провести. А вот давай именно ну посмотрим на какую-нибудь тему, на какой-нибудь инвариант, который вот прям не просто валидация.
Ну, в конечном итоге в коде будет, да. Ну, здесь я не знаю, здесь у нас всё довольно примитивное. Вот опять же список каналов получаем, да, и загружаем. Здесь можно сказать, что каналы, ну, должны быть новые, то есть мы не будем добавлять те, которые уже есть. Это тоже довольно-таки примитивно. Я Да, да, я это добавляю. А если говорить из реальной практики, а, допустим, сейчас вспомнить что-нибудь, допустим, из банковской какой-нибудь фигни. Вот мы добавляем, а там клиент у нас хочет зарегистрироваться, да, то есть там получить какие-то банковские услуги, мы должны проверить, что его нет в списках. А там террористов, да, в списках финмониторинга, по-моему, это называется, что у него там кредитная история какая-нибудь должна быть нормальная. То есть вот если он хочет кредит получить, у нас прямо есть правило, что вот у него должна быть там адекватная кредитная там в БКИ какой-нибудь мы сходим в бюро кредитных историй и сверим. Вот это такой вот инвариант. А иногда есть инварианты на состояние. То есть, если у нас условно заявка отклонена, да, мы её не с не можем подтвердить. То есть это тоже похоже на валидацию, но это из машины состояний там. То есть мы не можем перейти в другое состояние. Вот. То есть там на самом деле я знаю, что здесь можно добавить. Давай. Ну, но оно такое оно, знаешь, немножко искусственное, но это реальные инварианты будут. Это связь с планами. То есть, как правило, вот в таких сервисах всё это упирается в твои возможности твоего плана. Например, ты можешь добавить канал 2-три, но четвёртый канал платите бабки. То есть вот ты придумаешь планы и начинаешь накладывать их на всё, что у тебя есть в твоей системе. Да. Это это, кстати, вполне себе, то есть мы тоже делали такую историю. То есть ты не можешь сделать что-то, да, не можешь ээ дёргнуть какую-нибуд фичу. Вот мы, короче, делали с тачками. Э, у тебя подписка, там, отслеживание штрафов на 10 машин, ты одиннадцатую уже не можешь добавить, потому что у тебя не оплачена она. Вот добавляй сит, да? То есть докидывай ещё бабла. Соответственно, здесь то же самое можно придумать, но пока что в MVP это как будто бы не лезет. То есть мы пока не говорим. Ну вот здесь вот, кстати, вот сюда можно добавить и на вариант, поскольку это MVP, что ты можешь добавить не больше двух каналов. Ну вот чисто вот такой, знаешь, как ограничение. Ну я бы, наверное, я бы, наверное, не стал, честно тебе скажу. Скорее бы просто по базе можно посматривать. Вряд ли это будет сильной проблемой. Тут скорее интерфейсно надо подумать, да, что когда ты это делаешь, исходить из того, что человек может какое-то количество каналов добавить, потому что а то, например, знаешь, там можно так это изобразить, что, грубо говоря, если ты добавишь 10, у тебя там весь интерфейс поедет. Это тоже такие интересные элементы, которые могут всплывать. Ну, я как человек, связанный с безопасностью, я пойду и напишу код, который тебе напихает столько вот этих вот каналов, что при моей попытке открыть интерфейс у тебя вообще весь сервис ложится. Я такие примеры видел. Ну, это уже вопрос и квалификации разработчиков, и отладки, и изменения, да, что там типа 10 последнего выводим, если что, список с Не, ну там там, знаешь, как можно пропустить? У тебя есть, допустим, форма, там только одну можно ввести, ты вводишь, нажимаешь "Ок". А на бейке можно напихать сколько угодно. Поэтому я бы Ну давай для примера просто добавим. А что не не больше двух каналов или под подтвердить владение там не больше двух можно, а ты физически не можешь? А владеть можно только одним каналом. Почему я могу я могу каналов насоздавать 10000? Точно, точно. Нет, это я туплю. У меня просто, знаешь, из что я заглючил, потому что ты только один канал можешь показать у себя в профиле из своих создавать ты можешь сколько угодно. Да, можешь, да, выпендриваться ты можешь только одним. Так, ну что, у нас вот получилась такая история. И есть ещё два момента, которые мм остаются. Это я называю автоматические правила. То есть это вот такой вот штукой обозначается. То есть все вот эти вот истории, они связаны между собой просто хронологически, да? То есть я зарегистрировался, потом добавляю канал, а вот здесь вот, да, когда канал привязан, я автоматом хочу выделить эти тематики. То есть эта система должна э сделать. И иногда я прямо подписываю, что после того, как канал привязан, мы там берём и выделяем тематики автоматически. Ну и дальше вот так вот. Здесь вот можно какое выделить правило автоматическое? Это, например, м получать раз в сутки. То есть мы раз в сутки у нас запускается вот эта вот процедура, мы откуда-то берём, сейчас мы тоже это можем. И эти каналы откуда-то берём. Дальше у нас может быть правило, что для новых каналов. Хотя, зачем для новых? Да посты ты имеешь в виду собирать? Дадада. Вот, кстати, про посты мы ещё ничего не не посты мы, наверное, где-то вот здесь вот будем. Это тоже на подумать, потому что мы про них как бы забыли. То есть, о'кей, мы канал-то получаем, а посты-то мы из них не высасываем. Ну, это по сути то же самое. Вот как только ты канал список добавлен к тебе, у тебя каждый канал попадает в некий внутренний цикл сбора постов, которые там появляются. Вот мы, а он нигде не описан у нас. Это вот предоставить тренды. Вот, а, и предоставить дневные рекомендации вот где-то здесь подо вот это всё. Вот, кстати, вот эта история. Я бы, знаешь, даже как делил, вот если уже там к баounted контекстам ближе, вот как раз история про то, что именно сбор всей информации, вот эта подсистема- это отдельная подсистема от той, которая выводит. Вот та, которая выводит, уже получает данные в подготовленном виде. И вообще там ноль информации о том, откуда и каким образом это появилось. Они вот просто вот у меня там, допустим, табличка. Ну, это упрощённо, да? Сейча сейчас, сейчас я про это тоже скажу. А для новых каналов нужно определить тематику. Вот у нас есть такая история, да? То есть мы вот новые каналы у нас заехали, всё, мы идём определять тематику для них. И дальше у нас тренды. А мы тренды тоже можем а предоставлять раз в сутки, да? Рассчитывать, предоставлять раз. Ну то есть это запускается Джаба, да, и поехали. То есть мы тоже можем придумать технически потом, как это реализовано, там по тематике это делается или ещё как-то в зависимости от самих. Угу. Да, есть нюанс. Есть пуш и пулмодель. Если мы не интегрируемся в твиттерской IP и, ой, в Telegramской IP и используем хаки из серии мы там эмулятор открыли, телеги, через него пытаемся понимать, что происходит, нам придётся опрашивать. Это это дорого. Это не факт, что работает эффективно, потому что сам понимаешь, ну, прикиньте, тебя от 1.000 каналов тебе надо там посмотреть, насколько это всё вообще по опишке допустимо, это большой вопрос. Поэтому мы, когда обо всём этом говорим, мы говорим вот опрашивать. То есть понятное дело, в идеальной системе мы бы, конечно, делали тема пуш, то есть мы бы ждали, что нам приходит сообщение, и мы бы всё прямо в реальном времени вот пришло, тут же запустили джабу, всё обработало, всё хорошо. Но мы, но мы с тобой говорим в терминах именно всё-таки пул, когда мы сами ходим и смотрим. Опять же, это вопрос технической возможности. Это да, вопрос технической возможности. Здесь вот техническая возможность очень сильно пересекается самой предметкой, потому что у нас прямо телега, она вкручена вот сюда. А, соответственно, если она что-то не умеет, то мы тоже не умеем. И вот мы сейчас не даст. Она очень очень следит за этим. Да, даст, да. Ну, даст нам по жопе за такие выкрута. За, за да. И здесь мы увидели, вот чем мне ивент шторм нравится, мы увидели пробел, что мы забыли про посты на самом деле. То есть, о'кей, мы каналы там тематики определили, да, а как мы рекомендации-то сделаем? То есть нам, наверное, посты какие-то нужны, нам нужно их как-то получить, что-то с ними сделать и на основе них уже определять тренды. Как ты считаешь? А тут вопрос восприятия. Просто когда мы с тобой говорили каналы, я это не отделял. То есть у меня в голове всегда была такая история, что как только ты получил канал, очевидным образом у тебя на фоне регулярно происходит сбор этих постов. И когда ты пишешь получать раз в сутки, я имел в виду всё-таки ну то есть у меня, короче, в голове была картинка, что как раз речь идёт о о том, что меня другая картинка у меня другая была картинка. А у меня была картинка, что мы так список каналов ты имееш мы получаем, да, список каналов, потому что они, ну, они же добавляются новые там появляются и так далее. А, соответственно, мы должны их у себя где-то прихранивать. А вот дальше начинается магия с постами. О'кей. Вот. И тут нужно подумать, да? То есть мы откуда-то вот сейчас, кстати, можем продемонстрировать такую штуку, называется внешняя система. То есть давай гипотетичес гипотетически нарисуем, что Telegram умеет, а, присылать уведомления о том, что вышел новый пост на канале. умеет, но при одном условии, если ты либо добавлен туда как пользователь, а изопишки ты не можешь пользователем притворяться, это незаконно. Хотя я знаю, что эмуляторы разные делают. И второе, если туда бота прямо конкретно добавят, как ТГста делает. Вот, кстати, если ты будешь большой, знаменитый, как ТГстаAT, они тебе говорят: "Хочешь классную аналитику и вообще, чтобы всё было круто, добавь нашего бота", да, и после этого у тебя появляется такая возможность. Я, когда изначально планировал этот сервис, я такой думал: "Так, сейчас заставлять всех бота добавлять такое себе. Никто не будет, да?" Да, и то есть это можно делать, но когда ты уже имя у тебя какое-то будет, чтобы там люди тебя добавляли. Вот. Так что по дефолту 100% история про какие-то полусерые схемы достать посты из каналов. Ну, делают же. Смотри, возьми те же самые сервисы по поиску работы. Он есть же пар серы каналов, которые их выводят, так что что-то точно делают. Да. Так я же говорю, я ээ за отправлял ссылку на свой канал для анализа, и у меня всё оттуда вытащилось. Да, всё, достали. Я вот и хотел посмотреть, а как это сделано-то у них. Вот вроде эта штука в Опенсорсе лежит. Готов поспорить, что они запу они туда как этот пользователям заходят через, может какие-то эмуляторы. Сейчас может, конечно, обосрут, нас, скажут, мы вообще всё неправильно поняли, но вот мой первичный анализ такой базовый, я сам никогда не писал прямой опишки, ну, к опишке не обращался. Нет там такой возможности, если ты не хачишь систему. Ну, в общем, давай мы назовём это какой-нибудь вот серовым цветом, прямо парсер телеграмма. Парсер Телеграма. Мы ему закидываем все м каналы, которые нам интересны, да, делаем какую-то подписку. А, кстати, тоже идея для стартапа, да. А я знаю. Ну, вот ты тоже сталкивался со всякими авитами. там купить базу объявлений, парселку вообще продавались только так. Я знаю, да, людей, которые занимаются этим профессионально и парсят всех и вся. Вот. А парсер ТГ, значит, пост размещён. И смотри, тут ещё что получается. Вот я рисую, ээ, событие у него есть какое-то внешнее, ну, интересное для нас. И когда мы, э, канал добавили, да, то есть каналы добавлены, а мы можем тоже создать вот такое вот событие, что а добавить в подписку новые каналы. Канал добавить в подписку писку Парсеру.
То есть, ну, мы прикидываем, что у них есть такая вот модель. То есть мы, да, где-то через опи добавляем. Я бы единственное, ну, это сейчас без разницы, но так в целом в будущем я бы, наверное, не использовал слово подписка, потому что если будет реализована именно коммерческая подписка, то слишком это сильное слово и будет мешать. Добавить канал Новый канал добавить в список, в отслеживание. Это да, это просто списки отслеживания. Список список отслеживажение.
мы их. Ну вот так вот. И, соответственно, ну здесь я уж ладно команду не рисую, я думаю, и так всё понятно. А мы через какую-то опиху добавляем. И вот мы мы увидим, да, у нас два события. Канал добавлен и каналы добавлены. Это может быть даже одним потом, как как мы уже решим. И э мы уведомляем внешнюю систему вот сюда даже о том, что ээ ну как бы нас интересуют вот эти вот штучки. уже появляется такое вот взаимодействие. И вот когда у нас парсер что-то новое находит, он нам нас каким-то образом уведомляет через какой-нибудь хук условно, да, ну мы опять же здесь не трогаем э технику, и мы что-то делаем с этим постом. Вот нам надо придумать, что мы делаем. А может быть себе где-то там как-то анализируем его, складываем куда-то, собираем список, а затем скармливаем иишки. Вот тут уже такая вот механика прослеживается. Ну да, там есть базовая. Причём, кстати, обрати внимание, а отслеживание идёт на постоя не одноразовое, потому что у тебя есть же engagementйд, например, за первые сутки, а есть engagement рейд, например, за месяц. И это разные вещи. У тебя каждый день копятся лайки. Каждый день он может даже стрельнуть не сегодня, а через какое-то количество дней там, если кто-то там его запостил. Поэтому, конечно, это просто большая табличка с кучей аналитических данных, которые туда добавляются, чтобы из этого что-то уже потом делать, да. А, да, да, вот какая-то такая штука. Ну, самое главное, что всё это на этапе вот, то есть вот это вот, видишь, левая часть - это всё просто отдельная большая приблуда, а правая часть она работает уже вот когда всё готово. Там тупо выборки уже по сути надо делать, да. И смотри, я не знаю, у нас просто времени уже довольно-таки много. Мы можем нарисовать большую, а, вот такую вот историю, да, вот такую. То есть как мы храним посты и что мы с ними делаем. А я не знаю, ты согласен с этим, не согласен, чтобы уже какую-то точку поставить. Вот. И дальше, если, допустим, зрителям будет интересно, мы покажем, что у нас получилось. То есть отдельно посидеть, подумать и потом уже в следующем выпуске код прикинуть. То есть, а, мне кажется, мы вполне себе до конца дошли. Опять же, тут достаточно понятная, простая система реляционная, если её раскладывать, там количество табличек очень тоже понятно. там очень ограничное число. И в принципе, ну, реально это уже можно сидеть кодить. То есть дальше уже придумывать особо ничего не надо, кроме моментов вот именно механики типа Парс ТГ, вот эти всё. А с точки зрения, а если брать чистый домен, вот просто сущности связи и базовая логика, ну всё, можно сесть и написать. Ну я бы, знаешь, тогда я бы, может быть, добавил такой вот типа пост добавлен или пост опубликован. публикован. А это был бы вот прямо пост, да? То есть пост и давай опубликовать опубликовать пост. Здесь инвариант какой? То есть это вот так вот у нас бы шло. Здесь инвариант, что у нас вообще в целом этот канал существует, да? Мы же его куда-то привязать должны. Вот. То есть, ну, это тоже такой Угу. канал. Единственное только опубликован. С этим словом есть проблема. Публикация - это всегда, когда ты в канал постишь. А когда А ты, наверное, имел в виду не опубликованно, а то, что мы к себе его закачали, да? Ну то ээ то, что он появился в канале, то есть у нас вот эта вот штука нам гарантирует, что пост посты, которые были опубликованы, да, в каналах, они к нам приедут. И да, может быть, как-то по-другому на назвать вот это вот событие и вот это, потому что это звучит так, что это происходит там, а не у нас. Типа пост опубликован там и та туда он добавлен. А у нас он это, смотри, это вот из предметки я беру. То есть пост публикуется. И вот у нас мы скаем опубликованный у нас факт вот этой вот публикации есть. Может быть так вот назвать, может быть, на подумать оставить. То есть может какое-то другое. И вот здесь у нас остаётся то, как мы будем дальше рекомендации, то есть а так по сути, да, схема у нас как будто бы уже есть. То есть есть канальчики, есть посты, мы что-то их как-то анализируем, выдаём рекомендации. Возможно, эти посты мы ещё будем обновлять. То есть пост-то вышел, да? А что с ним дальше происходило? То есть ты правильно говоришь, что там во времени там он разлетелся, если он только что, ну, что там один человек посмотрел, смысла в этом особо нету. То есть вот такая вот история. Здесь ещё есть над чем подумать. Его, кстати, даже отредактировать можно, и тогда вообще текст его. Да. И вот действительно у тебя может ещё вот так вот быть. То есть пост опубликован, а потом пост отредактирован. И здесь есть отдельные события. То есть это надо уже действительно смотреть механику. Что там? А может быть на первых порах вообще плевать. Это не так интересно для нас. Это 100%. На первых порах точно неважно. И ты ещё говорил, что можно это вытянуть в отдельный контекст, да? То есть ограниченный контекст как будто бы рисуется. Но на практике вот если я такую систему буду делать, я не буду сейчас сильно делить на контексты. Может быть, подумаю, что вот у нас пользователь вот эту вот всю историю, это выглядит как а какой-то genнериic штука. И, ну, не буду сильно упарываться, возьму что-то готовое. Но есть такая вристика, что если ты не уверен в размерах и границах своего контекста, сделай его побольше. То есть распилить его - это не так сложно, как собрать в кучу уже распиленный. Во-первых, у тебя будет золотые слова. А у тебя в Да, кто бы ещё их слушал. Вот ты говоришь, там 100 лет уже придумали. Ну так микросервисы по-прежнему пилят в самом начале, когда ничего непонятно. Вот. А потом такие: "Ой, как же так получилось, что, э, нам нужно синхронно обновить 100- 500 сервисов". А да, мы можем тут, конечно, такую шарманку запилить. Кстати, хотел, знаешь, по поводу ещё всего сказать. Мм, заметили это ребята или нет, у меня есть несколько вещей, которые я пропагандирую и постоянно про них пишу. Одна из них вот связанная с событиями, автоматами, состояниями и переходами. И что по сути сложность системы во многом определяется количеством действий, которые мы определили, потому что они делают перевоз системы одного в другое. Да. А вторая важная вещь, на что я хотел обратить внимание, я регулярно людям говорю о том, что изменяемостье состояния одна из самых сложных вещей, которая есть, которая даёт сложность системы. И все вещи, когда мы с тобой говорили так: "Ой, а тут вот пост поменяется, а тут можно сменить владельца и так далее", мы с тобой видим моменты, от которых мы отказываемся с точки зрения: "А давай об этом рассуждать и давай продумывать". Они почти все связаны с изменением состояния, потому что в этот момент становится сложно. Тебе надо, тебе надо, блин, так много думать, что мы такие: "Нет, давай вообще лучше в следующий раз и вообще этого лучше не делать". Да. Да. Ну любой событие - это изменение состояния. И вот чем меньше этих событий у тебя будет, тем проще система, естественно. Ну есть разница. То есть добавили пост - это просто добавили пост, а вот поменяли пост, то есть я имею в виду изменили состояние, в смысле, когда у тебя change сущности есть, который приводят к тому, что там инварианты должны сработать и так далее. То есть причём ты же не можешь просто пост обновить, тебе нужно как бы, кстати, мы тут квенсорсингу ещё приходим, да, сразу, но давай это потом, а, это уже на потом и про баунed контексты, потому что много раз говорили, но по факту это не особо здесь обсуждалось, потому что в принципе время мы с тобой выработали и кажется мы успели прямо тютелька в тютельку, даже учитывая даже, кстати, мы с тобой много отвлечённых разговоров делали, да, но тут надушнили, тут весь кислород уже откачали, так что открывайте форточкой, вот, если вы ещё этого не сделали, да, тут Я с тобой согласен по изменению состояний. Даже вот если мы делаем пост, э, отредактирован, у нас же должны тогда поменяться рекомендации. Ну, у нас же должно это пересчитаться, тренды должны тоже пересчитаться. А сложность в том, что хрен его знает, потому что может текст поменялся целиком, а может одна буква. И то же самое у тебя сегодня было три лайка, а послезавтра их 100, и тебе надо за этим следить. И в итоге получается, что вот именно это, что если бы у тебя просто был опубликован пост и он как бы застыл в этом моменте вместе со всеми реакциями, у тебя бы система была в тысячу раз проще, чем она будет на самом деле, когда ты заходишь реально в динамике всё это смотреть. Да, конечно. Но если мы говорим про э вотшторминг, в чём ещё его плюс? ты хотя бы эти связи видишь. То есть ты можешь, в принципе, промоделировать, где у тебя куда чего должно уйти, чтобы не забыть обновить вот именно в этом месте, потому что, ну, как бы рекомендации с постом, они не сильно связаны, да, а тебе на самом деле там тренды нужно все перерисовать, и ты видишь, что, ну, ты у тебя в голове оно хотя бы умещается. Если ты просто смотришь на код и на какую-нибудь BPмку, если, ну, хорошо, если она есть вообще, то ты уже не видишь, ээ, ну, ты можешь потерять эту картину. И вот сложные вот эти вот событийные вещи очень хорошо отслеживаются, потому что событийные модели, вот если мы делаем код на событиях, он сам по себе довольно сложный и запутаться в нём легко, а тут ты видишь, что за чем идёт, как какую реакцию вызывает и так далее. Что я ещё, наверное, напоследок хотел сказать. Когда мы делаем вот такие вещи, то здесь же есть ещё модели чтения, то есть, ну, грубо говоря, что пользователь должен увидеть в самом начале перед тем, как выполнить эту команду, то есть какие данные ему необходимы, чтобы выполнить команду, и что он получит в итоге. То есть вот мы здесь можем условно нарисовать формочку, добавить канал, да, и дальше нарисовать формочку. как-то, ну, после добавления, что у нас произойдёт. То есть, может, тебя пере перекинет на какое-нибудь там подтверждение, что-то в этом роде. Это очень улучшает наглядность. То есть ты фактически видишь полный путь, как твоя система работает. То есть нажимаешь поехали, всё, вот полный флоу. Второй момент, который хотелось бы ещё подсветить, э, я уже про него говорил, в классическом ивентрминге вроде как нету данных, но я на самом деле их подрисовываю. То есть вот у нас есть канал. А из чего этот канал состоит? То есть есть у него какой-то идентификатор, название, что-то ещё. Вот. А это тоже, ну, бывает удобно потом, чтобы можно было закодить. И мы можем видеть сразу какие-то правила, да, ну, грубо говоря, просто даже валидацию, вот валидацию конкретных полей сразу увидеть, обсудить, потому что, а, ну, если мы делаем э валидацию, начинаются споры: "А как это нам провалидировать? А нужно ли нам делать там суперстрого или достаточно вот так вот? А какие есть правила? А мы вот делали валидацию номерных знаков, а этих ГРЗ, то есть автомобильных. Ээ столько копий с друг об друга сломали, потому что просто не могли договориться о формате. А это важная очень вещь, потому что, ну, она будет везде использоваться потом. И можно сразу увидеть, сразу отправить как раз-таки аналитиков. Пусть пойдут разберутся, в каком формате эти номера чёртовы бывают, вот и принесут, а мы уже реализуем каким-то образом. Вот. То есть такая есть ещё история. Да. Знаешь, что интересно, если так подводить ещё итог? Насколько вообще чат GPT может помочь такую систему выстроить с ним вот в режиме диалога, вот как я с тобой, ну, допустим, одного из нас заменить, потому что я что-то подобное пытался с ним сделать вот буквально пару дней назад, когда с ребёнком гулял и готовился к подкасту. Он, конечно, раскладывает, блин, мощно сразу роли, сразу там вс всё, короче, как надо. И как будто бы он вот именно для проектирования такого очень подходит. То есть даже ты холст можешь на него заменить. То есть ты просто ходишь в телефон, смотришь, он тебе постоянно это всё показывает, и это, мне кажется, даёт какой-то невероятный буст к вот к таким процедурам. Да, такое может быть. Вот. Но опять же нюансы знает только кожаный мешок. То есть мы с тобой сейчас выкинули половину из того, что придумали, если не больше. А чат GPT таким не обладает. Он просто будет тебя генерить всё, что есть. Для популярных предметок это плюс-минус работает. Если у тебя внутри организации сложилась какая-то твоя, ну, собственная предметка, уже будет тяжеловато. То есть он не знает там жаргона и ещё чего-то. Но а если забегать вперёд, вот код генерить там всякими курсорами и прочим прочей и яишной лобудой, э, в ддшном стиле получается очень и очень неплохо. Вот. Ну, это мы с тобой заценим, да, кстати. Я надеюсь, да, мы это писать, да, доберёмся. Я, в принципе, сейчас так и делаю. Там какие-то учебные пример, да, и в продакшене, э, я там ребят научил. Тут знаешь какой минус появляется? Ревьюить нужно очень много. То, что сделано, то есть оно вроде бы норм. Вот. И ты такой: "Блин, уже, ну, когда ревью делаешь, сам знаешь, там на нормальном ревью два-три мержеквеста в день, а потом уже в башке кисель". Вот. И, соответственно, немножко меняется процесс. Но в целом это прямо очень классно работает, потому что очень маленький контекст. Вот ты какой-нибудь агрегатик сгенерировать по правилам, а по примерам, пожалуйста, тебе не нужно делать сервис на 3.000 строк, как все это обычно любят. О'кей. Жень, тебе большое спасибо, что пришёл. И тебе спасибо, что позвал. Мы с тобой такую штуку провели. Я, знаешь, прямо почувствовал, что у нас такой как бы рабочий процесс прошёл. И то, что мы показали, мне кажется, с точки зрения демонстрации того, что это такое, намного, ну, нагляднее, чем если бы мы просто бы час об Эвен шторминге рассуждали, да, потому что мы как будто вроде бы закончили систему, были вопросы, были моменты, короче, посвятили много разных элементов. Ребят, если вам понравилось это видео, поставьте обязательно лайк, напишите, что вы обо всём этом думаете. А то, может, вы скажете: "Я и так делал, мне не нужно специальное название". Или знаешь, как часто бывает, а вот как это называется? Про паттерны обычно говорят. А поделитесь, насколько что-то подобное вы используете. Может быть, что-то вы вынесли отсюда подобное или, наоборот, говорите, что какая-то [ __ ] надо делать всё по-другому. Тогда ставьте дизлайк и тоже об этом пишите. Мы с Женей посмотрим и и ничего не сделаем. И ничего с этим не сделаем, да. Будем друг другу слать смешные комментарии и смеяться в личной переписке. А, ладно, шучу. Женя, ещё раз тебе спасибо. Не в личной переписке. Будем публично это делать. Вот. Ладно, ребят, всё, до следующей встречи. Всем пока. Если хотите вторую часть, ставьте лайки и пишите, да, потому что мы будем основываться на том, сколько смотрят. Всё, всем пока.
เฮ
