ym104432846
Вставьте ссылку на видео из Youtube, Rutube, VK видео
Задайте вопрос по видео
Что вас интересует?
00:00:11
Представление структуры встречи:
  • Встреча построена из рассказа о предыдущем опыте кандидата, презентации продукта компании и решения технических задач.
  • В конце встречи предполагается написание кода кандидатом.
00:02:02
Рассказ о профессиональном опыте кандидата:
  • Кандидат рассказывает о своем опыте backend-разработки преимущественно на C#, автоматизации тестирования и небольшом опыте DevOps.
  • Использует стек .NET, микросервисы, Kubernetes, Docker Compose, Redis и инфраструктуру сервисов.
00:08:02
Организация процесса разработки:
  • Описание текущего подхода к разработке, включая написание тестов, текущие технические трудности и подходы к оптимизации запросов к базе данных.
00:11:08
Презентация продукта компании CaseWan:
  • Продукт CaseWan предназначен для автоматизации юридических процессов, обладает гибкостью и масштабируемостью благодаря динамическому расширению.
  • Архитектура представлена монолитом с возможностью масштабирования нагрузки и использования RabbitMQ для обработки сообщений.
00:16:46
Инструменты и технологии компании:
  • Использование .NET 6 и переход на .NET 8, поддержка баз данных MS SQL и PostgreSQL, Entity Framework Core, FlaUI для тестирования, ElasticSearch для поиска, GitLab для хранения кода, Jira для отслеживания задач.
  • Четкое разделение обязанностей между бекенд и фронтенд разработчиками.
00:29:25
Организационная структура команды:
  • Отсутствие Лид-менеджеров в командах, самоорганизация сотрудников, отсутствие отдельного архитектора, но наличие Lead разработчиков и архитекторов для верхнего уровня описания решений.
  • Работа в спринтах продолжительностью две недели с выпуском патчей и релизов.
00:38:20
Решение технических задач:
  • Рассмотрение различных подходов к решению задач, связанных с обработкой большого объема данных, оптимизацией запросов и использованием распределенных вычислений.
01:20:50
Оценка эффективности и рисков в процессе разработки:
  • Проблемы с точностью оценки задач, необходимость уточнения требований и управления рисками.
  • Постепенное улучшение точности оценки с опытом и применением методов коллективной оценки.
01:30:04
Заключительные замечания и предложения:
  • Возможность обсудить детали предложения и принять решение в течение 2-3 дней.
00:00:11
Завершение встречи:
  • Поблагодарения и завершение встречи.
