0: Начинается экзамен там. Ну-ка расскажи мне там, как это сортировать бинарный поиск. Ну-ка, а какой быстрее? А в какой? Да, пузырьком? Да, давай, нарисуй мне.
1: Ладно, покажи, покажи. На пальцах у этого хватило на листочках писать. Вот. Ну, это как бы фигня, это я, я, я, мы не.
2: В яндексе, да, я немножечко другое ищу, не вот это вот все, соответственно. Ну и в конце вопросики расскажу про то, что мы делаем, зачем мы делаем, для кого делаем и задаёшь себе вопросы. Все, что тебя
3: Абсолютно все по тому, как мы это делаем, зачем мы это делаем? Кто это делает вообще? Что мы за компания, по каким методологиям, инструменты и так далее. Вот. Поэтому предлагаю начать, да.
4: С опыта. Угу. Так, ну вот как я понял, 1 вопрос. Это вот именно, что драйвит, чем, ну, можно сказать, горжусь и так далее. То есть, ну, наверное, я хочу начать с того, что был проект, ну, в
5: В принципе, я вообще в компанию свою бывшую, получается, там, тех, пришёл совсем, совсем зелёным. То есть, буквально у меня там весь опыт в 1 компании. Вот. И начинал я, естественно, тоже со стажировки, ну, с грейда, в принципе, как я считаю, на тот момент, джуна.
6: Какого-то вот, и поначалу драйвил вообще все. То есть это то самое чувство, когда приходишь, как бы и там первые задачи, они всегда как бы были тяжёлые. Постоянно меня приходилось там задавать вопросы, то есть всех
7: Понимать, докучать, как бы и сам старался разбираться постоянно. Вот. И, соответственно, времени тратил на это кучу. То есть пытался как бы все понять, все у себя в голове систематически уложить вот из таких кейсов, которыми прям не знаю.
8: Горжусь, это, наверное, больше уже про последний проект. Это когда мне нужно было. Ну, в принципе, мы на проекте там разбивали на микросервисы, и нужно было внедрить rabbitmq. То есть для меня это была довольно большой
9: Проблемы, когда у меня задачка пришла, я, в принципе, ну, до этого не занимался таким. То есть у меня не было опыта с брокерами, в принципе, как бы, и что мне понравилось то, что как бы нужно было это все в короткие какие-то сроки, как бы, усвоить, быстренько понять, освоить, как б,
10: Боевые задачи закрывать. То есть это из такого, что что меня драйвил. То есть приходилось учиться учиться много, чтобы хотя бы что-то понимать из провальных кейсов. Я прям так сразу не вспомню.
11: Но, опять же, скорее всего, про начало моей работы у меня там, ну, не скажу то, что много Провалов было, но все-таки можно было там, где-то получше сделать, там, когда, тем более через время смотришь и думаешь то, что, ну, я бы так точно сейчас не сделал и так далее. Вот, что ещё
12: Такого рассказать, да, знаешь, из Провалов. Вот когда я про провалы, ну, понимаю, когда опыта там, допустим, немного, но все равно бывает тоже, там, знаешь, это, пришёл, пришёл стажёр и положил прод. Я prod, положил там.
13: Вот, а че они мне инструкцию подсунули, да, не с теми данными известная история, да, вот у меня, допустим, кейс. Понятно, что когда мы код пишем, и этот код, он остаётся, и ты смотришь на него там через 3 года.
14: Ты на него можешь посмотреть даже через месяц. Ну да, тоже самое, как и со своими проектами. То есть ты пишешь там буквально месяц назад, ты в нём как-то чуть чуть не участвуешь, ты возвращаешься через месяц, так думаешь, кто это написал, как бы, да, как бы как тут разобраться, тоже непонятно.
15: Даже в своих проектах. Ага. А потом гид такой, смотришь, история коммитов, а там только ты, да, да, да, да. Как бы думаешь точно, даже не об этом речь, это как бы, это рутина, это штатное. А вот знаешь, я могу рассказать 1 историю, когда я пришёл, во
16: Мпанию прям вот свежак, и там на меня набросились, как на свежую кровь. Угу. Я там, конечно, шороха навёл, я там почти 5 лет проработал или даже чуть больше, там Шорохов очень, это, по лестнице там прошёлся. Так.
17: Да, это и кинули меня на проект международная компания, как бы тебе, так сказать, масштабы её. Вот, допустим, нефтянка, да, есть танкера, перевозят нефть и
18: Когда в порт приходит, он это обычно таможенное оформление, разгрузка и перед всем этим ещё. То есть это определённая там таможенная зона. То есть это не просто так, знаешь, привёз там, слил там и поплыл дальше. Нет, ты сначала привёз
19: Потом бригада к тебе приходит, начинает замерять, а сколько, а чего и делают анализы лабораторные, которые подтверждают сертификат качества твоей продукции, у тебя по документам написано, там даже там всяких этих вариантов.
20: Нефтепродуктов огромное количество условно для упрощения. Скажем, что там привёз аи 95, вот, чтоб тебе дали, вот ты привёз, а ребята должны быстренько прибежать все это померить, померить в лаборато.
21: В лаборатории сделать анализы, подтвердить с количественными показателями, чего там у тебя там серы, там и других, там, там веществ каких там основных, да, тебе выдают паспорт и выдают паспорт не просто
22: Он международного стандарта формата, все. И его примет любая контора, этот паспорт. Так вот, в мире, наверное, таких компаний полторы, которые делают вот эти вещи. И 90% рынка, это бури веритос, который там по всему мир.
23: У них в каждом Порту свой филиальчик такой. И даже вот у нас в Волгограде, у нас в Волгограде даже, казалось бы, где, где, где вся карта, да, и где Волгоград, да, там вот хрен знает где там выхода к морю нету. Ты че то там это, ну,
24: Да, потому что ж, у нас волга, поэтому есть это судоходство, да, вот приплывают танкера, и даже вот у нас они сидели и делали все эти анализы, ну, это вот все, все это делали, и вот меня на этот
25: Проект впихнули, когда он уже загибался, и там доходило вплоть до того, что практически меня, ну, пытались сказать, а ты там обмани заказчика. Да, я говорю, это вообще кейс. Я говорю, я вот что, что
26: Для меня это вообще неприемлемо, когда мы теряем данные заказчика. Там case был такой, что при сохранении информации она могла либо задублироваться, либо пропасть вовсе звучит дико, да, но я такое в жизни видел. Я для меня это самый нега.
27: Case, вообще то, когда ребята ещё и пытались это под ковёр замести, я говорю, я не могу, там софтину писали, там почти 4 года, и я говорю, представляете, там объём кодовой базы и там ядро вот это, которое работает с базой данных.
28: Через вот это все проходит. Я говорю, я как должен в этом разобраться? За полторы недели я только пришёл, наверное, жуткая ответственность вообще, как бы за проекта, грубо говоря, да, вот, и
29: Ну, короче, в итоге все плохо закончилось, но я через месяц оттуда спрыгнул. Я говорю, ребят, вы меня толкаете на то, на что я, ну, как бы не согласен. И это вот такой негативный кейс, который я вот с собой ношу и показываю. Вот, а там, там вся контора в этом проекте уже
30: Очередь побывала. Угу. Это уже все, даже не то, что, несмотря на то, что проект написан на сишарпе, был, там побывали даже разработчики плюсов си, плюс плюс, которые, вот, и не просто разработчики.
31: Даже железячники какие-то были. Вот. То есть там вся контора побывала, приложилась, так сказать, к этому. Не зато проект реально крутой, он реально серьёзный. То есть серьёзно завалили, да, можете
32: Такой мощной, его завалили, прям его мощно завалили вплоть до судилища. Вот как бы так вот, вот слушаешь вот такие истории, как бы удивляешься с других, когда как бы в противовес вот таким всяким серьёзным, как бы предприятиям, серьёзным вещам есть там буквально там друг у меня недавно
33: Устроился в компанию таргет аи, не слышали? Нет. Ну, короче, компания там, которая занимается этими агентами искусственного интеллекта. Угу. Типа, которые там поддерживают. Вот. Ну и что, вот я спрашиваю, как там, как у тебя работа, как там, че?
34: Как дела, в принципе, он говорит, да, вот этот в курсоре, короче, они кодят. Он говорит, принципиально, говорит, за месяц ни строчки кода сам не написал, грубо говоря, все через нейронку, короче, буквально все через нейронку. То есть больше он пишет через
35: Нейронку сидит, как бы занимается своими больше вещами. Именно там дебажит че то смотрит, как бы говорит, вот принципиально уже не будет. Когда, тем более, этот chat, gpt, новая версия же вышла вот недавно. Угу. Которая там вообще в шок всех повергла. Вот, говорит,
36: Что все нравится ему ещё и компания как бы завязана, грубо говоря, на искусственном интеллекте, да, и потом в линкеине появляется этот профессиональный вайб код клинер, знаешь, который это
37: Очищаю от вайб кода ваши проекты вычищу. Не, ну вот я курсором сам, по сути, не пользовался ещё, но именно по словам друга, вообще как бы прикольная этот идеешка, да.
38: Мы пытались с 1 товарищем, он научный сотрудник, институт проблем управления ипу ран в Москве, там сидит и принёс эксельку, говорит, есть экселька.
39: Нужно субд сделать и это морду настольную, чтобы круды там были просто примитивные формочки отредактировать, сохранить, добавить, там удалить. Все. Больше ничего. Ну, сначала.
40: Через 1 нейронку прогнали, получается, базу данных нарисовала, модельку, через другую нейронку прогнали, накидала проект через 3 нейронку пошли через курсор как раз доправлять.
41: Да, интересно, да, прикольно. Но, ну, интеграция полная нужна. То есть она нормально, нормально жрёт весь проект, жрёт контекст есть все как бы, пожалуйста. Но, блин, нет.
42: Не, бро, я бы в prod это не пустил не, ну нормально не прям все делать, но вот именно если какие-то там скелет допустим накидать, вот тому же самому моему другу ему хватает, то есть у него там задача сервис какой-нибудь сделать, как бы ему нейронка как бы скелет весь.
43: А он уже там доправляет, досматривает, че надо. Ну, не знаю, понятно, к этому так отношусь. То есть, типа, как помощник нормально. То есть освежить знания, как там удобный google и так далее. То есть с этой точки зрения намного удобнее с ним учитьс.
44: Как минимум, да, но заменять, как бы, я думаю, это что-то такое. Мы уже наслышали, как в винде, это в майкрософте, там 30% кода, искусственный интеллект пишет, а потом говорит, мы че то ссд у нас перестали работать внезапно, не понимае.
45: Почему в каких-то сценариях ссд перестаёт? Он просто, просто помирает. Ну да, ребят, за почти 30 лет ни разу, блять, такого не было. Такой дичи ни разу не было никогда. У меня 1 раз код сгорел.
46: То, что он там, ему лет 10, да уж, такое было только no бунту, когда они слишком часто эти, ну, парковали диски, там лет 10 назад, наверное, была история, может, даже больш.
47: Это они в спящий режим вгоняли диски, они парковались все время и буквально там за полгода или чуть больше они ресурс расходовали, весь, все диски просто отъезжали. Вот это было, ну, это от
48: Open source фривар форева не знаю, как хочешь назови, вот давай пойдём в комнату, посмотрим, как у нас там.
49: Открывается, не открывается, только сразу скажу, это простой редактор, там нет ничего такого, он нужен чисто, чтобы там подсветить как-то синтаксис. Угу. То есть можно вот там видно, да, там че-нибудь появляется, да? Да. Д.
50: Все хорошо видно. Вот. То есть там все просто тут я единственное, не знаю, хак собесов, точка ком иногда станет пустяком, провожу там фронт.
51: Поэтому вот задачка, она достаточно универсальная, просто на разминочку подумать, посмотреть, че, как так.
52: 2 массива данными.
53: Никакой структуры.
54: С удалёнными данными, с обновлёнными данными.
55: Так, ну если это, по сути, получается у нас какая сама суть? То есть у нас есть 2 массива ресурс с исходными, новый резалт, полученный по итогам действий пользователя.
56: Угу. Оба массива содержат объекты одинаковой структуры. Так, окей, каждый объект имеет id объекты, не изменяется идентификаторов, эквивалент. Пользователь может добавлять новые объекты, имеющиеся исходный массив. Ресурс не изменяет.
57: Итоговый набор объектов содержит в массиве резалт. Так, ну, я думаю, то, что можно воспользоваться
58: То есть сохранения результата с удалёнными элементами и этот с добавленными
59: То есть?
60: Ваш. Угу.
61: Ты это хотел сказать? На тайп скрипте пишешь, на тайп скрипте пишешь? Ой, че то.
62: Я пытаюсь понять саму суть а давай давай давай поговорим, смотри, давай посмотрим на source. Да, это исходное состояние какое-то, которое у тебя ну как бы.
63: Хранится, допустим, в базе. Ну да, какой-то, какой-то ресурс, да. Угу. А result, это то, что там пользователь нащёлкал. Угу. И, например, у тебя source, это вот, вот он в базе данных, пользователи в Роли
64: Администратор, да, а потом ты такой пользователь пришёл, что-то сделал, и тебе нужно понять, а че он сделал в роль администратора? Кого-то добавил, кого-то удалил. Угу. Ну просто вот попробуй глазками сориентироваться, че произошло?
65: Так.
66: Так, ну в любом случае нам нужно сохранить результат.
67: То есть я бы воспользовался, наверное, в здесь, сделал бы проверку на, ну, взял бы все ресурсы, в принципе, то есть, проверил бы айдишник.
68: Для сохранения с удалёнными элементами, это добавленными
69: С удалёнными результатами.
70: Была у меня ещё этот в компанию Пайрус тоже проходил собеседование, не помню, не так давно, по моему. Вот. И там у меня на собеседовании была такая этот, интересная задачка. Мы с этим, ну, тоже с техническим
71: Получается, специалистом эти разбирали задачки на подбрасывание монетки, короче, на, на всякие такие вещи. Так, здесь у нас проверка на
72: Лишний получается то, что
73: Не равен.
74: Все.
75: Сэр.
76: Так.
77: 2 массива надо, да.
78: Так.
79: Это у нас тут добавлено.
80: Удалённые, по сути, у нас.
81: Практически тоже самое в любом случае.
82: Удалённые.
83: Пользователь можно сохранять исходный массив ресурс не меняется.
84: Так.
85: То есть?
86: Ну, в принципе, думаю, все здесь можно. Не знаю. Да не надо. Давай там посмотрим. Вот это меня немножечко смущает. Давай попробуем откомпилировать и посмотреть, что получится.
87: Взять из результирующего массива все записи, да, то есть взять точнее, те записи, для которых верно, что в исходном массиве все.
88: Элементы.
89: И ни 1 не совпадает по айдишнику, да? Угу. Ну, то есть, получается, идёшь по всем элементам резалт и оставляешь только те, которых нет, как бы, в сорсе, как бы, и в итоге. Угу. До, как бы.
90: В данном случае, вот Крейк, да? Угу. Как бы по удалённым, наоборот. То есть идёшь по сурсу, оставляешь только тех, которых нет в резалте, то есть и в delete.
91: Угу. Бо, получается, да, да. А, о, at, н, можешь аннотации. Оо большое. За сколько?
92: Ну, прям так сразу не скажу, но линки, то есть в любом случае быстро. Нет, давай оценим, попробуем. Помнишь? Нет? Так, ну, примерно, да, сейчас.
93: Получается, как у нас здесь это считается. То есть мы сначала берём
94: Проходим по
95: Result, потом проходим по всем элементам н в квадрате что ли ну почти. А что если размер массивов не одинаковый?
96: Ну допустим, у тебя админка пустая, ты пошёл там пользователя накидывать у тебя source 0 элемент.
97: Если размер не одинаковый, да не?
98: Ну, размер массив может быть любым, может, да, сложность тогда как изменится.
99: Будет ли она все ещё н квадрат?
100: Честно, мыслей поэтому нету. А точно ли вообще здесь он квадрат, как? Я просто помню ещё вообще то, что мы там по операциям тоже считали. То есть сколько у нас там приходов по и по сути, все
101: Ну, у тебя здесь где проходы будут. Давай подсветим, давай разберём.
102: Ну, допустим, вот 1 строчку, этот, как наполняется, да, давай этот алгоритм разберём. Угу. Где у тебя будет проходы. То есть, 1 раз мы проходим по резалту, 2 раз мы проходим по сурсу, да, почему-то ты сказал, н, квадрат.
103: Ну, у меня это просто так, этот, на уровне этих, то, что, типа, мы проходим по 1, соответственно, по 2 тоже. То есть, если, допустим, у нас по 1 он
104: То если 2 массива, то у меня, да, а обычно 2, то массив, у него размерность своя, наверное, да?
105: М, например, да а, ну да, тогда не квадрат тогда. Н на м, да, у н квадрат получается nat н на м а. Да, да, понял, да. Ну то есть размерность то разная может быть, а он получается не.
106: Необязательно квадрат. То есть у тебя в зависимости от источника, от резалта и от Сорса получается n на m. Да, у тебя вот, а как ускорить?
107: Как ускорить?
108: Ну, можно, по сути, что точно я знаю, допустим, то, что у нас, ну, можно вообще представить в виде хешсета, мне кажется, то есть хэшсет, он же, по сути,
109: Быстрый. То есть мы в этом случае можем, допустим, те же самые айдишники через хэшсет искать просто, а хэшсет, он как работает, за счёт чего? Он быстрый, знаешь, теоретическую часть здесь, ну, примерно, то есть
110: У нас же, по сути, хэшсет это что такое? То есть это по сути.
111: Этот.
112: Ну, грубо говоря, структура, которая работает с помощью хэша, как бы она хэширует значение. И по хэшу мы можем получать какие-то данные. То есть, типа, каждый элемент имеет, соответственно, ключ, из которого вычисляется хэш и как бы
113: Значение, как бы связанное с этим ключом, если разбирать, допустим, внутрянку, как это там, не знаю, в том же самом дикшенери работает. Я помню это примерно на самом деле. То есть я помню, когда ты об этом читал, да, не будем углубляться. У нас сейчас это не
114: Не особо интересует. Угу. Вот. А, ну, принципиально получается, что хэш тебе даст прирост, где, но у тебя здесь где будет проигрыш из за использования хэша хэша?
115: Я думаю, если код напишешь на для использования хешсета, то сразу станет понятно. Попробуем модернизировать. Н 1 какой-нибудь, давай 1 какой-нибудь. Не надо все переписывать, не интересно. Ну.
116: Вынесем для этого, для сурса, да, то есть просто заведём
117: Hashset у нас будет.
118: Здесь у нас мы на айдишник, да, проверяем как раз-таки селектом.
119: Так, и в этот, получается, мы уже будем искать, проверять на именно сам этот.
120: Сам.
121: Что мы только что создали.
122: Если я правильно понимаю.
123: Contains. У нас будет по айдишнику из
124: Угу. Ну какая-то примерно так, как будто.
125: Да, ну понятно. Но у тебя, допустим, резалт все ещё проходится весь, да, и тоже, ну.
126: И, в принципе, надо всего пройти. Зато мы ускорили проверку, да. Угу. Но мы потеряли где?
127: Куда мы проблему перенесли то?
128: Потеряли, да, производительность, где мы потеряли.
129: Ну, ну, на какой-то операции, да. Ну, при проверке наличия элемента, ну, хотя не при проверке как раз-таки мы выиграем.
130: Наоборот, мы выиграли, да, в этом случае, да.
131: Вот ты хэштег бесплатно сформировал.
132: Ну, по сути нет.
133: То есть, получается, для того, чтобы, как ты говоришь, хэш сет, чтобы работал, ему нужна хэш таблица, да, нужно построить, чтобы была хэш таблица. Это нужна хэш, функция, хэш. Функция нужно применить, когда для каждого элемента, да?
134: На каждом элементе тебе нужно вычислить какое-то значение и записать в таблицу. Угу. То есть при создании это как раз-таки, если у нас будет большой, допустим, видео и задачи с реальных собеседований на сайте хак собесов точка перекладывать. Но хватит гадать, что вас ждёт на, и тут нужно оце,
135: Получается, что ты 1 раз переложил, да, прямо сейчас, зато 2 раза использовал ты 2 раз, где хэшсет этот используешь наверное, когда пойдёшь делит формировать. Да, ты ж тоже можешь по хэшсету идти. Ну да, например, вот тоже самое, если ты там source.
136: Сформировал 1 раз, потом пошёл, проверил. Поэтому иногда это меня Эскель этому научил. Именно когда работал там с эскелем, писал запросы. Очень много, очень сложно. И
137: И ребята часто приходили, пытались за 1 проход решить задачу. Вот я говорю, а зачем так говорит, ну как у меня тут операции с массивами, там, чтоб за раз я говорю, не, у тебя есть ещё там вспомогательные всякие вещи, тип.
138: По временной таблицы, да, и постоянную таблицу ты можешь использовать, какую-то там колонку добавить, че хочешь, зачем себя ограничивать? Здесь тоже самое. Иногда данные проще подготовить специальным образом и с ними работать.
139: Работать уже, да, вот в вузе мне вообще тоже там super давно это было. Говорили то, что чем проще, по сути, у нас код, тем он как бы быстрее, понятнее, лаконичнее, как бы. Ну вот я не знаю, ты солит, читал, да, нормальную.
140: Уже интерпретацию не вот это вот все в интернетах или дипсис ое нормальное. Фаулера читал? Нет, foo этого боба Мартина. Вот, ну вот его жёлтая книжечка, и он
141: Там единственное издание. Последнее, кстати, до сих пор народ ссылается ещё на старое, которое двадцатилетней давности, там как раз-таки там много противоречий. Вот 1 из принципов вот этот сингл респонсибилити, который про ответ
142: Ответственность это то, что ответственность, да, некоторые его извращают до того, что у тебя типа, функция должна быть очень маленькая быть, но это неправда, это не то, это не про то этот принцип, не про то. Вот
143: Да, посмотрим на нашу ролевую игру. Да, вот.
144: Я немножечко сейчас, может, так перемещу. Интересная надпись. Здесь вот у нас есть этот
145: Это кусочек кода для справки, да, там это не интересно. Это если возникнет вопрос, как используется, ну или как, как, о чем речь идёт про data provider. То есть где-то у нас дата провайдер тут используется. Вот.
146: Здесь мы сейчас попробуем стажёрский код привести в порядок, поэтому давай, давай кодить, давай там любые вопросы. Давай че то делать, что тебе не нравится или представь себе ситуацию, тебе на почту присылается уведомле.
147: Уважаемый Ярослав, я накодил вот тебе mr номер 1.
148: Как бы так. Бери сейчас я его смотрю сначала, так что у нас здесь не так вообще. Смотрим. Класс. 2 вот класс.
149: Так, ну для начала, что можно сказать точно то, что, допустим, не забывай, что мы с тобой в 1 конторе работаем, можно любые вопросы задавать.
150: Это вайб, кодинг. Не слушай. Ну нет, вообще сам старался, писал.
151: Так, ну для начала вообще метод get велью, допустим, да, то есть сама его сигнатура пытаюсь понять, что, что он пытается вернуть. То есть он пытается вернуть объект.
152: Лист энтри.
153: Пытается.
154: Lusine, дефолт или null.
155: Ну, самое главное, я бы название класса сначала поменял. Так, отличный. Отличная идея. Давай поменяем вот все, что хочется поменять. Это можно все менять, все берём и прост.
156: Переписываем нахрен.
157: Стажёр, ему за это ничего не будет. Он же это че со стажёра то возьмёшь его даже тот не уволишь то? Стажёр же, как я там в начале.
158: Вот, покажи, как надо.
159: Так, сейчас исправим тогда.
160: Ну, для начала вообще то есть.
161: Лист, то есть где мы его используем, лист энтри, у нас он используется только в таких случаях, в случаях по доступу, то есть я бы, наверное, его вообщ.
162: Изменился на дикшенери.
163: Почему? Потому что, ну, будет быстрее же дишен в этом случае работать, то есть для доступа к объекту. Ну, пиши, пиши, как хочешь.
164: Короче, да, пускай, че вижу, исправлю, а потом уже. Угу.
165: Простая.
166: Так, стоп, че у нас принимается?
167: Лист ентри лист центре у нас 2 и значения. И, ой.
168: Так, окей, класс 2 тоже исправим.
169: У нас.
170: Лис центре.
171: Ладно, пускай будет.
172: Чем у нас занимается вообще этот класс?
173: А вообще он получает среднем по году за месяц. Угу.
174: Пускай будет так.
175: Get велью нас. Листене.
176: Нам нужно вообще инициализировать дикшенери.
177: Хочется как-то избавиться от лиента, потому что, по сути он выполняет просто функцию словаря у нас то есть, но
178: Он у нас не словарь, а листа Бо понять только, как мне это все сделать правильно.
179: Если у нас лист ентри.
180: Окей.
181: У нас новый объект.
182: А зачем ты там static написал?
183: Так, сейчас, секунду.
184: И нет.
185: У нас по сути вот этот объект object, он у нас используется для
186: Блин, я пытаюсь вникнуть, у меня че то как-то. Угу. Тяжело она идёт, надо подумать.
187: Синк, оксик.
188: What?
189: То есть, допустим, у нас будет этот объект, мы по нему лочим.
190: Создадим ключ.
191: Не на инициализируется зачем?
192: Зачем он здесь?
193: Проверяет у нас на null якобы.
194: Че то непонятно мне.
195: Так он у нас берет число.
196: Якобы ключ берём, ключи.
197: Проверяем, если у нас есть, то возвращаем значение.
198: X. K. K.
199: Итенты.
200: Нравится мне. Мы инициализируем ключи с индексами 1 и 2. Далее. У нас какой смысл?
201: Нужно получить число, то есть мы берём, берём ключи, потом проверяем, есть ли у нас значение по этим ключам. Возвращаем.
202: Значение.
203: Как это правильно сделать?
204: Короче, пока пускай снизу будет.
205: То есть мы получили ключи.
206: Они у нас есть далее мы хотим проверить, есть ли эти ключи.
207: Условия тоже изменила.
208: Как он тукет велью.
209: По ключу пробуем его получить.
210: Если у нас он есть, то мы его.
211: Возвращаем.
212: Это что, проверяет?
213: Это провайдер.
214: Если что, не забывай спрашивать.
215: Так, ну сейчас, ну как я понял, если основные тезисы
216: Угу. Сейчас дата провайдер у нас, по сути, отвечает. А здесь есть?
217: Так, ну вот в методе create, допустим, у нас создаётся дата провайдер, получается, но в нём нет вызова. Dispose, то есть он у нас, по сути, инициализированы, он, по сути, у нас наследует
218: Disposable, но нету этого, не реализован метод. То есть это из такого очевидного, в принципе, то, что неэффективно линки использовалось, да, в get велью, что он вызывает, получается
219: Чем сразу сингл оо дефолт. То есть это я тоже не понял чуть. Это же у нас, по сути 2 раза проходит по списку. Если список там большой, то это, ну более, мне кажется, затратно. Угу. Вот.
220: Я бы, наверное, сделал.
221: Ну по 1 вызову как-то, то есть типа лист сингл оо дефолт.
222: Ладно, вынет тоже что-то странное. То есть он у нас проверяет if list равно null, а затем лочит, то есть и вызывает криейт. То есть тоже чуть я не понял. То есть между проверкой и локом, по сути, у нас же все равно
223: Другой поток какой-то может инициализировать лист, то есть, чтобы может к какому-то дублированию работы можно теоретическому привести.
224: Это меня тоже смущает. Ну, то есть. Угу. Как минимум, я бы внутри лока сделал проверку, что ещё? Ну, там.
225: В самом начале структура как бы ключа, как массива меня тоже непонятная была. То есть она работала, но как будто по 2 интам лучше как бы использовать кортеж, потому что тем более у нас с хэш кодом, если мы работаем с дикшенери вместо листа.
226: Ну, потому что скорость так можно будет увеличить.
227: Что ещё такого сказать?
228: Ну, трайкэч, естественно, тут нету. То есть. Угу. Для каких-то возможных исключений, да, то есть при работе со списком тем же самым.
229: Да, нормально. Смотри, ну мы не требуем до конца там дописывать решение. Можно, это мы на словах иногда там проговариваем и, в принципе, это понятно когда-то, да, но я просто
230: Вот про диспос понятно, там надо как-то ресурсы освободить. То есть видишь, это внешний код, который мы им не владеем, это какая-то библиотека, там куда-то вызов во вне уходит, да, то есть это
231: Для справки, то есть реализации там и нету.
232: Не ожидается от нас.
233: Ну, ещё, наверное, можно сказать по поводу криейта тоже, да, метода то, что он у нас, по сути, хак собесов, точка ком эйчар полюбит вас тайком, сколько раз вызывается 1200 раз в цикле. То есть, если это действительно
234: Сейчас я попытаюсь додумать, у меня есть какая-то типа идея, но я на этот сервис, он возвращает среднюю погоду. И вот этот дата провайдер, он предоставляет информацию о пого.
235: Годе за предыдущий год какой-то месяц и по номеру города городов 100 месяцев 12. Угу.
236: Поэтому там стоит 12.
237: Я просто думаю, если это действительно как бы лонг раннинг, то у нас инициализация будет как бы медленной же. То есть у нас нет никакого кэширования в этом случае или там какой-то ленивой загрузки, то есть все вычисляет у нас, по сути, заранее.
238: Если здесь можно это назвать там каким-то исправлением, то я бы, наверное значение загружал именно в момент требования метода. То есть, когда, если у нас он потребует, то мы как бы загрузим, ну естественно как бы тоже с локом.
239: Угу.
240: Ну, пойдёт, пойдёт, там определённые ключевые фразы я услышал, да, от тебя это достаточно, давай, это все правильно, у нас он running, да, он долго выполняется, да, нужно.
241: Кэшировать, да, нужно в какой-то момент, но тут уже зависит от ситуации. Либо мы дольше ждём, инициализируем сразу, либо мы в момент заброса и там кэш инициализируем. Угу. Нужно понимать, это зависит от
242: Конкретной ситуации уже вот то, что там использовать словарики лучше всегда, ну, там, то есть, в любой непонятной ситуации используй хэшсет. Ну, в принципе, подойдёт такое правило. Угу. Вот хэшсет, и его там всякие реинкарна.
243: Да, в каком, в каком бы то ни было виде, как, как это вот потом, ну, лист он не потокобезопасный, да, и дикшенери тоже, вот для
244: То есть, определённая структура, другая структуры, да, вот. И у словарей есть такая, да. Ну, я помню, они конкурент дикшенери, по моему, да, называется. Да, да. Так оно и назы.
245: Вот то, что там условия, понятно, всрато написано, да, абсолютно бессмысленно. Вот. Ну, единственное, здесь, вот здесь вот null, да, вот здесь вот.
246: У нас фигня какая-то ну просто по сути даже разобраться как-то было чуть тяжело, потому что я хочу разобраться что написано как бы, но из за какие-то непонятки, короче у меня возникают в голове так и есть это специальная задача такая, навалено прям.
247: Все друг на друга. Грубо говоря, я как бы, я вроде вижу ошибку, но именно чтобы взять её сразу исправить, нужно ещё чуть подумать. Мне кажется, это долго, так оно и есть. Так это специально сделано. Понял? Чтобы обескуражить, да?
248: Вывести на чистую воду, когда можно пообщаться. Хороший стажёр, получается испытательный срок вы закрываете досрочно после такого-то кода. Вот.
249: Так, ну когда в чувство привели этот код, да, тогда это досрочно закрывается. Бывают у нас ситуации в компании, когда это обратная ситуация досрочно закрывается, досрочно открывается вакансия.
250: На месте, когда человек не очень хорошо работает, ну, всякое о, наши реалии, че тут скажешь? Тем более удалённый формат работы. Он накладывает отпечаток, когда люди не хотят работать, или там, знаешь, пытаются на 2 работах.
251: Работать. Ой, у меня есть такой тоже знакомый, у него 3 работы, он 1 в своей 1 работает конторе на аутсорс, естественно, берет че то, какие-то проекты и нормально живёт, да? Ну.
252: Запаривается, правда, у нас такое отслеживается, да, во первых, ну, когда, если, тем более, если официально устраиваешься, то там сложности возникнут, и это сразу палево, это видно, да.
253: Там все это ж видно будет в моменте, там не работает, там в казино.
254: Азино, да азино, да оговорочка по фрейду, казино, оговорочка по азино, да как они ещё там, азино и ещё там как.
255: Какой-то тоже сейчас в тренде какой-то другой белорусский что ли вот как бы, да? Ну давай посмотрим на этот, на побеседуем по вопросикам.
256: По твоим. Какие ко мне есть вопросики? Чем рассказать тебе? Может, че сказать? Мне интересно про проект. Про чем вообще занимается компания, потому что я вроде как почитал, что было на хедхантере.
257: Но там больше про стек технологический. А вот сам что за проект? Я как бы цифра слышал, но особо не шарю. Ну, цифры это группа компаний, то есть это набор бизнес юнитов там.
258: Разное можно слышать. Угу. И есть бизнес юниты с бородатой историей, которые, на самом деле на рынке уже там лет 30, и в группу компаний просто они вошли. А есть те, которые молодые. Вот, а есть те, которые неугодные, да?
259: Ну, как это в семье не без урода, да, поэтому есть всякие вот. И, ну, мы конкретно, это тета, дата солюшнс. И сейчас мы владеем платформой.
260: Там некоторая история связана с этим. Как там сначала была совместная разработка с 1 бизнес, то потом разделились, мы пошли в разных направлениях, у нас есть платформа под нефтянку и платформа под другое.
261: Вот у ребят они там под нефтянку затачивают свою платформу, а мы другую пишем. Под много чего мы себя никак не ограничиваем, и у нас заказчики всякие интерпрайз, н.
262: Заказчики, так можно сказать. То есть это фосагро, русал, нлмк, русагро. Сейчас там че то с алросой было. Т плюс т, плюс, кстати, не знаю, у вас в Казани я не уверен.
263: Есть, наверное, это, это такой теплоэнергетика, это они там большой, на самом деле холдинг это тоже плюс, это как бы кусочек там, ты знаешь, которые вот эти концессии теплоснабжения часто в ком это?
264: В городах образовываются. Вот это аналог, только коммерческая структура, которая деньги зарабатывает на этом прям, которая бабосы рубит. Вот, и они там
265: В общем, коммерческая структура, кто ещё там всякие, всякие у нас есть сейчас там philip morris этот.
266: Вылетело из головы, кто микроэлектроникой занимается, у нас тоже там пытается. Сейчас, так скажем, есть внедрение. Будем пробоваться продукт адаптировать, чтобы они целиком заходили полноценно. То есть
267: Такие внедрения не очень крупные, это когда там попробовали, что-то там пробуют, там втыкают ещё они, может там промышленной эксплуатации, так скажем, на каком-то мелком подразделении, там в течение года 2 там будут смотреть, да, как идёт вообще это все вот, а кто-то прям целиком
268: Предприятием даже. Ну, то есть русал, там больше 14 площадок. Угу. Это огромные заводы. Ну, то есть это, там сколько регионов, сколько всего это, прям это колоссальное внедрение фосагро, там тоже не кисло там сейчас
269: Как раз тираж идёт. Вот в целом у нас по разработке получается полный цикл, начиная от продажи, заканчивая внедрением и Роли у нас явно выраженные. То есть у нас есть
270: Торгаши есть аналитики, бизнесовые, системные, аналитики. Ну, бизнесовые это типа отраслевых экспертов, скорее, которые шарят в бизнесе, да, но в технике поменьше, хотя
271: Могут скрипты там написать и не могут. Но вот в большей степени от них ожидается именно отраслевое решение, да, бизнес задачи, системные аналитики, они уже ближе к разработке, они уже там могут и схему данных нарисовать при необходимости, если уж приспичит,
272: Соответственно, команда у нас 7 команд, 3, 3, 3. Формат 3 бэка, 3 фронта, 3 кьюэй. Вот в каждом направлении имеется ввиду в каждом.
273: Команде в каждом направлении выраженная роль техлида есть, то есть это техлит, там k техлит бе техлит эф, её задачи как раз он, да, раздаёт, получается, задачи, раздаёт тимлид техлит это
274: Там, когда надо, я прошу там декомпозировать какие-то вещи, когда надо, там может техническое решение проработать. Вот, но задачи мы, ну, у нас есть и свободные вытяги.
275: И назначение задач. То есть, если мы видим, что надо какие-то компетенции развить, да, и там кто-то никогда не работал условно, там. И вот тебе задачка, тут как раз тебе прокачаться. На, иди там делай. Угу. Вот.
276: Соответственно прикольно вот у нас тайм трекинг это jira confluence gitlab девопсы у нас свои девопсы, то есть пайпы мы не настраиваем, у нас все централизованные.
277: Форма это набор микросервисов большое количество их порядка 140, они там в зависимости от внедрения какие-то внедряются, какие-то нет потому что это платформа модульная и там модули всякие есть типа сбор данных, хранение данных предста.
278: Давление данных, там преобразование у нас модуль расчётов, модуль расчётов это некоторый калькулятор, который мы пишем и позволяет там заказчику оперировать его накопленной информацией. То есть она где-то в базе данных лежит, она как-то там иденти.
279: Фицируется неким образом, ну там какой-то показатель, и он там как-то называется, мы можем по этому имени этот показатель как-то вытащить, да, условно говоря. Так соответственно мы можем этими показателями оперировать, складывать, делить.
280: Нажать там ещё какие-то. И у нас вот модуль расчётный, он позволяет писать всякие вот эти выражения, чтобы заказчик сам мог какую-то калькуляцию себе писать. Угу. Эти расчёты
281: Вот, ну, есть ещё модуль нормативно справочной информации, это типа справочники, но это не просто справочники, это конфигуратор справочников, то есть пользователь заходит и, может пользователь у нас не обычный, не типовой пользователь, не марья Ивановна, а это продвинутый пользователь, это скорее
282: Это инженер какой-нибудь, вот который заходит, он конфигурирует справочник, например. То есть он может его либо с нуля создать, либо там модернизировать какой-то уже существующий, добавить какой-то атрибут. Мне не хватает здесь поля код добавить.
283: Код должен быть уникальный. А ещё я хочу, чтобы код проверялся по регулярке. Он был крутым, да?
284: Вот как-то так. Ну и у нас agile то есть это делики, это
285: Точнее, скрам, да, так скажем, только без скрам мастера. Ну, спринты, дейлики, все понятно, да, планирование ретро, демо ретро есть, да, тоже каждые 2 недели на было. Да, да. Каждые 2. Так есть каждые 2.
286: В принципе, все понятно, да, все круто.
287: Ну, может, че то ещё вопросик. Вот я думаю, что ещё такого спросить. Смотри, если ничё в голову не приходит, там через Юлю можешь спросить. Угу. Ну, я думаю, если что, да, если
288: Че то возникнет, че то вспомнишь, да, спрашивай, в любом случае напишу. Ну вот она транслирует, мы ответим.
289: Да, все, тогда пока что вопросов нету. Ок, тогда предлагаю разбегаться. Спасибо тебе за уделённое время. Да и тебе спасибо. Было весело.
290: Давай. Хорошего дня. Да и тебе пока, пока.