0: Добрый день. 3. Добрый день.
1: Добрый день. Так мы сегодня, наверное, больше никого не ждём. Угу. Поэтому давайте знакомиться. И давайте я расскажу вкратце.
2: Как сегодня предлагаю построить нашу встречу. Во первых, меня зовут Дмитрий. Я представляю кейс Ван чуть попозже про него расскажу более подробно. Сегодня у нас техни.
3: Собеседование. Сразу хотел бы уточнить, предупреждали ли вас, что сегодня, может быть, придётся немножко по лайфкодинг, не помню, но я готов, я этим занимаюсь. Ну хорошо.
4: То есть в конце собственно, нашей встречи будет секция, которая предполагает пошарить экран и немножко пописать код в удобный вам id. Окей. Вот по сегодняшней встрече.
5: Как я уже сказал, предлагаю построить её следующим образом. В начале немножечко хотелось бы услышать про ваш опыт. Чем занимались, что делали, чем нравится, собственно, заниматься, какие технологии использовали инструменты и
6: Так далее. После во 2 части я немного расскажу про наш продукт. Собственно, какие там тоже компоненты и технологии мы используем. Можете позадавать вопросы, я может какие-то вопросики позадаю и в конце нужно будет
7: Решать задачки. Окей, вот если каких возражений нет, давайте тогда начнём немножечко расскажите о себе. Ну, я backend, разработчик.
8: Предпочитаю сишарп. Большая моя часть опыта на сишарпе. Также у меня есть опыт автоматизации, тестирования, небольшой опыт devops вот.
9: Так вот, в последнее время на дотнете пишу, ну то есть на классическом таком стеке, без каких-то, каких-то особенностей. Угу. А классический сейчас я называю это, ну,
10: Нет, кор. Угу. Может, он уже снова просто называется. Вот остался кор. Ну, нет, просто не стал, да, вот микросервисы крутятся.
11: Кубернете локально докер компоуз, также там инфраструктурные сервисы типа базы данных реббит н q. Вот такое угу.
12: Редис ещё есть так, оперативной памяти, вот какого, какого, да, какого рода задачками приходится в основном заниматься. То есть это написа
13: Микросервисов по техзаданиям, или какие-то ресерчи или оптимизации может быть, ну, в зависимости от зрелости проекта, как бы, ну, в начале, конечно, больше всего больше работы такой ресерческая
14: И там, типа, с аналитиками приходится как бы, плотно общаться. Вот, по мере, ну, выстраивания бэклога, как бы, соответственно, меньше, меньше требуется, и там, соответственно, как
15: Этого момента начинает укладываться в эти какие-то стандартные встречи там
16: Ну, стандартные встречи скрама. Угу. Там, типа, там, у нас, у нас сейчас, например, это первичное обсуждение, как бы, груминг такой, как бы.
17: Как бы утверждаем критерии приёмки, технический анализ и оценка как бы отдельно выделена, ну, отдельно, чтобы это, чтобы мозг максимально настроен был на это, на какие-то, какой-то вид анализа.
18: Перед взятием в работу. Вот, а дальше просто обычный этот, то, что я называю груммингом, это просто состригаем сверху как бы на нужное количество этого, как бы, если считаем, что
19: Бизнеса там в лице продукта и как бы аналитиков, как бы, если порядок правильный как бы соответствует приоритетам, то просто берём следующее на следующее количество.
20: Там примерно как идём, там, учитывая отпуска, и все как бы, бой, вот, ну, в начале проекта, естественно, как бы, все там, типа, более гибко нужно работать, как бы, вот какие-то вещи пропускать, какие-то, ну,
21: Иначе просто задача не будет попадать в этот, на спринт. Угу. Если жёстко, там как бы требовать критерии приёмки. Понял? А тут вот, кстати, такой момент.
22: Видел в сопровождающем письме, что команды работают без Лидов. Угу. Да. А почему такое решение, как оно реализуется? То есть, получается, все специалисты примерно 1 уровня, или как это работает на прак?
23: Ну, как бы, самоорганизация такая, как бы. Угу. Все вместе, как бы, ответственные, как бы, никто отдельно там, за всю команду не ответственный, не ответственен, как бы, какую-то, ну, какие-то вещи мы обходим, как бы, эти, ну, вот, предыдущей.
24: Например, у нас не было человека, который бы фасилитировал бы встречи. Вот мы назначали дежурного, как бы, который этот спринт 1 ведёт этот спринт, другой, ну и как бы следит за как
25: Ну, так как, у типа, произносит слова, там напоминает, что нужно это актуализировать состояние Тасков, как-то. Угу. Для тестировщицы очень важно было вот в предыдущей команде, ну,
26: Просто у нас, например, лид, он, он же архитектор по факту, по крайней мере, бэкэнд разработки это все-таки человек, который, ну, в 1 очередь, бизнесовые какие-то требования принимает, можно сказать.
27: Вы задачи, вот есть аналитики. Я не про такого Лида, я про такого льда, который вот увидит, типа, какие-то затыки там, производительности в команде там посчитает или как? А, я понял. Вот. И
28: Будет решать эти вещи, а не так, что мы вот в текущих условиях работаем, вот, и там с человеком поговорит, как бы, если у него там какие-то там затруднения. Угу. Ну, то есть такой больше менеджер, скорее, да, да.
29: Да, да, именно такого нет, как бы мы как бы вот такая самоорганизация и какие-то вещи мы затыкаем, как бы какие-то, ну вот такие вот не заткнёшь, типа из разряда это отследить.
30: Ну, понятно, отследить, кто проседает, как бы, когда сидишь, работаешь, как бы, то. Угу. Вот это. А если все за всеми будут следить, кто проседает, тоже, как бы, все просядут.
31: По основной работе. Ну да, да. Так. А по техническим моментам тесты пишите. Да, да, да, да. Ну, юни, тесты пишем. И сейчас у нас, ну, так, локальные.
32: Локальный такой Затык в тестировании. Я им помогаю ещё с интеграционными тестами. Угу. Вот. Ну, сейчас проект апишечка, как бы, поэтому. Угу. Нам, ну, как бы, интеграционные тесты.
33: Оплата, как бы там через браузер происходит, как бы не удалось автоматизировать. Н. Угу. Так, а база данных, какая база данных postgres? Нет, постгрес легаси база данных.
34: Server.
35: Общение через энтити фреймворк, да, или нет, да? Ну, редко, да, редко, как бы, ну, типа, считается, что это как бы, это. Угу. А какие-то вот задачи оптимизации на уровне базы данных приходилось решать, то есть
36: Ну вот условно приходит запрос, что что-то тормозит. То есть вот куда, в 1 очередь, не знаю, есть смысл посмотреть и какая последовательность действий в этом плане, да, ну, как бы смотрим план запроса, деся, что там этот
37: Скан если sick скан, то скорее всего сейчас проблема будет быстро решена. Ну если хватает места на этот, на индексы. Угу. Вот.
38: Как бы дальше. А если, а если не он, следующая, следующая проблема по частоте, это, ну, какой-нибудь, какой-нибудь сортировки памяти не хватило. Началась сортировка на диске. Угу. На моём опыте, типа, там, ну, грубо говоря, ворк мем.
39: Настроена. Угу. Там поиск сервер. Уже начинаю забывать, как бы, как там называются настройки. Поэтому, ну, понятно. Нет, ну тут про настройки это 1. Окей. Да, можно, можно подкрутить ворк мем, например, да.
40: Если нет возможности подкрутить морк мем, то есть мы все-таки такими, скажем так, разработческими, потому что work mem это все-таки, наверное, да, да, можно, можно упереться, да, типа, что там это, памяти не хватит и в таком
41: Тогда нужно сокращать просто этот количество этих, ну, если есть возможность, конечно, тоже, да, количество обрабатываемых сущностей. То есть, например, если мы строим отчёт, там, какой-нибудь большой отчёт, че-нибудь там группируем. Вот.
42: Там может оказаться, что отчёт там, грубо говоря, на 10000 строк. Угу. Будет намного, ну, будет попадать на диск и будет там на порядки дольше, чем 10 раз, даже последовательно.
43: Угу. Отчёт по 1000 строк. Вот. Ну да, да, такое тоже бывает. Да, да. Разбиение запроса на более мелкие части и так далее. Это тоже 1 из вариантов, да. Так, ну, в целом.
44: Наверное, в общих чертах. Понятно. Мне. То есть, если какие-то вопросы там ещё всплывут, я там их задам, наверное, попозже могу рассказать немножко про наш продукт, чтобы у вас появилось. Угу. Скажем так, понимание. Вот.
45: Я, как уже сказал, представляю продукт кейс Ван исторически это система автоматизации юридических процессов, но за счёт того, что изначально была заложена достаточно гибкая модель об
46: Модель диза, ну, дизайнер отчётов, дизайнер бизнес процессов. Ролевая модель. За счёт этого система, собственно, из себя представляет некий конструктор макси, ну, достаточно гиб.
47: Масштабируемый в плане того, что можно создать какие угодно объекты, какие угодно поля и на все это навешивать какую-то логику за счёт этого как раз-таки за счёт вот этого динамического расширения и появляется сложность
48: То есть у нас зачастую сложность даже не столько в количестве данных, то есть у нас нету, там, не знаю, 40000 запросов в минуту у нас нету, может быть, терабайта данных, но за счёт того, что пользователю даны достаточно большие возможности внутри, по вот этому вот
49: Код no code, так сказать, модному у нас возникают разные вариации того, где требуются какие-то оптимизации и так далее с технической точки зрения мы представляем из себя.
50: Монолит связано это в том числе с тем, что система может разворачиваться не только на наших ресурсах, но и на ресурсах заказчика. Угу. То есть в какой-то момент, когда мы думали о том, чтобы разбиваться на микросервис.
51: Мы все-таки решили, что дополнительная оркестрация на стороне заказчика потребует, собственно, и ресурсов, и знаний. Угу. На его стороне, поэтому решили становить, остаться монолитом, но при этом таким постоянно причёсывай.
52: В плане архитектуры и так далее. То есть понятно, что проект старый не было, как бы, поэтому не стали это. Ну да, да, да, это бывает, потому что честно, ну то есть иногда делают, да, иногда тоже вот.
53: Задаются вопросом, почему микросервисы в основном ответ модно, молодёжно. Вот поэтому бывает такой ответ. Да, да, да. Я обычно дальше копаю, когда так отвечают что-то модно, что можно? Да, да, поэтому мы реши.
54: Решили, что лучше мы пока останемся тяжёлыми, да, там, но у нас есть, скажем так, возможности для того, чтобы масштабировать там нагрузку, масштабировать какие-то асинхронные процессы. Для этого, собственно, у нас
55: Тоже прикручен, реббит. Просто он прикручен не для того, чтобы общаться между микросервисами, а для того, чтобы как раз-таки внутри самого приложения иметь возможность расширять количество консьюмеров. Плюс, собственно, приложение может
56: Ворачиваться на нескольких инстансах. То есть это уже тоже как бы определённо уже, да, как бы, ну да, да, вот само приложение, универсальные сервисы такие, получается, не отдельные микросервисы, да.
57: Ну, типа, да, то есть это сервисы внутри монолита, скажем так, которые обрабатывают сообщения как консьюмер. Угу. Само приложение сейчас на дотнет 6, но переходим на 8, буквально ближайшие 2 спринта. Угу. То есть.
58: Там закрываем какие-то странности заканчивается вроде, да, у 6, да, в сентябре заканчивается, насколько я помню, у 8. Вот. Ну, то есть мы на лтс версиях сидим, то есть я тоже слышал, у некоторых ребят, то есть у кого-то
59: 5, 7. Ну, мы как-то все-таки эти версии сразу опускаем, работаем только с лтс версиями по базам данных. Поддерживаем эмс эскьюэль и postgres ну, то есть slash через энтити фреймворк работаем. Угу.
60: Основная часть запросов опять же идёт через эти фреймворк, но за счёт вот этой сложности динамического расширения у нас есть действительно Пласт запросов на чистом sql, которые время от времени требуется.
61: Ковырять, то есть посмотреть планы запросов. Ну, классическое тоже там переиндексирование, ну, переиндексирования обычно у нас не хватает. То есть нужно именно в глубину смотреть, как можно действительно этот запрос подтюнить.
62: Где-то его разбить на части, где-то там упростить, может быть ну то есть это особенно у, потому что мсскль, он все-таки, ну на мой взгляд, немножко поумнее у него вот ядро.
63: То есть по нужно какие-то более явные вещи давать. Это приходится смотреть в качестве библиотечки для выполнения задач по расписанию используем фаер тоже в дотнете достаточно популярная библиотека в качестве подключаемого модуля.
64: У нас есть эластик серч, то есть есть клиенты, да, есть клиенты, у которых все-таки данных достаточно много для них. Мы прикрутили ещё синхронизацию с эластиком для того, чтобы, собственно, то, что он умеет
65: Делать. Лучше всего это искать. Собственно, мы его для этого используем. Угу. Тесты пишем. У нас как-то исторически, опять же, сложилось, что очень неплохое покрытие именно
66: Интеграционными тестами. Угу. Но какие-то архитектурные и сложные модули мы, соответственно, покрываем юнит тестами
67: Да, сиайсиди на тимсити в качестве трекера задач. Там и багов используется. Джира. Код хранится на гитлабе. Ну, наверное, тех,
68: Ически практически все разворачиваемся, соответственно, кому как надо. То есть на иисе, на линуксе, в докере, не в докере. Неважно. Окей. Вот по логике. Ну то есть у нас именно
69: Чёткое разделение на бэков и фронтов. Вся логика практически хранится у нас на бэке 95%. То есть мы стараемся ни в базе данных, ни на фронте никакой логики не хранить. Угу. Вот. Соответственно,
70: Разработчики занимаются только своей частью по команде. Немножко. У нас разделение есть сейчас на 3 команды, 1 команда как раз-таки состоит из Лидов направлений, но это именно тех Лиды, то есть это lead backend разработки.
71: Тент разработки лит. Тестировщиков и аналитики. То есть это команда, которая вот на, как, скажем так скажем, является точкой входа. Ну они не то что сложные, они практически все.
72: Бизнесовые, вот именно бизнесовые требования проходят через них. Угу. То есть и дальше они уже рассматривают. То есть, если задачка такая не очень сложная, то можно её сразу отдать там в команду разработки. Обычно, наоборот, к ледам Иду.
73: Когда это сами. Сначала обычная команда не справляется, потом идёт к лидам. Ну, они, видите, они у нас не то чтобы задачки эти делают, они их просто верхнеуровнево технически описывают. А, понятно. И дальше, да, то есть.
74: Все-таки у нас есть сейчас 1 архитектор, который, собственно, ну и 1 back архитектор, 1 фронт, архитектор, и они как бы через себя все равно большинство решений прогоняют, то есть не делают, а так просто верхний уровневый
75: Сами описывают и дальше уже. Ну, конкретное решение по реализации все равно принимается вот теми 2 командами, которые занимаются непосредственно там взять спринт. Ну да, да, да. Вот эти 2 команды у нас сейчас состоят из
76: 5 бэкэнд разработчиков, 2 фронта и 3 тестировщика, то есть вот такие микрокоманды работаем по спринтам спринт 2 недели в конце каждого спринта выпускаем патч в конце каждого qa.
77: Выпускаем релиз. Вот примерно вот сейчас тоже поквартально, да. А, да, да, да, именно так вот. Ну, в общем то, все, наверное.
78: Есть какие-то вопросы перед очередным квартал?
79: Перед очередным кварталом нет, а у нас планирование перед каждым спринтом идёт, но оно занимает примерно там, ну, для команды это 2 часа условно. А понятно, нет такого, что там цели.
80: Квартал нет, ну, глобальные есть глобальные. Ну, этим, во первых, занимается кор, команда в основном, как раз-таки. Угу. Вот. Во вторых, там мы, то есть, мы не расписываем.
81: Прям вот, то есть квартал по спринтам сразу. То есть мы перед каждым спринтом то, что берём актуальное, то и делается. Окей.
82: Да, так, по часовым поясам. Какое примерно распределение? У нас нету гелокации. Не знаю, жёсткой привязки ко времени. Угу. Но большая.
83: Часть у нас сидит либо в Самаре, либо в Москве. Угу. Ну, то есть по вот этим часовым поясам. Соответственно, ну, вот на мой, это уже, наверное, мой личный взгляд. То есть, где-то 4, 5 часов хотелось бы, что
84: Чтобы команда находилась точно в 1 времени. Угу. То есть, условно, там, с 11 по Москве. Ну, наверное, по крайней мере, там с Новосибирском. Нет, Самара, вижу 1 час. Разница удобно, да, то есть тогда разницы сильно.
85: Нет, вот, то есть у нас есть ребята, которые и с 7 утра по Москве работают, и там с 11 по Москве. То есть, поэтому главное, как говорится, чтоб задачки делались. Вот ясно, да? Ну, ну, это тоже удобно.
86: Или неудобно. Ну, конечно, конечно, тоже, как бы, да, да. Вопросы возникают, все равно их нужно обсуждать. Ну, поэтому я говорю, Самара, Москва примерно вот такая может на встречи ходить. Особенно. Угу.
87: Ну, как бы, обладающие очень интересными знаниями люди, ну, ну, тоже, да, их чаще на встречи зовут. Угу. Да. Так, какие-то ещё вопросики есть у вас, может быть?
88: Вроде, да нет, нет, вопросов вроде нет. Тогда, сейчас я в чат скину ссылочку. Угу. Вы пока можете пошарить экран открыть. Идее какая вам удобна. Угу.
89: И там будут задачки. Угу.
90: Ссылку в чат скину. Угу.
91: Так, просто скопирую. Да, да, можно есть текст этого, ну, страничку 1, да, или как 1 страницу, да, там нижний текст не обязательно. Вот 1 страница там.
92: То фигурные скобки заканчивается. Да, да, да, да, да, да, да. Угу.
93: Вот в целом в целом в комментарии есть задание уже прописанное.
94: Нет, ну это уже 2 задача. И там есть ещё 3 задача. Я предлагаю комментарий анограмма, анаграмма, попа. Ну, короче, группами, да, типа, если есть группа.
95: Да, это типа их. Ага.
96: Ну, тут нужно для каждого этого, для каждого слова francia построить вот и этот, ну и сравнить их хак собесов, точка ком. Собес станет пустяком.
97: Вот так. War нас.
98: Так, слова у нас есть ограничения по буквам или типа дикшн будем строить. Типа, есть такая техника в этом.
99: Ну, вообще олимпиадном программировании, типа буквы, ну, типа, как бы, массив интов заводить, ну, точнее, не заводить, да, массив длиной в словарь, как бы, который у нас есть.
100: Вот. Ну, либо дикшн придётся делать. Угу. Напишу. Ладно. В общем, общий вариант через дикшн я.
101: Вот это ничего, что или кодовские этими короткими именами, или? Да, да, это в целом ничего.
102: Этой задачки. В целом, я думаю, что можно будет разобраться. Окей.
103: Так, так, а у меня тут звук на секунду лагал. Ну, может быть чуть чуть больше. Можете ещё раз вкратце сказать идею, какую хотите реализовать? Ну, строим фрикса.
104: Для каждого слова. Потом их сравниваем. Угу. И смотрим это, ну, где одинаковые?
105: Угу. Значит, это одинаковые. Ну, значит, это нограмма, как бы, окей. Ну, давайте посмотрим, да.
106: Так это будет ц ча. Так пу пу пум пум пум.
107: Просто на всякий случай у нас все-таки в data хранятся слова, правильно, то есть не символы ну я полагаю, что тут слова как бы да. Угу, вход на вход выпадают.
108: Да, но data итый это этот строка да, строка строка строкой идём по строке мы ходим по чарам ну угу. Вот так.
109: Как я их сгруппирую, как я их группирую?
110: Ой сейчас короче магия начнётся этот кушная так select нет.
111: Так, так, так, select.
112: Так, только не на то string то что такое.
113: Назову-таки, соберу его сложным образом, соберу его как string join.
114: Через запятую.
115: Ну, надеюсь, что там этих запятых не бывает.
116: Так, x селект, так вас лучше, лучше, кейвер.
117: Окей.
118: Единственное, что тут нужно по ключу будет отсортировать вот это место меня волнует, надо будет подумать над ним.
119: Правильно, ска, нет, неправильно.
120: Некрасиво, конечно, опять Киев эти.
121: Так, фрек мосту.
122: Тот здесь мы получим группы, да.
123: Такое.
124: Ну как-то так. Ну давайте запустим.
125: Да, пошло так, че то группа, я неправильно использовал, что у нас тут
126: Я по нему прошёлся, так собрал что-то у меня, короче, с печатью тут русских букв, но я думаю, они там есть. Так, им 32.
127: Это я не слова собрал, это я не слова собрал, это я собрал словари, а мне нужны слова, так как я их здесь протащу, как я здесь прота.
128: Все, я вот так вот сделаю. Икс ай.
129: Вот пришёл этот, а это.
130: Вот, да, это не world, а то, да, да, точно. Вот это все, это групп группа i, там просто этот, анонимного типа. Угу. Угу. Так.
131: Проверяем. Ну вот специально для вас в конце 1 страницы есть data на транслите сейчас.
132: Просто не 1 случай. Там можно в начале прописать, чтобы кодировка была. Угу.
133: Я понял, что мы сейчас и, ну да, там проблемы с кодировкой из за этих вот символов, но там есть массив. Ага.
134: Так, ладно, давайте в 3 местах поменял. До этого выделяют методы. Угу. Либо пила стоп, пост, пост, пост.
135: Так, пост повторяется возможно ну да, пост повторяется 2 раза в исходном массиве стоп, пост я вижу.
136: Ну, я вижу 1 упоминание поста. Вот сейчас вот смотрю на этот, ну, их там, 2, 2. Ну, я думаю, что удалить 2 пост особой проблемы не будет. Да? Ну да, да. Соответственно, где-то.
137: Надо их сбой.
138: Так, репост. Ну да, не будет. Тут где-то, в каком-то виде хэштег надо завести, ну, либо дистинкт использовать. То есть. Угу. В начале предобработать вот эти данные. Ну окей, ладно, да, не.
139: Не будем даже на это сильно сейчас время тратить. Тут вот какой вопросик. То есть мы сейчас используем для сравнения. Ну вот это вот.
140: Сортировка короткие, для Коротких слов нет. Ну, сортировка то должна быть без сортировки никуда. Тут вопрос. Все, я понял. Сортировка, она не по коротким словам. Идёт, она по длине словаря. То есть это будет работать на небольших
141: Словарях, на больших словарях это будет. Это может нет. А почему нет? Сортировка? Ну то есть, а как же вы будете ключ составлять, если вы не отсортируете? Да, я буду сортировать просто, ну, тут я волнуюсь где
142: Может быть, это Затык по производительности, но если у нас словарь ограничен, как бы естественных Языков будет, то там, ну, незначительное количество букв будет. Угу. Вот смотри, у меня даже немножко другой вопрос. Вот.
143: И достаточно не то чтобы нетривиально, но мы составляем слово. Угу. Вот это вот, ну, даже не слово, а ключ. Угу. Сначала все это запихиваем в дикшенери по символам и количеству вхождений.
144: Потом там что-то сортируя, формируя новую строку, в которой есть и то и другое. Может быть есть какой-то попроще, просто вариант.
145: Попроще. Ну, мне вот этот показался, как бы, попроще написать есть вариант, который, ну, соответственно, будет, ну, как-то оптимальнее, как бы, это, да, наверное, я бы сделал этот.
146: Какой-то get, hash код, который, ну типа мы идём по там этим, ну тут букву умножаем там, на че-нибудь, на простое число, плюс там, ну, get hash код это там скорее.
147: Опасность будет в том, что 1 + 4, равно 2 + 3, да, то есть, когда мы говорим про, я бы, ну, там с умножением, с каким-то коэффициентом, с умножением, да, через простые числа, ну,
148: Можно так, но это тоже не самый простой вариант. Вот, может быть есть ещё что-то попроще.
149: Как-то преобразовать строку, преобразовать строку, отсортировать ни буквы можно. Да, да, да, да. Ну то есть суть примерно та же, что и вы сделали, но можно обойтись без вот этого вот перекладывания в слова.
150: И так далее, да, будет, будет ещё чуть попроще. Так, ну, в целом, собственно, то у меня нет особо вопросов, видео и задачи с реальных собеседований на сайте хак собесов, точка.
151: Хватит гадать, что вас ждёт. На интервью. Переходите и получите преимущество перед другими кандидатами прямо сейчас олимпиадным программированием увлекается. Угу. Так, смотрите, по этой задачке, вот по решению вопросов нет, давайте её.
152: Чуть расширим. Единственное. То есть, если у нас задача встанет не 100 слов обработать, а файл с терабайтом слов, то наше решение, ну, очевидно, оно не поместится в памяти.
153: Какой, что, что бы вы выбрали, не обязательно это там подход в плане дотнета. Ну то есть, что 1 приходит на ум, как решать такую вообще проблему общую, типа это какой-то распределённый
154: Du нужно попробовать сделать. То есть, ну, соответственно, вот эти ключи как бы, получается, да, типа представление, допустим, оптимальное будет отсортированные. Вот.
155: Ним распределяем по этим, по как они
156: Машинам, которые вот редьюс. Угу. Накапливают информацию по разным этим вещам. Ну, а как распределяем? То есть мы идём по файлу, да, например, там считываем по
157: Точно. Вычисляем для него вот этот ключ. Угу. И мы это слово куда-то должны на какую-то, на какую-то машинку отправить, да? Угу. Вычислить какой-то ключ, чтобы оно отправилось на какую-то машинку таким.
158: Образом, что, ну и другой раз с таким же словом, оно отправилось на эту же машинку. Угу. Вот. Если мы знаем количество этих машин, да, типа, если нам нужно выбрать по номеру, вот, то я бы там, не знаю, делал
159: Вот, и поделил по модулю на количество машин. Угу. Вот. То есть, предположим, у нас есть терабайтный файл, у каждой там по 32 гигабайта оперативки. Ну хорошо, она ушла там, например, на другую машинку. А как она там, мы
160: Куда-то сохраняем сразу или мы храним это в каком-то виде. То есть как мы дальше это обрабатываем, предположим ну мы там храним соответственно
161: Ну, допустим, в памяти пытаемся это все накопить. Угу. Если мы хотим это сделать очень быстро, да, типа, что потише, на уровне, типа, в памяти храним, вот, как бы, посчи.
162: Dali и потом как бы в конце по всем этим машинкам там эти данные тут другой момент а как мы убережём себя от того что если например половину этих терабайтных слов это одно и то же слово?
163: Дальше нужно будет ещё как-то определить, уже более хитро будет. Ну это будет 1 слово. А, ну, ну, они, наверное, нет. Ровно одно и то же слово, оно будет в этом, на той, на 1 машинке.
164: Угу. Счётчик у него будет увеличиваться и все. Ну да, да. Угу. Понял. На какую-то аномалию согласен попасть, что много слов окажется на 1 машине. Ну, так как считаем, что хэш, типа,
165: Не случаен стандартный хешкод то такого не произойдёт. Ну, перекос, наверное, какой-то, может быть, но по умолчанию, да, у нас просто столько слов, наверное, нету в языке, чтобы, ну,
166: Да, ну, там вероятность перекоса, соответственно. Угу. Будет этот, падать, там, стремиться к нулю. Так, раскидали. Ну да, да, как вариант, вариант. А если у нас нет много, а если у нас нет много машин?
167: 1 машина.
168: Есть, если у нас 1 машина, то нужно файловой системой пользоваться. Угу. Ну, то есть также просто разбрасывать по файликам можно, да, по ключу для каждого ключа свой файл или какой вариант можно? Да, наверное, можно по файликам.
169: Угу. Раскидывать. Угу. Вот. Нужно ли нам их все хранить? Ну, нет, наверное, не нужно. Просто потом пройдёмся по всем файликам. Угу. Ну, тоже как вариант, да.
170: Как вариант, окей, там, не знаю, размером со страницу этого чтения файлики заведём по аналогии. Угу. Угу. Ну да, можно огромное количество ячеек, да. Ну, теоретически можно просто даже даже не
171: Файловой системы можно и в базу данных запихнуть. Угу. То есть, ну, это уже воспользуемся высокоуровневым софтом между файловой системой. Ну, ну, да, да, но никто нам, мне это тоже не запрещает. Да, да. Так, ну хорошо, тогда по
172: Этой задачки, наверное, все. Давайте следующие посмотрим тогда уж даже не базу данных, че-нибудь полегковеснее, типа поинтереснее, ну, легковеснее, типа, ну, тут дальше уже развил мысль. Ладно, немножко.
173: Что там следующее идёт написать шарп метод join, аналог на join эскюэль.
174: Угу. Угу. Так, окей. Ну, что-то вроде будет.
175: Так, джоин у нас.
176: Допустим, будет возвращать. А номербыл я прям так этот тупл, типа вернёт лефт.
177: Давай, давайте. Я все-таки предлагаю не тупо возвращать, а мы получаем коллекцию, лефт, получаем коллекцию райт. А это у нас будет резал, да, то есть. Угу.
178: Который мы тоже как-то должны будем сгенерировать, тогда надо будет его, да?
179: Так, phonk ист лет трату.
180: Это мы назовём.
181: Кондишн условия, Джой. Угу.
182: Selector.
183: Так. Угу. Так, аналог энерджи, то есть, когда найдётся только
184: Угу. Не знаю. Сейчас пока 1, что в голову приходит, это двойной Фрич. Угу.
185: Conditions condition строит, строит, строит.
186: Ну вот как-то так. Дальше, наверное, только оптимизировать, не знаю, какие-то хеши. Ну вот, да, можно чуть чуть пооптимизировать. То есть тут получился такой достаточно универсальный
187: Скажем так, вот с этим кондишеном метод, а если мы все-таки, ну вот сейчас такой в качестве, может быть, подсказки будем рассматривать, ну наиболее простой вариант джоина, да, когда мы соединяем по какому-то
188: Угу. По 1. Угу. Угу. Угу, угу.
189: Угу. Ну, почек прошу.
190: Expression. Ну, тут экспрешн может быть чересчур. Можно также на фанках сделать. Просто нам нужен получается фанк. Ага. Так, так, так, так, для левого и для правого, да.
191: Да, да. Угу. Да, да, да, да.
192: Так-то так, че то у меня подсвечивает, где тип. Логично, логично. Тип.
193: Так, а как бы нам теперь ещё от 2 фориче попытаться, может быть, избавиться?
194: Попробуем через словарик. Угу. Ту.
195: Допустим.
196: Здесь проблема, что этот лист будет создаваться. Каждый раз надо раскрывать этот, ну, по хорошему, потому что
197: Чтобы не создавать лишних объектов, да?
198: Так слишком, слишком непривычно пока мне такое читать. Так, а если попробовать воспользоваться тудини методом?
199: Как-нибудь.
200: Ну, то есть можно, конечно, вот это все расписать ручками, да, то есть, типа, если нет ключа, но может быть,
201: У дикшнари не получится.
202: Там группировать, по крайней мере, нужно по значению нужно. Ну и понятно. То есть не сразу Тутик, да, сначала, например, да, через группировку. Да, да. Ну да, можно тогда.
203: Так, ну, наверное, тоже самое для white и дальше уже по ключам ходить.
204: Угу. Угу. Угу. Так.
205: Можно я вот так? Это я уже привык к Такому нью и скобочки.
206: С. Hack собесов, точка, ком, ичар полюбят вас тайком.
207: Ну, тут ладно, можете сильно не, это не увлекаться. Нужно пройтись по ключам 1, да? Ну да, и если существует в другой коллекции, в другом тише, то, соответственно,
208: Чёрных. Ну давайте попробуем.
209: Так, а как мы попробуем? У нас это кейсов нет. Ну мы глазами, глазами проверим. Не можно, конечно, создавать классиков, так скажем, быстренько, но пока не
210: Да, да, да.
211: Быстрее, быстрее. Мысли начали печататься. Так, ну.
212: Удали, это тот код.
213: Нет, не кие вообще просто кии.
214: Угу. Вот так здесь предлагает. Нет, некрасиво. Ну, думаю, думаю, должно заработать оптимизатор.
215: Сделать. Единственное, конечно, мы из 2 форыч сделали в итоге 5. Ну, идея понятна. Ну да, да. Ну, на самом деле, мне кажется, здесь можно было бы в 1 случае.
216: Ключи не генерировать, да, то есть, например, мы могли бы идти просто, ну, то есть сгенерировать только для правой коллекции ключи и просто идя по левой, искать нужный ключ и для него, ну да, да, нет, нет, выплёвывать и так далее. Да, согласен.
217: Это тоже, наверное, чуть быстрее было. Так. Ну, идея понятна в целом, по памяти, по крайней мере, точно. Угу. Угу. Так, ну, давайте тогда к 3 задачке немножко эскеля там пописать. Угу.
218: Так, баску надо завести, да?
219: Не, давайте, вот смотрите, в целом базу создавать не обязательно, то есть проверять мы там решение не будем. Если так сможем написать без отладки, то можно просто запросик, можно даже даже
220: Base да, вот в целом в целом из задачи нас больше всего интересует только структура таблицы, не более того, это символы накопировали.
221: То переносы.
222: На пустых строчках, короче, странно.
223: В целом, да. Ну, в целом скрипт генерации данных нас, я говорю, не сильно интересует, но самое интересное для нас это структура таблицы. То есть есть абоненты, есть звонки.
224: Угу. Звонки. Кулёр это такой абонент и ресивер. Это такой абонент. Окей.
225: Так, а что мы хотим данных? Это нам не интересно, который вводит топ 10 абонентов по количеству звонков.
226: Количество звонков, как этот принятых, так и это, да. И. Угу. Угу, угу, угу.
227: Напишу. Так select абонент?
228: Ой, это деби, это этот сервер. Можно я, если что, это, ну, скорее всего, это стандартный скин будет. Ну да, отличаются.
229: Только топом и лимитом по факту. Угу, угу.
230: Не то calls. Так.
231: Так, кулёр.
232: Себе линк.
233: Так, а нам что, ещё раз нужно? Топ 10 по количеству звонков? По количеству звонков решён?
234: Нас тогда не интересует. Выводим айти абонента.
235: Количество звонков.
236: Так, я сейчас напишу там, ну, как бы, ну, такую рабочую штуку, но ещё надо будет подумать. Так. Угу. Сумму, ну, такую нагруженную.
237: Тунаков.
238: Id 0.
239: Ну, по сути, нам просто нужно количество строчек как бы с этим, да, потому что я сейчас приплюсую, если мы считаем, что колер и receiver никогда, ну, они всегда разные.
240: Угу. Совпадают то нет смысла вот это складывать единички и нолики. Нам нужно просто посчитать количество строчек с таким абонентом. Да, сейчас я.
241: Сейчас просто вспомню, как account судами работает.
242: Количество разных Яичников.
243: Да, нам нужно количество звонков.
244: Нам нужно количество звонков.
245: Я понял. Можно, короче, ну, правда, тут нужно этот уже комментарий писать. Типа, что мы считаем, что это не совпадает. Ну, типа, что
246: Что caller id всегда другой, чем ресивер айди.
247: А хотя даже если совпадает, он типа участвовал вот тогда здесь мы делаем каунт, каунт, колокол.
248: Ключевое слово набрал id вот что-то в этом Роде.
249: Ну и нужен. 10 топ топ 10, а топ 10. Да топ 10. Там лимит 10, топ 10. Ну, лимит 10.
250: Select то здесь пишет, да?
251: Да, ну и нужно, чтобы он все-таки вывел именно наиболее звонящих.
252: А аккаунт надо было отсортировать ещё да, это я не сделал.
253: Ну, сходу я тут бы просто этот обернул.
254: Угу.
255: Угу.
256: Вот тогда. Угу.
257: Угу. Так, ну, джефф, я так понимаю, это л, да, на 23 строчке джефф джоинт, не новый вид джоина. Я просто подумал, мало ли какой-то совсем супер новый на новый, да?
258: Deja ещё не знает такого. Ну да. Ну да, да. Самый простой вариант. Вот. А с джоинами, с двойными, какая бы там вообще проблема могла возникнуть по большому счёту. То есть вот то 1 решение о
259: Который вы делали. Угу. Оно бы, наверное, все-таки вызвало проблемы.
260: Можете сказать навскидку, чтоб там произошло в итоге.
261: Не знаю, этот половина данных была бы с нуллами, как бы с нуллами, как бы в звонках по
262: 1, а половина данных по другому? Да нет, мне кажется, он просто намного больше бы данных посчитал. Он бы сначала прижени к абонентам звонки как звонящему, потом к вот этому всему. Он 2 дольше делал и просто
263: Раз больше данных. Ну и там я не уверен, что там были бы правильные данные, кстати, в итоге. Ну ладно. Так, окей, как бы, вот это решение, наверное, самое такое, да, простое. Ну да, там можно было и через
264: Сделать. Ну, здесь это самое, наверное, кстати, быстрое, на самом то деле, решение по задачке такой вопросик. Опять же, если её расширить на
265: Большие данные. То есть, например, сейчас мы опять же говорим про 1000 каких-то записей, а если бы их было миллиард, да, то есть мы говорим про МегаФон какой-нибудь вот что-то в таком стиле. И вот у мегафона
266: Тоже встаёт задача. А давайте-ка мы будем всех наших самых звонящих абонентов там, не знаю, как-то премировать. Угу. По месяцам, по годам, по неделям. И вообще в целом, как бы, вот вы
267: Какую задачку решаем?
268: По месяцам, по годам.
269: Ну, тут, наверное, нужна какая-то этот, пакетная обработка. Так, а как пакетами делать? Ну, соответственно, по месяцам.
270: Выбирать как бы там на месяц, ну как какую-то группу, сначала 1 группу абонентов, потом другую группу абонентов, ну там подобрать какое количество нам, нам подходит по
271: Ну, да. Угу. Посчитать для всех, как бы, соответственно, соответствующий месяц, там, ну, я бы табличку, наверное, завёл. Угу. Сколько там у них было звонков, там, по месяцам, по неделям, там, по дням. Вот. И дальше.
272: Уже там, ну, табличка с индексом и просто, а какие бы поля были в этой табличке ещё раз, чтобы я примерно понимал таймстемп, наверное, как бы, чтобы, в котором можно обозначить, там, не знаю, месяц, начало месяца.
273: С начала дня. Угу. Вот.
274: Таймстемп. Дальше, наверное, избыточно будет, зато удобно, если мы хотим понимать какой-то месяц. Угу. Ну так, ну какие, что ещё? То есть таймстемп, ссылка на абонента, я так понимаю, да?
275: Ссылка на абонента счётчик, типа, ну, сумма на какой-то этот, на какой-то. Угу. Так, а счётчик, как считается? Ну, пакетный там.
276: Пакетной какой-нибудь работы предварительной. Ну то есть все равно из из большой таблицы или как. То есть вот у нас есть огромная таблица всех звонков мы все равно, ну и мы пакетами её обрабатываем и за
277: Вписываем число какое-то, или, ну, мы её разбиваем, как бы, на эти, на сколько мы можем обработать там, не знаю, пользователей. Угу. Вот. И по ним, как бы, а мы это, мы это делаем, в какой момент мы это раз в сут.
278: Делаем или там, не знаю, раз, ну, раз в сутки с какой-то периодичностью. Ну то есть мы раз в сутки очень хорошенько все равно так нагружаем что-то. А если вот есть какое-то ещё решение, чтобы нагрузку уменьшить,
279: А то и вообще, как бы ждём этот, ну, раз в месяц ждём по полдня, что для всех рассчитается. Ну вот, да, вот нам говорят, нет, что-то у нас что-то нам не нравится, во первых, долго, во вторых, сервера начинают умирать.
280: Может быть, какой-то ещё вариант такой менее ресурсозатратный.
281: Ну, какие-то вьюхи, надо посмотреть, как этот, как они работают. Ну, тут я бы, ну, я бы уже изучал, как бы, этот вопрос, не знаю. Угу. Ну, вьюхи все равно, они на тех же данных строятся, то есть, все равно какой-то.
282: Большой объём нам приходится перелопачивать, ну не знаю, триггеры там на инсерт можно использовать какой-то так, а триггеры на инсерт, если как-то как использовать, ну, каким-то образом попро.
283: Ать, их не знаю, там на очереди поставить. Угу. Чтобы, ну, типа.
284: Можно было регулировать нагрузку, ну не регулировать что-то вроде конденсатора. Короче, очереди накапливались, типа, и нагрузку. Вот. Ну и
285: Расчёта уже получает там сообщение в очереди.
286: Угу. То есть именно за счёт масштабирования. Так, а ещё, может быть, что-то опять же, вот в сторону триггеров, да, то есть даже вот возьмём такой самый, может быть, не знаю, в лоб, не в лоб, ну, триггеры в базе данных, да, то есть.
287: На ставку можем мы как-то с ними поиграться, чтобы в итоге, принципе, ну, решение получить.
288: Ну, можем, да, но это нужно очень аккуратно. Нужно это экспериментировать, ну, как бы, тестировать, проверять на, ну, если мы будем писать какие-то, какую
289: То 1 строчку, этот счётчик нужно тут уже, может у нас эти какой-то конкурентный доступ включиться. Угу. Ну мы же можем регулировать этот конкурентный доступ, правильно? В целом, чтобы у нас инкремент
290: Не работал несколько раз. А вот, ну, то есть это, там уровни, изоляции, все это достаточно. Да, да, да.
291: Ну, понятно, да, ну, или там, ну да, то есть, просто если у нас, да, то есть, просто если у нас первоочередная задача именно вот сделать так, чтобы это не нагружало, там ресурсы, ещё что-то и
292: Делалось быстро. Ну, в целом, 1 из самых таких, наверное, простых и быстрых вариантов. Это просто инкрементировать какой-то счётчик. Угу. Пока нам не скажут, что, ну, то есть, нам пришла задача. Говорят, нам нужно, вот не знаю, топ абонентов
293: За все время посмотреть, как это сделать. Атомарно. Сейчас, зачастую сейчас в базах данных, типа, есть возможность сделать это атомарно. Угу. В смысле, что как бы не происходит.
294: Не грязное чтение, а?
295: Ну, в общем, типа, когда мы сказали инкремент, там между чтением и записью не происходит ещё 1 инкремента. Угу. Или какой-нибудь записи данных. Угу. Смысле. Ну, понятно, да. Ну, то есть, да, можно счётчик.
296: Комментировать. Так, ну окей, в целом задачки порешали. Как раз время у нас потихонечку приближается к завершению. В целом у меня вопросов на
297: Наверное, больше и нету по задачкам точно. Угу. По опыту работы, да, в целом тоже понятно. Вся история. А чем вообще хотелось бы заниматься, что, что? Ищите, какие?
298: Задачи какие вообще? Какого рода?
299: Или, может быть какие-то места может либо применить как бы свои навыки, либо это, либо использовать. Вот если более менее долгосрочно смотреть, то там рост внутри компании интересен. То есть, как? Угу.
300: Как senior и спокойно вырасти тида. Ну. Угу. То, чего как раз вот ну вот здесь не хватает вот, вот этого точно нет в плане этих, ну, в
301: В плане технического роста, как бы, ну, везде, конечно, есть какие-то возможности, да, но здесь я так, ну, они такие обычные, как бы. Угу. Это. Угу. Ничего такого сверхинтересного. Вот.
302: Так что, ну вот какие-то такие вот вещи ещё, ну и ещё я как бы здесь применил какие-то свои эти знания, опыт там, вот там по скраму, например, там этот как бы улучшил уже, получается, во 2 команде.
303: Процесс этого, ну, типа ожидаемого. Ну, как это того, что, ну, типа, у нас спринты делаются так, как мы ожидаем, типа, ожидаемое. Угу. По времени. Вот.
304: Эстимация. Сейчас я сбегаю за телефоном, прошу прощения. Да ничего.
305: С неизвестного номера позвонили. Угу. Так, ну какие-то тоже там, типа, ещё, ещё по автоматизации. Я так большой фанат, типа, бываю полезен, как бы, вот её тесты и
306: Как бы, интеграционное селение. Угу. Ну, внедрить. Угу. Ну, эти штуки есть у нас. Мы сейчас внедряем новый фреймворк нагрузочного тестирования на бомбере, но это отдельные ребята. Это тоже, это нагрузочное тоже, как бы, такая штука интересная.
307: Но опыта, к сожалению, нет. Сразу как бы. Угу. Такое, самому развиться, а не что-то внести. Ну, понятно. Ну, хорошо, хорошо. Так, ну, если у вас какие-то вопросы остались.
308: Можете их задать. Так, ну, наверное, нет. Наверное, мне рассказали ещё на скрининге. Я вижу скрам двухнедельные спринты. Ну, кстати, скрам, как этот, Ровно, как бы, там, ну, как бы, ну.
309: Типа, ну, на спринт попадает столько, сколько, как бы, ну, делается, как бы, да, нет, ну, честно, нет, я, я.
310: Не знаю, как у вас. Ну, то есть вот вы сейчас сказали, что получилось добиться того, чтобы там, не знаю, все, что попадает, все делалось. А как, ну, этого можно добиться, в моём понимании, только либо завышая оценки, либо беря,
311: Изначально меньше, чем, ну, ну, то есть риски достаточно большие закладываем, потому что у нас, к сожалению, ну, не получается, на самом деле, достаточно более менее Ровно оценивать, вот, и окажется, что, ну, примерно одинаковые задачи.
312: Примерно одинаково делается. Вот, ну тут нужно до какой-то вот уровня ясности доводить задачу, чтобы можно было её оценивать, сравнивать. Ну вот, да, то есть, когда мы говорим про систему, которая все-таки там 10 лет разра,
313: Есть куски кода, которые не всеми там щупаются постоянно, то уровень точности оценки он, к сожалению, не может быть прям максимально высоким. Ну да, да, но со временем, если как бы этим зани,
314: Они, ну, тут точность оценки растёт. Ну, я бы сказал, что, ну, обычно там, не знаю, 1 квартал какой-то идёт, ну, там метание, типа.
315: Что там точность оценки, ну, как бы, она там, либо где-то завышаем, где-то занижаем, как бы, да. Угу. Потом, ну, оно выравнивается, как бы, и становится, и команда становится более опытной, да, то есть, ну, в случае, если там, в плане покер,
316: Это делать как бы коллективную оценку делать. Ну и этот, ну как это требования к понятности задачи тоже как бы повышаются. Угу. Ну да, да. Типа, это типа.
317: Да, да. Ну, в той команде, типа, уже все хорошо было. Предложили, говорят, вот тот проект, типа, там 2 года никто не писал. Надо, типа, сейчас команду строить. Ну, угу. Пришёл, как бы, начал что-то писать, че то так дорожку проложил, как бы, пришёл ещё.
318: С другого там проекта. Вот, ну, на той же платформе, как бы внутренней уже начали оценки делать. Тут, тут то слишком большие, то слишком маленькие, то где-то там запнёмся, как бы, че то не
319: Учтём. Вот. И прям картина очень похожая получается. То есть, ну, ну, да, ну, на самом деле маленькие задачи мы оцениваем достаточно легко. То есть, как только задача становится крупная, то по хорошему её, ну,
320: Нужно декомпозировать, чтобы её декомпозировать, нужно дополнительные ресурсы потратить на вот это вот краешком глаза. Типа это покажу картинки, да, это вот в текущей команде, ну,
321: Как бы тут, типа, все ещё набираем, как бы много, хотя скорость уже понятна, типа, она. Угу. Типа, то есть, ну вот, а по предыдущей команде. Угу. Сейчас надо найти.
322: Тоже, как бы, в начале. Ну ладно, не вижу, короче, ну там вышли на т, ну ладно, вышли на плато тоже. Так вот, все скакало какое-то усреднение мы как бы сделали, и в итоге там это вышли на плато, как бы. Угу. Хорошая картина, похожая на то, что я раньше видел, когда в епаме работал, вот.
323: Ну, мы тоже стараемся, на самом деле, там и у человека количество стори, поинтов как-то играться. То есть, если мы видим, что там кто-то сторипоинты в течение последних там 5 спринтов делает вот столько. Угу. Ну вот тоже идёт усреднение, поти.
324: Чтобы понимать. Угу. Угу. Но проблема, я говорю, скорее, все-таки именно в оценке, то есть в точности требований в рисках, к сожалению, пока вот от этого чаще всего, да, чаще всего, да, в этом не можем. То есть, когда берёшь задачу в работу и понима,
325: Что ты её будешь уточнять то там? Угу. Смело этот, с докручивать. Ну, либо считать, что велосити очень низкая. Ну вот, да. Ну да.
326: Так, ну вот как-то так. То есть в целом тоже стараемся это все оптимизировать. По возможности, если какие-то вопросы остались, могу ещё на них ответить. Либо, если возникнут, можете через эйчара. Угу. Что-то спросить.
327: А, так, где-то 2, 3 рабочих дня. Обычно мы берём на подумать. Угу. На обратную связь, и к вам вернётся эйчар, собственно, с каким-то ответом. Угу. Окей, хорошо, все то.
328: Тогда, Алексей, спасибо за встречу. Угу. Было приятно познакомиться. До свидания.