0: Спасибо.
1: Так, скажи, у тебя есть, да, камера, чтобы посмотреть хотя бы на себя? Так, да, камера есть.
2: Да, приятно. Смотри, важно будет камеру включить на техническом, на собеседовании, чтобы, как говорится, видеть себя, видеть, как ты отвечаешь. Вот в рамках другого можно камеру, не
3: Включать. Хорошо. Угу. Окей. Так, Даниил, скажи, где ты проживаешь в Москве? Хорошо, ты сейчас работаешь, да? Угу. А поче.
4: Почему решил сменить работу, да на самом деле не менял бы, если бы в компании руководство не сменилось и всех не загнали в офис в Нижневартовске?
5: А у вас, получается, офис изменил своё местонахождение? Да? Ну нет, не, мы все работали удалённо. Вот. А потом позвонилось руководство. Сказали, что эффективнее будет, если люди будут в офисе ходить, поэтому всех перекидывает в Нижневартовск. Ничего себе. Так.
6: Ну и поэтому ты ищешь работу, да, у тебя перед Нижневартовском планы пока не входил. Хорошо у тебя получается, в случае чего, да, опера и прочего, прочего. Да, там, в случае всего успеха, ты 2 недели отрабатываешь.
7: Выходишь на новое место работы. Хорошо. Так, смотри, у нас график работы с 9 до 18:00. Это обязательный график, установленный, да, компанией. Тебя это устраивает? Да, конечно, да. Режим работы.
8: Удалённо офис, да, поэтому здесь как тебе удобно, так и работай. Хорошо, идём тогда дальше. Подскажи, к какому там грейду относишься. Джун мидл Синер и также почему?
9: Ну, скажу, что на последнем месте работе был в качестве мидл плюс, поэтому, наверное, middle плюс. Вот, хотя есть уже оффера, сеньора, поэтому довольно субъективная, на самом деле, вещь от компании в компании зависит. А слушай, а чем, ты думаешь, отличается мидл плюс от
10: Да, то есть вот в твоём понимании, да, на самом деле, если говорить прям концептуально, то, наверное, тем, что сир, он больше отношения к бизнесу имеет. То есть он не просто разработчик.
11: Вот прям вот конкретно задачи бизнеса решает. Если говорить про то, что я наблюдаю, то это скорее уже про то, как ты себя на собеседовании продаёшь.
12: Окей, хорошо, давай пойдём дальше. Ты рассматриваешь трудоустройство по тк рф, либо как ип. Ну могу и так и так. Ну у нас привилегии именно по тк рф на другие варианты для нас являются да, интересно.
13: Вот, поэтому идём дальше. Подскажи, вот сейчас мне будут звучать вопросы, да, они могут быть для тебя нестандартные. Но прошу ответить, если не сможешь ответить, да, так и скажи, что не смогу ответить и
14: Есть ли у тебя какие-то задолженности, кредиты, микрозаймы? Нет, нету. Хорошо, подскажи, есть ли у тебя какие-то зависимости? Ну, возможно, ты не скажешь, да, правда, но это опять-таки может вылиться довольно-таки быстро.
15: Да, варианте. После выхода на работу, допустим, да, пример приведу, там, алкогольная зависимость, да, там, неделю пьёшь выходные, потом не можешь неделю работать, либо от седативных веществ, да, люди зависимы. Некоторых, вот, что не могут там встать на работ.
16: В нужное время и полдня проспать. Вот есть какие-то такие истории, только 1 дофаминовая. Люблю вкусно покушать и поиграть во что-нибудь. Прикольно. Угу. Я понял. Хорошо.
17: Ну, а в целом, вот к азартным таким играм казино и прочего нет. Да нет, не моё. Угу. Хорошо. Так, идём дальше. Ты как служил? Военный билет у тебя на руках? Либо у тебя прописной военный билет на руках?
18: Я понял. А сколько тебе лет? 20? Хорошо. Так, идём дальше. Так, так, так. Так. Нет ли у тебя открытого ип, либо какого-то собственного бизнеса?
19: Ещё нет, нету доли в компании нет.
20: Хорошо. Так, смотри, у нас пресс период, срок, корпоративная техника уже, да, ты готова работать с корпоративной техникой? Да, конечно. Угу. Окей.
21: Хорошо. И скажи, пожалуйста, какие у тебя финансовые ожидания по позиции? Сколько хотел бы получить на руки? Как уже говорил, смотрю предложения от 50. Угу. Так, хорошо. Так, ну.
22: Здесь. Окей. Если что-то нужно будет уточнить, я ещё тогда, позже, уже после тех части, уточню. К нам подсоединился Александр Станиславский. Да, команда платформы цуги. Да, всем привет. Вопрос там закрыли, слава Богу.
23: Все, разрулил. Угу. Хорошо, Александр. Так, ну, тогда о компании расскажу. Да, возможно, удалось ознакомиться. Возможно, нет свежей информации. Да, компания организована в декабре 10 года, уже довольно-таки дав.
24: 15 лет назад тех специалистами, выходцами из российского офиса компании майкрософт, вот кто основал компанию, проработали в майкрософте длительное время 5 10 лет. И вот первые 5 лет компания исключительно занималас
25: Инфраструктурными проектами в области инфраструктурных продуктов майкрософт. Возможно, знакомы тебе эти директории центр, и спустя 5 лет таких задач было принято решение
26: Разработка, собственно, по решением можно занимать стратегическим даже, да, вот так появилась цуги, управление гидрогенным инфраструктурами. Ну, как мы видим сейчас, да, спустя 10 лет это решение оказалось успешным, да, сейчас на борту у нас 6 продуктов + 3 новы.
27: Продукты формируются в этом году, да, и это не предел, да, того, что будут появляться ещё у нас новые продукты. Сейчас они активно продаются, да, нужны рынку. Главный у нас заказчик банк втб, фармстандарт, кроме этого,
28: Пилотных проектов планируется все интерпрайз, линейка, знакомые тебе компании, лидеры технологического рынка России, вот известные за рубежом на слуху каждый день, как говорится в любой рекламе.
29: Вот, да, что мы имеем сейчас, да, что кроме продуктов, это наша команда, да, команда у нас сильная команда, у нас большая, разносторонняя, разноплановая. У нас сейчас более 140 человек.
30: В прошлом году было 30, 40 человек. Чтобы попасть в компанию, действительно нужно пройти, да, серьёзный отбор. Поэтому, как ты видишь, сейчас у нас проходит собеседование, где присутствует ряд, да?
31: Специалистов, которые оценивают максимально кандидата по всем, да, фронтам. Вот у нас это единственное собеседование, да, техническое, поэтому решение принимается довольно-таки быстро, да, и воз.
32: Уже сегодня, да, получишь ответ после того, как закончить собеседование. Вот что дальше? По тому, что ещё было, да, это заказчики другие.
33: Альфа да альфа банк сибур уралхим, уралкалия, леруа мерлен сургутнефтегаз, скания Россия on. Россия фск довольно, да, большой большая линейка, заказчиков много с кем поработали, да, то есть.
34: Компания нано-таки опытная, вот по условиям, что компания предоставляет, да, как уже я сказал, режим работы удалённо гибрид офис.
35: Кроме этого, да, компания у нас it аккредитованная имеет, да, все плюшки, присущие такой компании льготная айти, ипотека, отсрочка, да и прочее, прочее согласно законодательству это все.
36: Есть также ДМС после испытательного срока компания 5% сотрудников, 5% членов семьи можно подключить также других родственников, но уже при полной оплате также предоставляется корпоративный ноутбук.
37: Телефон, Сим карта это вот в зависимости, да, от того, что с чем ты будешь связан. Также после срока может быть представлено оборудование домашнего офиса, монитор роутер, клавиатура мышь. Вот, то есть нужно
38: Ты будешь работать на корпоративном ноутбуке, да, уже большой плюс работа корпоративной техники также у нас
39: Отпуск 28 календарных дней + 3 дня. Это случай форс Мажоров. Больничный оплачивается по 100 процентной ставке, да, 40%, да, и
40: Есть различные программы, допустим, вот образовательная, да, то есть идёшь, обучаешься, получаешь сертификат об успешном окончании, приносишь его в компанию, да, и компания оплачивает тебе, да, твои затраты, но это работает только в том случае, да, если
41: Компания заинтересована, да, в твоём повышении в рамках Акилов. Вот. Поэтому это такая вот 1 из программ, 2 программа материальная, различные там под выплаты возможны.
42: На день свадьбы рождение ребёнка здесь уже по договорённости с руководством компании тоже можно получить корпоратива. У нас 2, 1 летний, 2 зимний. Летом мы встречаемся с семьями полноценно, да, на 3 дня, 2 ночи.
43: В подмосковном отеле в этом году стальград 1 неделя июля, да, будет на выходных. То есть пятница, суббота, воскресенье. Вот компания оплачивает все транспортные расходы, то есть и весь спектр развлечений, который там доступен, можешь пользоваться, да, и
44: И сотрудников. Мы здесь встречаемся только командой в 1 и том же баре в этом году. Неизвестно, сможем ли мы туда даже вместиться. Но вот, да, такой уже командой большой. Вот там уже чисто, да, как говорится.
45: В неформальной рабочей обстановке общаемся, знакомимся, потому что, бывает, даже и можем не узнать друг друга. Вот. Ну и самое главное, да, что хотел бы отметить, оно важно, я думаю, для тебя, да, для всех, кто
46: Приходит в нашу компанию, это бонусы, они у нас существенные. Да, у нас нет ежемесячных премий, да, у нас есть ежемесячный кипиай, да, у нас
47: Годовой kpi он 1, да, то есть в размере от нуля до 6 ежемесячных окладов в твоём случае по итогам года выплачивается в декабре феврале, то есть как поработаешь, так и получишь, можешь получить 3 4, можешь получить 1 2, можешь получить 5 6.
48: Тебя оценит по ряду критериев твои непосредственные руководители. Вот поэтому считаю хороший подарок под ёлку. Вот. Ну и что ещё это?
49: Расскажу по онлайн сервисам. У нас это почта, связь, дион джира плюс конфли, трекер задач, база знаний впн. Да, у нас в офисе сансе виртуальных машин.
50: Ресурса подключаемся через vpn, также развернут у нас гид.
51: Вот. Ну, в целом, все можешь спрашивать. Возможно, что-то ещё, да, уточнить. Могу рассказать подробнее, да, в целом, вроде пока нечего спрашивать.
52: Хорошо, тогда расскажи о себе, да, расскажи о своём опыте. Будем рады услышать. Так, ну как ты уже говорил, а как к этому пришёл, поэтому начну издалека. Пришёл.
53: Довольно давно, ещё когда играл в компьютерные игры, в очень старые игры. Вот. То есть тогда захотелось очень сильно разобраться в том, как эти игры вообще создаются. После того, как узнал, как они создаются, захотелось самому их писать. Тогда я пришёл к
54: Но потом оттуда перекатился в веб разработку. И вот сейчас по сей день как бы активный действующий веб разработчик, работал я много где, много с чем и с маркетинговыми инструментами работал, работал и с криптовалютами.
55: И в компаниях игровых дистрибьюторах, и в медицинских информационных системах. Если нужно, могу про что-то конкретно подробнее рассказать.
56: Ну, пока подробности так не надо. В общем, пока ещё остальное что-нибудь расскажи. Интересное, что вот ты считаешь каким-то достижением на том или Ином месте работы, то есть, о чем можно вот рассказать, показать. А вот я вот такое сделал.
57: Да, и, и, Даниил, когда будешь рассказывать, расскажи, как тебе вот все, что ты сейчас уже подсветил, как ты успевал ещё это дело совмещать с обучением в университете? Так, да, окей, на самом деле.
58: Все довольно просто. Учёба в университете, она заочная, поэтому и проблем никогда не возникало с совмещением. Вот, а по поводу достижений, достижений, достижений. Ну, наверное, была такая 1 ситуация.
59: Когда на последнем месте работе к нам пришли новые заказчики и нужно было разрабатывать ещё 1, ещё несколько информационных систем, помимо тех уже, которые у нас были. И тогда встала как бы задача, у нас не было тогда нормальной системы распределённого логирования. У на
60: Все логи хранились у каждой системы на своей локальной машине, у каждого сервиса было по могло быть по 10, 12 рабочих контуров, из за чего как бы возникали проблемы с тем, чтобы эти логи собирать. Вот как раз-таки
61: Задача упала о том, чтобы написать, и тогда я написал такую небольшую библиотечку для того, чтобы все логи стекались в sir, чтобы можно было отследить вообще в целом путь того, как работает лог, не того, того, как проходит запрос в системе, что там логгируется, что там происходит вообще, как мы оттуда дошл.
62: Ну и тогда как раз-таки очень упростилась этот вот поиск и работа в целом с клиентскими запросами и с бизнес запросами тоже можно было очень просто отслеживать.
63: Угу. Хорошо. Спасибо, что скажи, пожалуйста, да. Скажи, пожалуйста, настройкой, установкой опен сетча. Кто занимался? Опен чего?
64: На то все че?
65: Ну, там, где логи собирались, агрегировались мы, у нас все было в, а конкретно тем, чтобы его поднимать, занимались девопсы оттуда, получается, в приложение внешнего окружения подтягивались уже сами эти креды.
66: Ну то есть как он устанавливается, как он конфигурируется, вы не занимались? Нет, не занимаюсь. Команда ops.
67: Ну понятно.
68: Да, найдём дальше. Так.
69: Ну, если говорить прям о достижения, то на предпоследнем, на 2 месте работы получается у нас, ну, как я уже говорил, это был дистрибьютер, вот, то есть сам заключался в том,
70: Том, чтобы когда к нам приходят какие-то разработчики игр, они могли, получается, брать нашу инфраструктуру, они могли получать нашу инфраструктуру, то есть могли пользоваться нашими платёжками, наши могли собирать, пользоваться нашей аналитикой, и мы, получается, публиковали
71: Их приложения на платформах, то есть там vk игры, яндекс игры, google play, apple store и так далее. Вот так как раз-таки, наверное, встало, очень активно встал вопрос о том, чтобы масс, ну, чтобы увеличить пропускную способность.
72: Платежа модуля, потому что он тогда у нас, к сожалению, оказался очень узким местом, то есть такое вот тогда я как раз-таки занимался тем, чтобы вычленить его из монолита и отдельный сервис
73: Угу, хорошо, давай тогда, может быть, пойдём по шаровой части, дальше двинемся. У нас есть такая штука, как
74: С 3 лайфтаймами можешь про них рассказать, ну, всего 3 life это Скопп треджен и сингл тон. Синглтон у нас создаёт 1 контейнер на все время жизни приложения Скоп. Контейнеры живут в рамках 1 Скопа, а Трейден это так называемый.
75: Контейнеры, состояние которых не сохраняется, и при каждой инъекции создаётся новый контейнер. Угу. Ещё просьба. Можешь камеру включить на, да, спасибо. Да, теперь ещё такой вопрос. Смотри, если мы из сингл тона,
76: Хотим обратиться к Скоп сервису, как нам это сделать? Ну, можно через аско фектори создать Скоп и оттуда вытаскивать. То есть, например, очень часто такое бывает, когда, ну, у нас есть, например, какой-то сервис модификаций в то есть это какой-то бэкграунд, сервис которы
77: Занимается рассылкой, вот там условно раз в какое-то время создаётся как раз-таки скоб, делается рассылка и scope уничтожается, то есть закрывается.
78: Угу, хорошо, спасибо. Касательно обработки ошибок в api. Как, как вы её делали? Как её можно сделать? Централизованная обработка именно. Ну, у нас для этого была специальный мидл, которая приводила все ошибки к какому-то единому ввиду.
79: Вот. Угу. То есть вы свои писали, да? А про стандартные что-нибудь слышал из коробки? Ну, нет, да, слышал про них, но мы использовали самописную. Ну, может, можешь рассказать про стандартные, ну,
80: Я конкретно с ними не работал, я просто знаю, что такие есть, поэтому, если говорить прям подробно, то нет, не скажу.
81: Хорошо, тогда так. Дальше пойдём. Обработка ошибок локальная. Трай кэтч. Мы в catch поймали какой-то эксепшн, вывели его в лог и дальше выбросили его наверх. Как нам это сделать? Ну?
82: Можно через ключевое слово through. Если мы хотим показывать её, то просто выкидываем ошибку вверх, если не хотим то throw new exception и все. Угу. О, спасибо дальше параллельность и синхронность чем отличается как реализовано когда?
83: Какой подход выбирать. Так, ну, асинхронность это механизм языка, который позволяет нам оптимизировать работу потоков, а параллельность это уже скорее свойства платформы. Может ли она выполняться, использовать параллельные вычисл,
84: Скорее, речь, наверное, была про многопоточность.
85: Ну, про многопоточность, в том числе, да, параллельность, параллельность. Просто когда у нас вычисления идут на 2 разных процессорах, ну, это не обязательно. Почему же это может быть на 1 процессоре 2 разных потоках? То же такая уже многопоточность. Хорошо.
86: Давай так будем называть тогда вопрос все тот же. В какой ситуации, какой подход применять? Так, ну, параллельно, когда у нас есть какая-то большая вычислительная система, на которой, например, вот многопроцессорные серверы, вот там можно использовать параллельные вычисления, чтобы процессы
87: Потоки не конкурировали друг с другом. То есть там абсолютно 2 разных процесса, которые друг с другом никак не связаны. Если говорить про многопоточность, то это когда у нас платформа оперирует сразу несколькими потоками из пулу потоков. Если мы говорим конкретно про дотнет, ну или можно создавать свои там,
88: Не важно, для чего бы использовал. Я бы использовал для каких-то маленьких быстрых задач, которые не требуют разворачивания целевого потока, потому что развернуть целый поток это очень ресурсозатратная операция, поэтому я бы использовал, ну,
89: Как раз-таки асинхронная задача базу сходить вот а многопоточные наверное для каких-то больших сложных вычислений в рамках 1 системы угу например создание класса тред подпадает под какую категорию ну new thread это?
90: Создаётся новый поток. Угу. А ты говоришь про отдельный процессор и про многопоточность. Этот поток может быть на отдельном процессоре. Ну, может быть, может, на самом деле сложно сказать. Я не помню, я не работал, по моему, ни разу.
91: На многих процессорах сразу хорошо. Ладно. Такой вопрос. У тебя есть 2 задачи. 1 посчитать большое количество матриц, перемножение матриц, 2 обработать большое количество файлов на файловой системе. Угу. Какой?
92: Ход ты бы выбрал для того и другого.
93: Так, ну, для работы с файлами я бы, наверное, использовал синхронность, ну, для другого многопоточность.
94: Угу, хорошо. Инстелейшен, токен, как его применять? Ну, это просто кроме того, что мы передаём, как его применять. То есть есть у нас метод, который, допустим, в каком-то цикле бегает, что-то делает, нам передали токен, потом
95: Дёрнул. Как нам об этом узнать, чтобы завершить наш метод? Ну, у метода, у токена есть флаг и кансл. То есть, отменён ли он и, насколько помню, можно подписаться на событие о том, что токен был отменён. Угу. А ещё какой способ?
96: Больше не скажу. Ну, разновидность 1 там есть. О, а, ну да, да, да, это просто то прикинуть. Я понял. Хорошо. Сигнатура асинхронных методов.
97: Sync task. А если ты видишь асинк Войт что это значит? Ну это на самом деле просто синхронная задача просто которая прикрывается синхронной. На самом деле она будет выполнена, пока бот там синхронно и ещё.
98: Когда мы будем работать с такой конструкцией, то у нас, если выкинется исключения, то будет грустно. У нас исключения не отлавливаются. Ну и отлавливаются, но очень плохо. Угу. Хорошо. А в какой ситуации может быть асинкои применён?
99: В какой ситуации? 1. Вот, ну, не считая ошибок проектирования. Вполне законная ситуация, их даже 2.
100: Ну, наверное, на каком-нибудь обработчике у кнопок, возможно, такие ситуации. То есть, если то ввп приложение, то там можно по себе, наверное, синкой использовать. Вот. Но я не уверен. Совершенно верно. Да, это обработчики, которые
101: A2 случай он не очень хороший. No существует в природе 2 случай ну, наверное, когда.
102: Ну, блин, сложно. К, я, в принципе, старался так не делать и всех, кто так делал, старался от этого отговаривать. Вот. Ну, наверное, когда у нас, синатре, метода не должна ничего возвращать. Вот. И мы хотим просто, чтобы она выполняла синхронный метод, чтобы можно было там использовать синхронные операции.
103: Ещё properties проперти тоже иногда надо делать асинхронными а они при этом ну не таски ну да ну да, как вариант ситуация плохая как бы но иногда жизнь требует ну да, я такого не встречал на практике.
104: Повезло. Хорошо. Есть ещё такой класс таск, а есть велю таск. Чем они отличаются? Ну, велю таск как название. Это значимый тип. Вот он отличается от обычного таска тем, что, ну, по сути, это просто некая оптимизация в плане.
105: Того, что если у нас есть вероятность того, что метод будет выполнен синхронно, то ввели таск в этом случае выиграет, потому что так у нас не будет локации на кучу. Если же метод все-таки будет выполнен асинхронно, то он разворачивается в обычную Таску и выполняет
106: Обычным паска.
107: А в чем его преимущество? Ну как это некоторая оптимизация? Ну, в чем она заключается? Вот мы часто получается, у нас метод часто завершается синхронно. То есть какой-то кэш, например, да? Ага. И он все время возвращает. Task, почему бы ему не возвращать?
108: Так, ну тогда у нас не будет как раз-таки кучи в этом плане. То, что таска, это же класс, тип в таск это значимый тип. Да, совершенно верно. Раз уж мы до этого дошли, расскажи про структуру класса рекорда. Так, ну, структура.
109: Это че, говорю? Это значимый тип данных. Класс, это ссылочный тип данных. Разница в том, что переменные значимого типа хранят в себе тело объекта переменные ссылочного типа только
110: Угу. Так, так, а кто-то вроде говорил, нет, нет, нет, я слушаю. А рекорды, так, ну, рекорды, они, то есть, если у нас рекард класс, то в целом это тоже.
111: Если рекорд стракт, то это значимый тип, но у них есть такое свойство. Они ведут себя как иммутабельные типы.
112: То есть они ведут себя иммутабельны. Угу. А классы, структуры не могут быть иммутабельным?
113: Ну, структуры сами по себе мутабельные, потому что они значимые. Вот классы, ну, можно, ну, классы, мутабельный ли класс, ну, стринга, мутабельный класс. Нет. А вот, допустим, мы свой какой-то класс делаем, мы можем его сделат.
114: Иммутабельны, то есть типа прям как через механизм языка его пометить, он будет иммутабл. Нет, ну иммутабельность это что, неизменяемость состояния класса? Ну да, да. То есть, когда мы хотим его поменять, мы его копируем и делаем изменение с копии
115: Ну, в теории можно, конечно, соответственно, класс, мы как можем сделать иммутабельным, ну, просто, чтобы при каждой работе, при каждом изменении метода, ой, при каждом изменении класса объекта, мы бы создавали просто новый объект такого, точно такой же.
116: Ну вот смотри, простой пример. У нас класс, какая-то тошка, например, да, или неважно, у неё есть там 3 поля, как нам их сделать иммутабельным?
117: То есть, точнее, как класс сделать из этих 3 полей, то есть как-то, что нам нужно создать новую копию, это использование иммутабельного класса. А как его сделать иммутабельным? То есть прям вот механизм платформы, ну в общих словах, да, ну
118: На самом деле, не знаю. Ну, может быть, когда-то работал, но вот сейчас голову ничего не би, прям, ну вот смотри, у нас 3 поля, да, мы, допустим, проперти их, описали. Гёте, гетсе, гетсе, он мутабельный, да, вне, можно, можно это просто убрать. Так.
119: Мы убрали хорошо, как значение задать, ну, через, можно через эти методы, то есть Насирова логику, ну, как, например, ну, просто конкретный, который, когда мы хотим создавать новый, когда мы хотим изменять
120: Объект, мы бы создавали новые объекты и изменяли, то есть с новыми полями уже с новыми данными. Ну, если мы сделаем отдельный метод, получается, мы его сделаем мутабельным, потому что этот метод можно вызвать несколько раз с разными значениями, но он же никак не повлияет на состояние этого объекта. Почему?
121: Мы же сделали поля. Нет, я про то, что вот у нас есть, например, то с 3 полями есть метод, там, не знаю, ченч, что-нибудь вот в этом методе ченж, что-нибудь создаётся новый объект такого же типа и заполяется теми же, теми же данными, что и
122: У этого объекта, но меняются те, которые мы типа, передали в параметр. Хорошо. Ну, есть ещё способ. Проще у гетеров вместо сеттеров ставить инит. Либо, а, ну, ну, инит, да, да, да, все, я понял, вспомнил. Хорошо, вопрос.
123: Если у нас есть метод в нашей программе, да, в кодовой базе, который принимает обжект, а мы в него передаём какую-то структуру, что происходит? Хороший вопрос. Ну, получается, боксинг будет. Угу. Что это, ну, это когда мы упаковываем значимый тип.
124: Угу. А зачем нам это делать? А, ну, когда не нам, а компилятору, зачем это делать? Ну, для того, чтобы, ну, например, если у нас структура является членом класса, как ему тогда, этому классу быть? Вот единственный способ это положить его вместе со всеми остальными.
125: Данные, подожди, если структура член класса, она на стеке. Нет, нет, как раз-таки если структура на член класса, то как ей быть, если бы она была на стыке вот как раз-таки для этого и придумали боксинг, чтобы она упаковывалась и жила вместе с целым, с другим объектом, вместе с Сим объектом. Короче хорош
126: Как нам избавиться от боксинга, сохранив функциональность, не поломав общий контракт? То есть что можно сделать с методом, чтобы исключить боксинг?
127: Ну, возможно, передавать по ссылке. Ну, не совсем, ну, через ключевое слово. Её там нет. Дело в том, что у нас метод принимает обжект. Ну, возможно.
128: Сделать для класса какие-то обобщения, например. Ну, сделать метод жене. Ага, хорошо, да, хорошо, как раз это и помогает. А, ну да, хорошо. Ещё вопрос. Почему говорят, что
129: Стек, точнее, со структурами работа быстрее, потому что они на стеке, а с классом её, потому что они в куче, чем стек от кучи, по сути, отличается. Ну, стек это данных, которая, кстати, живёт тоже в куче. Вот.
130: На куче, когда мы создаём какие-то объекты, у нас происходит локация памяти. То есть мы сначала выделяем под это место, под это дело память, потом мы отсюда что-то читаем, когда нам нужно оттуда, что мы оттуда удаляем. Вот, то есть это очень долгие операции, а пото
131: Если мы в куче малых объектов, то мы ещё и сегментацию проводим. Вот, у е, у нас фиксированной длины, оттуда просто че то положил, вычитал. И вот, и живёшь себе быстренько. Так. То есть там уже фиксированной длины ему вообще по кайфу. Угу, хорошо, отлично.
132: Спасибо. Сейчас, сейчас, булат, паузу, паузу сделаешь, а то тема меняется, потом возвращаться тяжело. Даниил, скажи, вот тип string, вот в качестве размещения то, что мы сейчас обсудили, где размещает.
133: Он размещается на куче, но ведёт себя как значимый тип. То есть он мутабелен. Вот. Плюс ещё есть такой понятие, блин, забыл, как называется это когда у нас
134: Cr такая небольшая оптимизация, когда мы, если у нас есть 2 строки, которые, по сути содержат в себе одно и то же, то на самом деле они ссылаются на один и тот же, на один и тот же тип памяти я забыл, как называется этот механизм интернирование, да, да, интернирование вот.
135: А чем вот этот класс такой особенный, если это класс? Ну в плане, чем он особенный?
136: То есть почему так ведёт?
137: Ну, смотри, у любого класса есть обязательные методы, да, это, наверное, конструктор, правильно? Так, конструктор. Да, вот ты сказал, что string, он вроде бы как размещается.
138: Куче, но на самом деле ведёт себя как не в куче. А вот можешь поподробнее вот об особенностях этого типа рассказать, в чем особенность, кроме того, что что он размещается в куче
139: 1 особенность, я тебе уже подсветил, у него нет конструктора. Ну, по крайней мере, нет явного конструктора, да, то есть, ну, как я уже говорил, это 1 из его особенносте.
140: То, что стринга это иммутабельный тип иммутабл. Так потом, ну, подозреваю, что вот эта мутабельность, она как раз-таки связана с интернированием, чтобы не нужно было делать эту вот кучу махинаций после того, как мы куда-то стрингу передали.
141: И в надо было что-то менять. Вот про большее. Ну, может, знаю, сейчас не вспомню, наверное.
142: Давай сравним этот тип с другим типом, который называется стринг билдер, да, так, вроде бы вроде бы 2 типа выполняют 1 и тоже. Ну то, что когда мы складываем строки, мы плодим новое.
143: Ну, типа, да, этого я хотел услышать. Так, это же как табельность. Ну ладно, хорошо. Так, а ещё в чем там есть фишка? Ну, то, что three под капотом, это просто массив Чаров. Так.
144: Хорошо, хорошо, ладно. Поехали дальше. Казбулат, бери микрофон. Так двигаемся тогда дальше. В какой ситуации ещё у нас структура, которая хранится на стеке, может оказаться?
145: 1 вариант, мы сказали, что член класса, а ещё какой ситуации, ну, когда мы просто завернули, то есть привели к случаем, типа, ну, кожик, например, ну, это понятно, это когда прям совсем явно. А есть ещё явный случай, явно не явно, не явно, не явно.
146: Явно не явно, блин, вот помню, что помню что-то, но не помню, что, ну, если структур много, то что получится.
147: Поэтому.
148: Ну, поэтому, что, ну, массив, а, ну, то, что массив хак собесов, точка ком, собес станет пустяком сам по себе он тип данных, поэтому, ну, то есть, когда мы выделяем массив структур, они уже не на стеке.
149: Куча, потому что массив, ну, это потому что массив сам по себе ссылочный, да, да. То есть он, он в себе будет их и хранить. То есть не ссылки на них, когда они, да, ну и, соответственно, там, да, хорошо. Дальше менее ресурс.
150: Ну, управляемые, неуправляемые ресурсы это про disposable. Вот это все. Да. Да. Ну, у нас в чарке есть такой синаптический сахар. Нет, есть такой интерфейс. А disposable, который нужен для детерминированного управления.
151: Управляемыми ресурсами, то есть чтобы мы гарантировали их освобождение. Вот для этого есть специальный ческий сахар юзинг, который разворачивается в try фанеле, где в try у нас происходит тело юзинга, а в файнле мы вызываем метод dispose объекта. Так, ну что, про что-то конкретное рассказат?
152: Для чего это применяется? Ну, как для работы с данными, которыми мы не управляем ресурсами, которые, например, подключение к базе, там файл открыли и так далее. Угу. Хорошо, это
153: Реализация интерфейса ай disposable есть ещё ice диспози, для чего его можно использовать ну, это когда у нас вот это вот закрытие счета нет, это происходит синхронно, то есть, если это довольно тяжеловесная операция, то можно отдать его.
154: На асинхронность так называемую пример можешь привести пример, пример, пример, пример, ну, например, создание дб контекста вот через ai factory.
155: Там как раз-таки используется и способом, потому что довольно тяжело будет его закрыть потом. А в чем заключается тяжесть закрытия? Ну, в целом, нам, когда мы закрываем подключение, там нужно будет спросить у сбд, то с ним там все норм не норм. То есть надо будет ждать, пока там сама
156: Да, совершенно верно. То есть, грубо говоря, это долго и надо куда-то, да, хорошо. Карбач коллектор. Сколько у него поколений. Если говорим про очень, очень старый тот, то был миф о том, что их 10, но не знаю, правда это или нет. Вот если говорить про часто их всего тр.
157: Угу. А какие нулевое? 1. 2. Ну, хорошо. А чем они отличаются? Ну, нулевое поколение это поколение, которое чаще всего убивается. Это поколение с мелко живущим. Ну, которые живут очень мало, которые живут очень мало.
158: 2 это поколение самое живучее, это оттуда почти ничего никогда не вычисляется, не вычищается только прям в очень редких случаях, если говорим про кучу, то есть 2, вообще 5 категорий Куч это
159: Smoke hip это объекты с до 85 килобайт лаив это объекты больше 85 килобайт ПИН обжектив о object хиб и какая-то ещё обжектив я не помню это прям вот новшество недавно появилось.
160: Угу. Хорошо. Вот объекты и object, куда попадают во 2 половине сразу. Угу. Хорошо, спасибо. Ещё вопрос. У гарбадж коллектора сколько есть режимов работы?
161: 2. Это когда приложение останавливается и приложение останавливается во время очистки. Ну а что, как они называются? Они же не так называются. Ну, 1 называется точно сервер. Мост, 2. Не помню как. Ну вот. Да, да, хорошо. Вопрос.
162: С помощью чего можно в дотнете наблюдать за объектом, то есть держать его ссылку, но при этом не мешать-ка коллектор.
163: Наверное, какой-нибудь. А вот ты про это. Нет, нет, держать ссылку, но не мешать сборщику мусора, не мешать в каком плане. Ну то есть сборщик мусора, чтоб мог забрать объект, на который мы держим ссылку. То есть, если мы будем в лоб её держать, он её не забере.
164: Правильно. Ну это когда у нас там, когда до объекта нельзя добраться до со стеком, например, если у нас есть 2 ссылочных типа, которые ссылаются друг на друга. Нет, не совсем. Вот у нас есть какой-то класс, какой-то сервис, мы его инициировали и хотим
165: Взять на него ссылку, вызывать у него какие-то методы, пока он живой, пока его не забрал Карбач коллектор и не мешать Карбач коллектору его забрать.
166: Если держать ссылку на класс, кто-то из класса джиси, там какой что-то из разряда типа атлас и так далее. То есть там наверное что-то оттуда, не знаю, есть такой класс вик референс, аналог си плюс плюс там и так.
167: Reference класс до есть, который позволяет обращаться к объекту через слабые. И, да, я понял. На по этому поводу, если, но, значит, уже как бы, объекта нет. Угу. Так, ещё вопрос коллек.
168: Какие типы коллег ты знаешь? Ну, в плане типа, по сути, тип всего 1. Это massive, остальные это просто настройки массивом хорошо. Какие настройки над массивами? Ну, есть листы, стеки, дикшнери.
169: Угу. Хорошо. Дикшенери, какие применяют, предъявляются требования к типу данных для ключа. Переопределённый метод, тикет, хэш код. А ещё?
170: Ну, в плане ещё, ну, ещё есть требования, ещё требования, ну, наверное, чтобы они работали адекватно. То есть, чтобы у нас не всегда 1 возвращал. Так вот, это как следствие этого, те,
171: Так, ну представь, если у тебя есть класс, который ты хочешь использовать как ключ, который состоит из 2 полей, фамилия, имя клиента, ты инстанцировал там сотню этих классов в качестве клиентов, запихнул их в как ключи. Это класс не структуры, да, то есть у тебя есть на
172: Ссылки ещё. И тут ты у 1 клиента поменял фамилию.
173: Так, это прям вообще потерялся. Так, то есть так, все, да, у нас есть в качестве ключа какой-то сучный тип, который содержит в себе 2 поля, да, 2 поля, имя, фамилия, вот это получается.
174: 2 разных объекта, и мы у него поменяли фамилию. То есть, ну, хэш должен быть не неизменным. То есть про это речь, да, то есть ключ должен быть иммутабельным. Не просто get hash код, да, он ещё и мотабельный должен быть иначе потом все поплывёт.
175: Так хорошо, двинемся дальше, энтити фреймворк.
176: С ним работал, да, да. Угу. Хорошо. Ай, ай, разница в чем? Ну, разница в том, что, а, это и не коллекция. Он становится коллекцией только тогда, когда мы переводим его. Л. Угу. Ай, ай, не, это просто перечисление, оно может быть чем угодно. Угу.
177: Если мы в коде видим 1 и 2, что мы понимаем, ну то, что это какой-то запрос, а это какое-то перечисление, оно уже у нас получается, да? Или в базе, да? Ну не то, что не совсем у нас, потому что, а тоже может быть не материализованным ещё.
178: Они оба, они оба такие ленивые, хорошо, но киб данные перечисляет, откуда из базы. Ну, когда нужно будет данные оттуда достать, он входит в базу, материализует данные уже потом они будут перечисляться. Так.
179: Rebel тогда как себя ведёт в этой ситуации? Ну, в плане как, ну то есть, риб, мы понимаем, акрил, как только мы к нему обратимся, он пойдёт в базу, а когда мы обратимся к ray, он куда пойдёт? Ну, он раза пречисления. Ну вот, то есть.
180: Он уже имеет. То есть, когда мы видим, а мы понимаем, что мы работаем с данными на клиенте в памяти, они у нас уже просто, они не материализованы, но они у нас, да, я немножко это спутал с другой вещью. Ну вот теперь вопрос, а что хранит в себе?
181: Ну, по сути, это просто тоже самое лейбл, но там у него ещё 1 поле есть в виде провайдера, данных нет. Анрей, например, хранит сами данные, ну, где-то там перечисляет их и так далее, да, то есть он оперирует над данными, а, б, над чем тогда?
182: То есть, когда мы составляем ли запрос, что мы делаем? Ну, ты про экспрешен. 3, про кого экспрешен? 3, ну, выражений. Да, да, да, да, совершенно верно. Да. То есть это набор выражений, по большому счёту. Ну да. А номер, набор данных и набор выражении.
183: Который потом превращается в набор хорошо. И фреймворк, как обновлять и удалять сущности. Обновлять. Ну, можно 2 путями. 1 и самый простой.
184: Обновляем через трекинг. То есть когда у нас мы сущность достали, мы её трекаем, мы её поменяли, сделали. A2 это когда мы сущность не трёкали и можем а по моему, да, по моему, когда мы сущность не до
185: То мы её не можем, по моему, да, тогда как нам это сделать? Можно просто её к контексту добавить со словами, типа, вот смотри, мы её модифицировали, поэтому просто сохрани, ага, все хорошо. А ты оценивал измене.
186: Там добавили ещё 2 метода, на самом деле, довольно давно лазил, поэтому сейчас не скажу. Ну там как раз для обновления удаления добавили специальный метод, чтобы всем этим шаманским. А, ну, может быть давно пора. Хорошо.
187: Жадная и ленивая загрузка, жадная. Это та, которая загружает вообще все данные, которые касаются, то есть там, включая навигационные свойства, ленивая только те, которые нам надо. Угу. Чем реализованы, точнее, в каком, ну, инклюды,
188: Есть метод инклюз. Угу. Вот он как раз-таки позволяет на навигационные свойства.
189: Хорошо, спасибо так, ещё вопрос код фест и data base first ну и то, что в 1 у нас сначала есть база данных, а потом мы с ней работаем, во 2 мы сначала пишем сущность описываем, потом уже.
190: Создаём по ним базу данных. Угу. С помощью чего можно её реализовать? Ну, в плане не совсем. То есть у нас какая-то база данных, мы можем просто описать сущности и вот как описать с помощью
191: Почему это сделать? Вот у нас есть готовая база данных, когда кофе, понятно, мы сами код написали, а когда дате, мы сами пишем эти сущности. Ну, возможно, оддо такое предоставляет. Но есть такой инструментарий. Фрейморке не пользовался. Вроде нет.
192: Вроде всегда пользовались ему, просто даёшь коннекшн в базе, он сам строит все эти классы. Ну да, наверное, что-то от 1 пришло. Калдин называется. Ладно, хорошо, давай дальше. Чуть пониже спустимся. База данных.
193: Индексы, какие бывают? Ну, есть битри, индексы хэш, индексы всякие. Брим трим гин. Это уже там для таких более специфических вещей, там как пространственные индексы и так далее. Угу. Это д.
194: В мск индекс сталкивался вроде нет, вроде как раз-таки в основном работал прям глубоко хорошо. Как реализовать индексированный поиск по методу контейнс.
195: То есть, чтобы у нас, а чтобы когда, то есть, чтобы, когда мы в пишем контейнс в выражении, он нормально собирался. Ну, он то и так соберётся. Вопрос не в этом, чтобы у нас использовался индекс.
196: Это, то есть как искать, грубо говоря, по wi. Ну, наверное, просто нужно навесить индексы так, когда мы в контейн скидываем, мы скидываем по какому-то полю или прям по
197: Полностью по объекту скидываем. Ну допустим по какому-то полю я хочу искать типа i like с 2 процентиками, да? Ну вот. Da, понял. Так, ну если мы ищем по какой-то конкретной строке, то можно просто навесить брим брим индекс.
198: На колонку как раз-таки строковую. Вот, и он сам, сам когда будет искать по строке, то будет входить в индекс.
199: А про триграммы что-нибудь слышал? Может быть, использовал, но не слышал, верно, термин, ну, с, расширение триграммы, которые как раз позволяет таким поиском заниматься. Угу. Хорошо.
200: Другой вопрос. Представь, что у тебя есть 1 большая таблица, в ней есть большой, в ней записано большое количество данных. У нас есть какой-то запрос, который читает эти данные, он оптимизирован на него есть индексы, у нас все планы выполнения, мы профилировщиком прошлис.
201: Запрос оптимален, индексы есть, все есть, но он все ещё медленный. Что можно придумать медленный? На что? На вставку или на на выборку. Выборка, выборка на выборку, на чтение. Угу. То есть мы медленно читаем большой таблице, а у нас запрос
202: Какого плана? В плане чего? Селект? А, ну просто select. То есть по каким-то данным, да, да, при этом медленная выгрузка, но при этом таблица. Индекс чего обычный обычный селект, обычный селект, но при этом таблица индексирована. Да, да.
203: То есть у нас все индексы есть, но она просто настолько большая, что ему не хватает все равно. Ну, наверное, тут я бы предложил какое-нибудь проционов ние. Угу. Вот так, хорошо. Раз так, потом.
204: Ну, вычислить, наверное, какие данные мы не используем, и их скинуть в холодное хранилище. Ну, разновидность, оо, просто. А, ну, да, хорошо. Так, потом, потом, потом, потом, потом.
205: Ну, если у нас такие долгие чтения, то чтобы не забивать. Хотя, с другой стороны, это g1 вопрос. Ну, возможно, я бы сделал, наверное, ещё какую-нибудь реплику для чтения так просто, чтобы была, чтобы можно было оттуда читать, не напрягая основной основную реплику мастера.
206: Ну, это поможет в случае, если у тебя как раз-таки сервер под большой нагрузкой. Ну да, соедини у нас сам запрос в вакууме. Смотрим, да, значит, да, да, у нас сам запрос по себе на, то есть долгое чтение при этом.
207: Ну, какие ещё варианты именно? То есть мы пока пока что мы ещё не ограничены решениями, нам нужно просто выбрать какое-то решение, позиционирование. Раз рассмотрим, что ещё можно рассмотреть. Так что ещё можно рассмотреть, что ещё можно рассмотреть, что ещё можно рассмотреть. Я, ну, возможно, какую-нибудь
208: Лизацию. Угу. Так, 2. Хороший вариант. Так, и, и, и, и, и что ещё? Что ещё? Что ещё отдать? Индексирование таблицы куда-нибудь в elastic. То есть, где индексы?
209: Намного быстрее, чем в прессе. Это поможет. Если ты поиском работаешь, нам не поиск нужен. Ну, хотя, да, не надо. Ну да окей, тогда, тогда, тогда, тогда, пока в голову не, ничего не лезет. Вот, ну.
210: Разновидность позиционирования. Ну, в плане, то есть, как можно таблицу проецировать? Нет, другой вариант партиционирования. То есть идея та же, но реализация другая. Угу.
211: Он посложнее со своими проблемами, своими проблемами, то есть
212: Ну, подсказка, нам не хватает ресурсов на нашем сервере, нам не хватает ресурсов на нашем сервере.
213: То есть завести другую таблицу значения, там, в другой бд, условно, другой бд, где, ну, в плане на другой машине, то есть на другую машину отдать часть таблицы, и как это называется, к чему?
214: This там-нибудь распределённое что-нибудь. Ну вот, слово есть такое 1. Ага. Там принцип, принцип распределения, принцип распределения не знаю, термин не слышал.
215: Shutting.
216: А, Сарди, да, шардирование. Все, все, все, все, все. Да, догнал. А какие нюансы у шардирования видео и задачи с реальных собеседований на сайте хак собесов, точка ком. Хватит гадать, что вас ждёт на интервью. Переходите и получите преимущества перед другими кандида.
217: Прямо сейчас, вот когда мы, например, пишем, то есть, если, например, у нас, по моему, называется сордировать, когда мы, у нас все сарды по кругу становятся, то есть мы пишем сначала 1, потом 2, потом 3. У нас могут возникнуть ситуации, когда сарды нагружены неравномерн,
218: Угу, совершенно верно. А ещё в какой ситуации, когда мы уже не пишем, а что-то другое делаем? Ну, когда мы в целом оттуда читаем, нам очень сложно бывает. То есть, так как у нас это, по сути, отдельная база данных, то и писать, читать оттуда очень сложно. Пото,
219: Что нам нужно будет сначала сходить в 1, потом в другую, потом 3, потом втёртую. Там появляется некая прослойка в виде мастера шарда шар мастера. Не помню, как он там называется. У озон быттех был на эту тему, если я его смотрел давно.
220: Угу. Ну, там, в принципе, варианты реализации разные. Все зависит от того, какой ключ и какой алгоритм. Ну да, да, да. То есть там все зависит от того, что придумать. Хорошо. Спасибо. И последний вопрос от меня Эскель и 0 базы. В чем отличие, да.
221: Ну, это в основном в основе своей революционной базы данных, то есть где данные представлены в виде таблицы, а нас как раз-таки это данные, там данные могут вообще как попало. То есть редис это вообще мои данные там не структурированные.
222: Быть неон дибби это вообще графовая база данных. Угу. Вот смотри, пример. У тебя задача есть написать сервис заметок, просто Иду и написать сервис интернет магазина. Какие бы базы ты выбрал. Субд.
223: Ну, для интернет магазина я бы выбрал по, ой, ну, в плане революционной базы данных, то есть, Эскель базы данных для заметок, заметок, заметок. Я тоже самое использую ционную базу данных. А почему? Ну, а почему нет? Я просто не вижу, в че.
224: Преимущества преимущества, я бы сказал, наверное, конкретно для меня в том, что это просто более быстро в плане разработки, потому что я просто привык работать больше со базами данных, чем с базами данных. Но если мы хотим прям вот конкрет.
225: Упороться, использовать, но решение то можно использовать для заметок вонг диби, потому что если мы хотим заметки хранить максимально структурированными, вот, то есть, ну, ну то есть какие преимущества базы мы бы могли применить
226: Заметок. У них же есть свои преимущества и недостатки, правильно? Так как выглядит сервис заметок, ты залогинился в свою учетку, да, и у тебя заметка на заметка. Так вот, заметки у нас, скорее всего, имеют какую-то структуру. То есть это условно тайтл дискрипшн.
227: Теги, то есть какой-то список тегов и что ещё, что ещё? Ну этого достаточно, да, этого достаточно. То есть тут из ограничений, в которых можно, я бы не использовал.
228: Как раз-таки рая база данных это вот единственные теги. То есть мы, если у нас есть какая-то сложная система тегов, то там, возможно, можно рассмотреть уже систему с решением, и то, мне кажется, можно его совместить с решением. Угу.
229: Ну, как, как вариант, в принципе, решения они помогают там, где нужно много делать агрегации, много связей поддерживать. То есть тебе нужно какие-то данные там считать, статистику, считать, это 1 какие-то делать поиски. Ну да, если конкретно, да, если мы говорим про быстро, то есть там
230: Для аналитики, то там, да, там он даст, ну, допустим, в варианте с заметками, если у тебя есть какое-то решение, тебе не нужно искать эти заметки, тебе нужно искать по этим заметкам. Ну да, вытаскивать их сразу согласен, если у теб
231: Много клиентов, то есть как база тебе немножечко сюрпризов преподнесёт. Хорошо, спасибо большое. У меня вопросов больше нет, коллеги.
232: У меня немножко такие лёгенькие вопросы, Максим, я потом тебе передам. Ладно, хорошо, у меня совсем такие лёгенькие вопросы, потому что я смотрю, так вот, переключаешься быстро, раз ты быстро переключаешься, скажи, пожалуйста, вот ты слы,
233: Че-нибудь о паттернах проектирования, да? А паттерны проектирования какого уровня? Расскажи тогда их там расскажи всего 3. Это прикладной уровень, то есть уровень приложения, уровень взаимодействия между сервисами.
234: И системами. Вот, но могу ошибаться. Хорошо. А паттерны разработки, ну да, это паттерны приложения, то есть это паттерны, там, условно, Гофф, это там, порождающие поведенческие, там и какие-то ещё.
235: Ты какие часто используешь? Ну, если говорить, я имею ввиду про разработку, прям про разработку, про целенаправленно, то самое часто используемое. Это, наверное, репозиторий для работы с данными. Вот, если говорить про
236: Порождающие то, наверное, какие-нибудь фабрики, вот иногда прокси используем для поведения. То есть, когда какие-то фильтры используем, наверное. Так. Угу. Хорошо. Немножко такой вопрос на раба.
237: Логики, вот ты слышал такое понятие именованные и неименованные функции в дотнете
238: Ну, в конкретной теме не слышал, может, использовал в работе, но тем не слышал. Хорошо. А если порассуждать с точки зрения русского языка? Вот есть функции, да, есть функции, функции, есть имена и нет имён имена.
239: Подозреваю, что есть какие-то, скорее, речь про анонимные функции. То есть это делегаты, это лям выражений, возможно, про это, про это. А ещё какие, ну, события, наверное. Угу.
240: Хорошо, здорово. Так. И ещё у меня 1 вопрос. Совсем Лёгенький.
241: Про гарбуш, коллег, по моему, козла, ты не спрашивал совсем.
242: Ну, про поколение спрашивали, да, и про режим работы. А вот это спрашивал. Ладно, хорошо, тогда у меня такой вопрос на рантайм в дотнете. Угу. Скажи, пожалуйста, вот что с
243: Собой представляет, ну, по дефолту собранный бинарник, он собран до какого уровня?
244: Это вопрос там про компиляцию и так далее. Угу. Угу. Ну, он, когда мы собираем приложение, он собирается в дк. Вот, и есть экзешник, который, д, по моему, выходит, это вот я прям немножко знаю, потому что
245: Я с дестом не так много работал. Ну хорошо, вот ты затронул вопрос жидкой компиляции. Вот что, что это такое, когда она работает. И если знаешь, то как она работает, не, на самом деле, я про
246: Прям немножко знаю, просто вот слышал про то, что такое есть. Вот, а прям про то, как это работает. Ну я могу рассказать там, про global cache, про версии сборок, про такие вот максимально прикладные вещи, а про глубину не скажу. Не, ну смотри.
247: Ты сделал, отдал, подготовил бинарник. Мы сейчас не говорим. Это экзешник, длелка или че то такое, да? Угу. Только что ты сказал, что это бинарник. Он не совсем бинарник в машинном коде. Ты это не произнёс. Ну.
248: Понятие такое дал. Значит, раз это не машинный код, он не может выполняться как сишный код там используется то семблер, вы про это? Ну, ну ладно.
249: Приблизительно так дальше. И, ну то, что у нас когда компилирует код, когда он его
250: Ну, когда он его компилирует, он его преобразует в собственное код, который выполняется как раз-таки на, вот на платформе дунет, не е, там он потом ещё раз конвертируется в under код уже обычной машинной. Вот, и там уже потом выполняя
251: Так, хорошо. Плюс теперь скажи, пожалуйста, вот в какой момент это происходит и все ли компилируется, в какой момент и
252: Ну, собственно, в 1 ответе ты можешь сразу дать полный ответ и на 2 в том числе, ну, наверное, когда мы, ну, сборку собираем, а, ну, не компилируются, наверное, какие-то внешние ресурсы, там, условно, фотографии, которые у нас в ресурсах валяются. Не, ну,
253: Хорошо, вот ты запускаешь экзешник на исполнение, давай про экзешник говорить будет понятно. Вот экзешник на голой машине не запустится, правильно? Ну да, для этого нужен дотнет этот, э, да.
254: А для чего он нужен? Ну, чтобы можно было интерпретировать вот этот вот детовский ассемблер в обычный человеческий машинный ассемблер. Правильно? Теперь, значит, когда он начинает интерпретировать вот 1 метод там, ну, классик.
255: Main, да. Угу. Вот он компилирует сразу всю, весь exe.
256: То, что компилирует ли он его частями, ну, наверное, наверное, да, то, что есть какие-то оптимизации на эту тему.
257: Мне кажется, Саша отвалился, да, мне тоже показалось.
258: Саш, ты с нами не с нами, или я тогда подхвачу?
259: Алло. Так, ну, ну ладно, Саша тогда подключится, наверное, ещё, если что, задам вопрос. Даниил, подскажи, пожалуйста, если продолжать тему баз данных, ты в резюме писал, что у тебя там
260: Есть опыт и фреймворк, вот продуктивность, да, повысилась. А как ты видишь, вот в чем вообще вот эта продуктивность повышения заключается, если сравнить тот подход и этот, да, на самом деле, по тому, как я замерял эти все метрики, там все доболи просто смотрел.
261: Заходил в графану, смотрел что у нас вообще с базой происходит, сколько её компенсируют, сколько её трогают, тыркают вот и после того как переписали все с дапер на earth ну запросы стали.
262: Быстрее и как будто цело меньше обращений. Угу. А ты когда на earth пишешь, вот в декларативном виде запросы, ты смотришь реальные запросы, которые у тебя получаются. Ну, было такое, когда мы дебажили прям
263: На уровне провайдера данных, когда мы смотрели, во что он там и собирает, интерпретирует его. Угу. Но обычно там все довольно в голове, типа, как будто её запросы собираются. Угу. Окей, скажи, пожалуйста, а с какими, какие уровни, изоляции, транзакции?
264: Ты знаешь, по базе и с какими работал, ну, их всего 4. Это рит, анком, рит, коммите, репит и rittz. Если мы говорим про постгрес, то ритм, он там нету, потому что, ну, это связано с работой самого отреса. Вот.
265: И минимальный уровень транзакций, который создаёт и это, и не минимальны. Дефолтный. Вот. Но было дело, когда использовали при, вот, чтобы использовать, я не видел ни разу. Угу. Окей, хорошо, спасибо.
266: Давай представим ситуацию, что у нас вот есть веб приложение, да, и поступает какой-то запрос, который долго выполняется. Ну то есть на его выполнение требуется больше времени, чем у нас есть на синхронный ответ, как бы ты организовал
267: Выполнение такого запроса. Вот архитектурно какие модули бы выбрал, так, связь с ними. Угу. Понял. То есть нам нужно исследовать. Получается, то, почему у нас запрос долго идёт, и че мы с ним можем сделать? Так не
268: Не, просто вот, ну, допустим, вот, я не знаю, там этот запрос обрабатывается 10 минут, там, неважно, мы сейчас не про то, почему он, да, а как бы ты организовал выполнение этой работы, понял? Ну, то есть мы не можем сразу
269: Я понял каким-то результатом, допустим, что-то нам нужно посчитать. Да, да, я понял. Пришёл запрос. Ну, для начала, на самом деле, я бы посмотрел, что у нас происходит вообще в коде, а то бывало такое, что разработчик дебажил и забыл убрать эвейт тасс. Н.
270: 50 минут. Вот там довольно забавная ситуация была. Если в этом плане все окей, то смотрим, что у нас отправляется в базу данных. Смотрим, что у нас используется. То есть, если какой-то конкретный запрос, то через explain онлайс.
271: Смотрим, во что он там собирается, разворачивается. Вот если даже тут у нас вроде все окей, то, ну, как-то можем оптимизировать таблицу, оптимизировать, в принципе, работу, поиск, ну, работу таблицы просто.
272: Вот, и если не хотим, чтобы такое дальше, повторялся-ка, тестирование результата. Угу. Нет, ну это ты все про, как бы, способы, да, ускорить код. А я говорю вот про то, что у нас реально есть долго выполняемая операция.
273: Вот, вот, как бы ты организовал код, да, я понял. Приложение, чтобы это обеспечить, да, ты не можешь просто сейчас вот делать, да, я не совсем понял. Сразу. Так, да, тут на самом деле все просто. Я бы, наверное, сказал, что
274: Можно использовать какую-нибудь модель лонг пуллинга, то что у нас, мы создаём операцию и возвращаем. То есть там есть какой-то подзапрос словами, типа там посчитай что-нибудь, мы ему говорим, да, считай, вот твой id.
275: Вот войти можешь, как бы, спроси меня, когда я буду готов. Вот, и мы модель пулинга, то, что мы спрашиваем, типа, просто отправляем запрос условно гетовски на вот эту вот информацию и просто висим, ждём. Вот. Либо же событийная модель, там, условно по сокета.
276: Подписаться. То есть, ну, тут на самом деле зависит от конкретной ситуации. Так, ну а если мы не хотим лонгпулинг с юайке использовать, то какая у нас есть альтернатива? Ну, можно сокет открыть, чтобы уведомление само просто пришло и запушилось. Когд.
277: Ну то есть мы получили просто, окей, тут ок. А на серверной стороне, что у тебя будет происходить? Вот пришёл запрос, нам нужно запланировать его выполнение, да, кто это будет делать, как он получит команду на выполнение? Куда?
278: Запишет результат. Так, ну если мы говорим про какое-то сложное вычисление, то у нас на сервере есть какой-то сервис, который запускает то самое вычисление. Если оно прям очень долгое, то скорее всего, там создаётся какой-то новый поток для этого, вот, или он вычищается параллельно, или на каком-то другом ресурсе, там
279: Принципиально. Угу. Если мы, если это, ну, зависит от того, как мы видим вообще, как у нас система построена, если это событийная модель, то есть, это сорсинг, то состояние системы мы постоянно записываем. Если же нет, то просто система там посчитала.
280: Базовую. Мы сходили в hub, например и сказали, что держи вот мы закончили угу. Так, а если мы не через базу хотим команду дать, через что ещё можно ну можно через очереди сообщений, там, q, кафка. Угу. Так.
281: Окей, да в эту сторону я, собственно, тебя и веду ты с реббитом эн кью да, имеешь ввиду, да а вообще знаешь, в чем принципиальное отличие в подходах рэббит nqvv кафка, когда у кафки умный получатель, глупый отправитель рбот, наоборот, умный оправитель, глупый получател.
282: Там реви, по моему, про толкать, как протянуть. Угу. Окей, скажи, пожалуйста, а вот с концепцией service discovery ты знаком, что это такое можешь раскрыть? Я, скорее всего?
283: Знаю, просто не термин, не знаю. Ну хорошо. Допустим, вот у нас есть масштабирование и несколько экземпляров там веб сервиса, да? Ага. Каким образом вот поступающие запросы от пользователей ты будешь перенаправлять к какому-то из этих экземпляров?
284: У нас есть какой-то балансировочный, скорее всего, какой-то nginx. Угу. Энджинс, сервис, там какие-то ещё другие крутые эти придумали, потому что nginx, он довольно медленный на самом деле. Угу. Забыл, как называется, ну там.
285: Там много, да, много. Вот я думаю, не суть важно. Вот просто балансировщик, который мы прописываем, адреса и порты сервисов, на которые мы хотим балансировать. Вот просто стоит, балансирует, и тут придумывать ничего не надо. А по какому принципу он может балансировать? Ну, скорее всего, может по кругу балансировать можт.
286: По смотреть по нагрузке, то есть по тому, какой сервис сейчас наиболее или менее загружен, туда и отправлять. Угу. Окей, скажи, пожалуйста, а вот есть прокси, да, обычное, а есть вот гетвей, такое понятие, да, то есть это более сложное, как бы
287: Помимо портирования ещё дополнительные возможности, вот какие они какие-нибудь делать. Если мы говорим про в то это просто какая-то удобная единая точка входа в систему, чтобы у нас не было такого, что в 1 сервис
288: Стучаться могут стучаться вообще откуда угодно. Вот у нас есть какая-то единая точка входа в систему. Это как раз-таки про, то есть я бы, наверное, сказал, что вот это вот самое главное преимущество. Угу. Окей. Скажи, пожалуйста, что такое?
289: Terminating. Знаешь, для чего вообще мы можем его использовать? Ну, звучит как какое-то закрытие соединения, но подозреваю, это что-то про то, чтобы у нас какие-то модули системы.
290: Не торчали наружу и крутились только в 1 сети, но не наружу, то есть торчали, то есть были в рамках 1 сети.
291: Может быть, может быть. Ошибаюсь. Ну ладно, да, не важно. Да, немножко другое. Да, это просто тяжёлая операция, которую мы прерываем внутри системы. Общаемся уже по http протоколу. Да ладно. Так скажи, пожалуйста, с какими?
292: Системой авторизации ты работал вообще вот с точки зрения авторизации пользователя, какой у тебя? Ну обычно везде, где был, у нас стандартная авторизация по. И тут все довольно, довольно просто. Вот на каких-то местах были точечно использо,
293: Авторизация через оуф. Угу. Так, вроде бы. А ещё видел майкрософт идентити, но там прям все немножко. Угу. А jwt какой-то провайдер исполь.
294: Использовали или сами токены килок нам токены генерировал и подписывал. Угу. Скажи пожалуйста, а чем access token от рефреш токена отличается? Ну аксесс токен он этот быстро живущий. То есть он живёт какое-то короткое время, там час дв.
295: Токен, он нужен, его не видят пользователи, его никто не видит. Он нужен для того, чтобы генерировать новые токены и подтверждать их. Подтверждать. Хак собесов, точка ком. А полюбит вас. Зачем их вообще 2? Почему нельзя долго играть?
296: Ну, чтоб, ну, чтобы, если у нас, если у нас происходит авторизация по 1 токену, чтобы не было такого, что пользователь, то есть там, как получается, если у нас есть просто 1 gpt токен, по которому авторизуется пользователь, то получается так, что если этот токен украсть, то все мы украл.
297: Личность человека. Вот поэтому добавили такой штуку, как экспайр токен, то есть есть его время жизни, но теперь встаёт другая проблема. То, что после того, как нас мы добавили время жизни, пользоватлю постоянно приходится переавторизоваться какразтаки для того, чтобы пользователь постоянно не перевори овался и придумал
298: Чтобы можно было обновлять токен. Угу. Вот. Работа работает только в ск. Угу. Окей. Да, хорошо. Скажи, пожалуйста, если мы мониторим за приложением, да, его, за его там, здоровьем, да, как, как производительностью, так.
299: Скажем, какие бы метрики ты собирал с приложения, чтобы понимать, насколько ему там хорошо, плохо. Так, так, так, так, так, так. Ну, 1 наперво, это просто вообще его доступность, живое приложение или мёртвое. Угу. Вот.
300: Pink не pink, потом его потребление памяти, то есть сколько памяти потребляет приложение и сколько. Ну, возможно, блин, забыл, как называется, метрика.
301: Ну не страшно. Я слышал ещё про такие вещи, когда у нас есть какой-то метод, который выполняется. То есть есть какой-то пост, метод, который мы всегда знаем, что выполняется 5 секунд. Вот. И мы, когда чекаем приложение, мы отправляем метод и смотрим, насколько долго он выполняя
302: Если он задерживается в выполнении, то у нас система как-то очень типа нагружена. То есть она, возможно, не справляется, называется. Ну ладно, не суть важно. Так скажи пожалуйста, а на прикладном уровне?
303: То есть мы сейчас про железо больше, да, производительность. А с прикладной части, чтобы ты собирал, ну, возможно, количество успешных или неуспешно обработанных запросов. Угу. Возможно, количество заочных транзакций у бд. Угу.
304: Смотреть, сколько всего вообще операций выполняется затем, затем, затем, затем, возможно, количество подключённых открытых подключений к самому смотрел бы, то есть, чтобы можно было мониторить и подключения или нет.
305: Ага, ага. Наверное, я ещё какой-нибудь сетевой трафик смотрел бы, то есть, то, сколько приложение, ну, сети потребляет, то есть, сколько, ну, в целом, нагрузка, короче. Угу. Вот. Ну, и количество запросов, которые он обрабатывает в секунду, там, в минуту, в час и так далее. Угу.
306: Окей, хорошо, спасибо. У меня, наверное, тоже все вопросы, наверное, к следующему этапу. Спасибо.
307: Так, да, меня, да, меня че то выбило, я ответ не услышал, я не знаю, успел я вдогонку крикнуть, че то я потерял. Ладно, в принципе, ещё такой вопросик. Просто на
308: Как сказать, понятно, что есть во всем выборы исключения, но вот у нас есть подход, который Казбулат, озвучил ддб фест, и, и это самое, подход на код. Вот.
309: Ты слышал такое, да, сервисная архитектура, микросервисная архитектура, доступные приложения и так далее, и так далее, и так далее. Угу. Вот. И понятно, что в любом подходе, в любом типе проектов можно выбрать любой
310: Из этих подходов. Угу. Если правильно все делать, скорее всего, будет успех и там, и там, и там, и там. Но понятно, что преимущества и недос.
311: Каждого из этих подходов. Ты знаешь, я это даже не сомневаюсь. Угу. Ну вот тогда, когда
312: Тебе дают задачу сделать микросервис. Угу. Вот какой бы ты из этих подходов вот просто выбирал приоритетным, не то, что мы сейчас погружаемся в бизнес, его изучаем там.
313: Ковыряем, понимаем, что, а вот просто тебе дают понять, что нужно сделать. Микросервис. У тебя есть выбор из этих 2 подходов. Какой из всех выборов для тебя будет приоритетным, если мы только начи,
314: Я бы всегда выбирал монолит, потому что это банально быстрее и дешевле.
315: Дешевле. Почему дешевле в плане человеческого времени? То есть условно, если мы хотим делать систему сразу на микросервисах, то есть мы сразу разбиваем на конкретное независящие друг от друга модули, то it.
316: Было, делалось бы куда дольше, чем модуль монолит.
317: Ну, я про скорость не спрашивал, просто ты сказал дешевле. То есть дешевизна определяется скоростью, правильно я понял? Ну, я бы сказал, да, то есть, ну, тут уже скорее все в минус уходит то, что, ну да, короче, просто быстрее монолит, поэтому я взял монолит, а вы же
318: Хорошо, нужно. Если нам нужно какие-то конкретные секции масштабировать, то вырезал бы. Я бы сделал модульным и просто, когда нужно, вырезал бы из него что-то и масштабировал бы.
319: Хорошо, ещё такой вопрос. Ну, здесь понятно, что ответ лежит в опыте большом, когда люди сталкиваются с различными системами. У нас вот есть асинхрон.
320: Передача данных и синхронная передача данных, да, понимаешь, о чем я говорю? Да, вот теперь мы говорим, что асинхронная передача данных всегда по скорости проигрывает синхронной
321: Данных, да, а теперь мы повышаем нагрузку, да, нагрузка вот растёт, растёт, растёт, растёт, может случиться так. Или случается это так, что
322: Система, строящаяся на передаче асинхронных данных, начинает опережать по скорости систему, которая строилась на синхронной передаче данных. Ну да, может, потому что
323: А почему рано или поздно случится так, что мы в системе столкнёмся в пропускную способность работы самой сети? Поэтому все синхронные операции, они как бы все в этом плане проигрывают. А брокеры, то есть тот же самый кью, по сути, он не имеет.
324: Потолка в плане передачи сообщений нет, какой-то потолок есть, но его можно масштабировать.
325: Спасибо, Николай. Перехватывай микрофон. Да, все, техническая часть закончена. Да, теперь у нас более простое общение. Давай. Да, я вот хотел бы тебе пару вопросов позадавать таких простых.
326: Чем ты увлекаешься? Да, какие-то у тебя есть хобби, помимо, да, того, что писать код его, да, документировать и прочее. Ну, писать код это не хобби, это работа. Если говорить про хобби, то люблю заниматься спортом, в частности, очень экстремальными видами спорта, там
327: Сноуборд, рафтинг и так далее.
328: А на сноуборде, где ты катаешься? В, ну, я недавно переехал в Москву, до этого катался в Казани свеских холмах. Вообще по кайфу было. Иногда ездил на красную поляну. Здорово. А рафтингом ты тоже занимаешься в Сочи, да, где-то или где там?
329: Да, и если езжу, например, в Турцию летом, то в Турции там каньон есть. Угу. Здорово. Хорошо. Подскажи, я вот увидел, да, вот, эйчара, такую фразу, что ты ищешь не деньги, а
330: Ищешь команду, да, для тебя это важно. Ты такое говорил, да, можешь. Вот что за этим стоит, что тебе важно в команде? Я бы сказал, что хотелось бы работать не с теми людьми, которые просто просиживают на зарплат.
331: А вот именно с людьми, которые действительно заботятся о себе, о своём профессиональном пути, о своём, как сказать, положении на рынке, что ли? То есть, чтобы люди всегда могли, чтобы
332: Человек всегда актуализировал знания, всегда знал, что востребовано, что не востребовано, то есть люди, которые разиваются в своей области, хотят тать профессионалами.
333: В плане, которые просто повышает свой рофессионализм. Угу. Ну, слушай, это правильно. Да, я думаю, мы в этом сопоставимы, да, у нас команда и продукт, да, только идёт вверх, да, и все созревает, и все стремятся только.
334: К лучшему. Поэтому здесь у нас есть точки соприкосновения. Так, хорошо, это хорошо. Давай тогда задавай вопросы.
335: Нам, возможно, тебя интересуют процессы, да, вот только хотел сказать.
336: Хорошо. И какие тебя процессы именно интересуют? Ну, можем начать сверху вниз. То есть от того, как в целом вообще задачи ставятся, до того, как они исполняются.
337: Так, хорошо, давай тогда я расскажу. Да, здесь коллеги, Александр, Максим, меня уже поддержат, я буду рассказывать именно про платформу цуги, да, как у нас здесь все устроено. Смотри, да, у нас
338: Чего? Да, мы собираем требования, у нас формируется это требование, появляется истории, прорабатывается архитектура сейчас у нас, да, в команде это выполняет Максим Акимов. Вот Максим как раз задавал вопросы, он у нас исполняет
339: На текущий момент система аналитика, да, пока мы, да, ищем команду системного аналитика. Вот, поэтому сбор требований архитектура, да, то есть после того, как это все готово, архитектура, да, готова она согласована с
340: Да, и разработчикам, которые будут исполнять в дальнейшем, у нас появляется такая история, как декомпозиция, да, стори, да, у нас jira, поэтому у нас там стори, да, вот.
341: Происходит декомпозиция задач, и после того, как задача декомпозирована, происходит её оценка, оценка производится разработчиком, и после этой оценки опрудится она техлидом, да, и та оценка, которая уже
342: Приходит тд. С водителем проектов, да, и что дальше происходит? Да, у нас спринты двухнедельные, вот из этого, да, из этих оценок мы в целом формируем наши, да.
343: Не спринты. Вот это что по начальной части. Теперь я хочу передать слово здесь. Дальше. Я думаю, здесь будет уместно передать слово Александру станиславскому. Он скажет, что происходит дальше с задачами. Александр.
344: Ну, я расскажу, ничего нового не расскажу. Все у нас по классике, все как обычно. То есть единственное, у нас есть 1 отличие. Все-таки у нас разработчики более менее самостоятельны.
345: У нас нет таких простых кодеров, которым приходят и говорят, вот сделай сложи 1 + 2, чтоб получилось 3. И напиши для этого, юнитест, такого у нас нет. То есть задача
346: Ставится целиковая задачу. Пытаемся максимальным образом написать. Для этого у нас существует Максим. Сейчас он старается для всех. Вот. И уже реализация делает целиком
347: То есть у нас каждый разработчик фичу делает практически от начала до конца.
348: С 1 стороны, это тяжело, но с другой стороны, сам разработчик отвечает за свой монолит, как ты его называешь, целиком. То есть нет того, что каждый разработчик перекидывает, а это вот он сделал, это я.
349: Делал это вот я тут не писал, а это не моя часть. Вот вся часть, да, да, вот эта часть, она целиком твоя, ты сдаёшь и сам за неё отвечаешь, сам её сопровож.
350: Понятно, что коллеги тебя подхватывают. То есть они должны понимать, че ты сдаёшь, чтобы подменить тебя на время отпуска, не дай Бог, болезни и так далее, и так далее, да?
351: Что преемственность была, но код у нас полностью
352: Зафиксирован за разработчиками по поводу спринтов. То, что не ответил Николай или ответил частично. Все остальное как классика спринты. Стараемся делать не длинные задачки.
353: И в спринт пытаемся поместить, чтобы они помещались. Длительность задачки, да, то есть для этого мы их
354: Детализируем поменьше. Вот про истории. Николай тебе тоже сказал. История может перетекать из спринта в спринт. Задачки стараемся, чтобы не перетекали. Вот.
355: Ну, собственно, вот даже не могу сказать, что-то у нас есть такое уникального, чего нет в других командах. Все остальное вроде стандартно. А тестирование у вас как происходит?
356: Как у всех набор тестиро, команда тестировщиков или, да, смотри, да, у нас есть отдельная команда дизайнеров, да, у нас есть там свой тимлид, да, также у нас отдельная команда фронтов, да, там тоже свой тимлид.
357: Выделяются фронты каждой команде, но у нас, да, фронтов, он принадлежит команде платформы. Да, платформа, чтоб ты понимал, это верхний уровень продукта, это общее платформенные решения, которое поставляется всем продуктам. Вот.
358: Мы сейчас именно эту команду и рассматриваем, да, апп разработчика. Вот по кьюэй, да, аналогично, отдельная команда, отдельный руководитель, но под каждый продукт выделяется, да, несколько позиций. Вот, сей.
359: Под команду платформы, там замечает из другого продукта. Мы также, да, открыты найму, потому что, чтоб ты понимала, команда платформы у нас сформировалась только 3 месяца назад, да, то есть у нас активно здесь все растёт и меняется, да, вот.
360: Поэтому вот как-то так, да, что тебя ещё интересует? Я готов ответить, как происходит деплой. Если у вас какие-то тестовые контуры протекшен, сколько вообще контуров, давай я расскажу. Значит, Даниил, вот почему я
361: Не стал развивать тему с точки зрения ролевой модели. У нас все Роли существуют. Ну, понятно, нет, там вот то, что Николай подсветил там аналитиков. То есть то, что перед разработкой стоит, да, тогда, когда вот здесь немножко процесс
362: Там достаточно сложный, он сложный не только у нас, он сложный. У всех понятно, что чем больше потом все это дело описано, разработчику легче куда-то искать, ковырять и искать. Но тогда, когда разработчик уже включился в работу, дальше все Роли есть, то есть разработчик.
363: Есть тестировщик, есть девопсеры, есть отчасти релиз менеджеры. Есть такая роль, по крайней мере, существует. Поэтому все есть стенды по поводу стендов. Значит, никаких у нас
364: Наружных стендов нет в виде облаков все железо и все контура свои собственные, инфраструктура собственная, те люди, которые обслуживают инфраструктурщики, у нас тоже свои собственные.
365: Поэтому у нас все собственное, пока дефицита железа мы не испытывали. То есть все, все железо, которое нужно есть, количество стендов, много. Вот ни 1, не 2.
366: Стендов много, я даже боюсь назвать сколько. Ну, там, понятно, где-то это заканчивается десятки. Более того, у нас несколько продуктов в начале. Тебе, наверное, Николай сказал, там у нас порядка 10 продуктов.
367: Компания разрабатывается, соответственно, команд столько же, каждая команда работает на свои собственные продукты и практически у каждой команды свои собственные стенды. Поэтому вот сказать, сколько вообще пул стендов в органи.
368: Изация, даже боюсь. Угу. Ну, у нас было их порядка 30 40 в текущей компании. У нас, так как мы обслуживаем много регионов, у каждого региона свой стенд предпродакшена и продакшена, то мы их поддерживаем порядка 40 поэтом.
369: В этом плане нормально, короче.
370: Ну, как-то так больше даже, да, вот все остальное. То есть мы понимаем, как должно быть, стремимся к тому, как оно должно быть, если мы видим, что у нас не получается, ищем проблемы, чтобы оно получалось. Угу.
371: Как правило, не придумываем каких-то там супер сложных решений. Все, все по классике, да, но стоит отметить ещё другое, да, чтоб сразу осознавал, что команда чемпион, да.
372: То есть мы именно вот как бы мотивируем, да, мотивированы, и каждый день отдаёмся для того, да, чтобы вот именно платформа цуги, да, вот, имела по всем фронтам высокий уровень. Вот, да, понятно, что не делается все.
373: В 1 день, да, и с учётом того, что нам 3 месяца, да, вот, поэтому здесь мы растём вперёд, да? Ну, окей, тогда такой, последний вопрос остался. И вот после того, как попали, попала новая фича в ветку, она получается,
374: Мы её руками выкатываем на стенд или есть какие-то
375: Ну, ты глубоко копаешь. Молодец. Давай, давай расскажу политику, которую мы у себя приняли. Она не является какой-то уникальной. Мы сейчас говорим про удалённые ветки. Угу. Понятно, что
376: Удалённые ветки, они там бывают под фиче, но у нас ещё удалённые ветки зафиксированы во всех продуктах. Их 3. Это девелоперская ветка, стейдж, ветка и мастер. Соответственно, под каждую ветку настраиваются те сде.
377: Ветке работает команда разработчиков. Ну и, собственно, стенды, которые оттуда раскатываются в автоматическом режиме, раскатываются по комету разработчиков. Угу. Вот. И вот этот контур
378: Мы называем его контур разработки, он в зоне ответственности команды разработчиков. Да, все. А вот, да, дальше идёт стейдж. Понятно, что мерж коммиты из девелоперской ветки попадает в стейдж ветку, там разработка.
379: Не ведётся. Там ведётся тестирование уже командой тестировщиков. Угу. Соответственно, оттуда по коммиту разворачивается на стендах ф, но
380: А в мастер ветке, как правило, ничего не тестируется там собираются
381: В принципе, это классика, тут тоже ничего нет. То есть понимание такое есть, к этому мы стремимся, автоматизируем, я что-то уже работает, что-то будет работать. Ну так ли политика?
382: Такая, а вот есть ли такая система дежурств, то есть, условно, если там в ночью или в выходные упадёт что-то, то есть ли какой-то ответственный, который должен это понимать? Ну смотри, Даниил, давай
383: Ещё раз я повторюсь, все Роли у нас есть. У нас есть отдельная команда технической поддержки, отдельная. Н, вообще, спрашивал, делают, занимаются этим разработчики, прям не у нас поднимается. У нас есть, да, ребят?
384: Которые поднимают собственную собственную инфру, да, они её отключают, они там не зависимости, да, от чего ведут полный контроль, поэтому это на отдельные выделенные люди под это тоже. То есть разработчики у нас тоже работают по классике, это
385: Уровня поддержки. Вот, соответственно, чтобы попасть на 3 уровень, это надо пройти первые 2. Вот, поэтому первые 2 уровня закрывает техподдержка. У них действительно существует дежурство там, где у нас
386: Мы продаём контракт поддержки 24 на 7. Там есть дежурство, там, где мы продаём контракт на поддержку 8, на 5. Ну, там дежурство, ну, автоматически, да? Угу.
387: Техподдержки у нас довольно-таки сильные ребята, там, я сейчас не скажу, сколько у нас человек. Ну, наверное, уже больше 10, а планируется там в районе, наверное, 15, там, 20, да, то есть техподдержки, вот, и у них есть смены.
388: Да, ночные, я с ними также попадал в работу, да, потому что занимался проектами внедрения ещё дополнительно. Вот. Поэтому здесь у нас также собраны профессионалы, которые даже могут и развернуть даже наш продукт, да, в чем-то, вот.
389: Поэтому, да, если там команда внедрения может забуксовать, поэтому, да. Угу. Угу. Ну, я един, единственное, тебе подсвечу следующий момент. Вот сейчас, видишь, у нас полседьмого вечера, да?
390: Вот поэтому то, что с 9 до 6 рабочий день Николай тебе сказал, да, мы стараемся придерживаться, но разработчики у нас работают плотно, стараются укладываться в те,
391: Работы, которая от них зависит. Если че то не укладывается, они стараются работать, невзирая на часы, которые справа внизу подсвечивают монитор. Угу. Угу. Окей. Да, и давай че то здесь.
392: Помню немножко атмосферу эту расслабленную, да, что у нас график работы с 9 до 18:00, да, но никто не обязывает тебя сидеть в это время, да, за компьютером. Все мы живые люди, все мы гибкие, ты можешь, да, если ты там привык ночью,
393: Ходит тебе это комфортно, но кодит, кодит ночью никто не запрещает, да, то есть есть у нас сроки, да, установленные по задаче, да, что нужно реализовать? Ну, вот это главное, наверное, все остальное, да. Ну, это доступность именно в рабочее время, да, там установленные встречи, там.
394: По звонку, да, чтобы ты был на связи. Вот это, наверное, что самое главное, что нет такого попосту. Вот. Угу.
395: Так, ну понял. Тогда в целом, наверное, у меня и вопросы кончились. Такой остался 1 больше концептуальный. Это хотелось бы в целом, послушать фидбэк от нашего общения, не тот, который там ещё будет, а вот просто там впечатление о том, как, как
396: Так, давай сейчас ещё мы перед этим, я ещё 1 вопрос у тебя спрошу. Хорошо, смотри, мы провели собеседование. Я услышал в начале, что ты хочешь, да, рассматриваешь от двухста 50000. Угу. Да.
397: Теперь скажи пожалуйста, свой комфорт, цифру, комфорт, именно комфорт. Ну то есть, ну я бы сказал, наверное, что-то 300, 320 30 типа, че то такое. Хорошо. А у тебя сейчас есть over, да, как я понимаю. А скажи.
398: Предложение, от которого бы ты не смог отказаться, не смог бы отказаться. Ну да, да. Ну, наверное, что-то из разряда 400, 450. То есть тут прям вот не отказался бы. Хорошо. Ну и опять же, зависит от команды. То есть, если
399: У меня было такое-то, что вот уже предлагают 450 no ка как бы чётко, ловко подметили, что разработчики будут там всего 1 то как бы. Ну а в чем тогда смысл? То есть ну, нет команды и как-то и грустно да, давай сразу посеще отмечу. Д.
400: Для тебя важно, что ты приходишь именно в продуктовую, да, команду, да, это очень важно отметить, что и если приходишь, образно говоря, в платформу, да, это тоже важно отметить немножко другой.
401: Там все те продукты, которые у нас есть, да, и то, что у нас именно активное развитие, да, у нас не заказная разработка, да, мы там пилим, да, под наших клиентов по запросу, что да, но мы продаём лицензии в 1 очередь, что важ
402: Отметить, да, и то, что продукт именно активно развивается. И вот эти цифры, которые ты слышал, что было 6 продуктов, сейчас добавляется ещё 3, да, и ещё и будут добавляться, да, несколько продуктов. Вот мы здесь действительно устраиваем
403: Конкуренцию microsoft, да и даже уже в чем-то переигрываем майкрософт, да, по тем решениям, которые мы делаем, вот это тоже важно отметить то ту перспективу, которую компания имеет и в ближайшее время, где компа.
404: Мне кажется, и это не только российский рынок, но и зарубежный рынок, да, man африка, да куда мы также смотрим в том направлении вот для меня нет какой-то принципиальной разницы между тем, какой вид деятельности ведёт компании.
405: То есть я все-таки в 1 очередь считаю, что с любой командой хорошей командой и горы по ключу, море по колено.
406: Это правильно. Да, давай теперь по концептуальным моментам. Ты хочешь услышать фидбек? Да? Так, ну давайте фидбэк дадим. Александру станиславскому. Александр.
407: Я хотел бы ещё 1 вопросик задать. Возможно, вы уже обсуждали в начале, так как я опоздал. В резюме звучит такая логика, что компанию перевели в Нижневартовск и всех туда заставляют переехать. Вроде бы как раз.
408: Разработчики, они все удалённо работают, да? Или, или там какая-то есть уникальная особенность, уникальная особенность есть. Это поменялось руководство. Вот, а эффективные менеджеры, они как бы требуют, чтобы, что они считают, что разработчики работает только тогда.
409: Когда можно пялить ему монитор и смотреть, что он там делает. Поэтому менеджеры сказали, что если вы как бы сидите не в офисе, то вы не работаете, поэтому тебя гонят в офис.
410: Как-то странно ну ладно, на самом деле это не странно, это сейчас очень довольно популярная тема, после постковидная то что всех с covid сейчас обратно загоняют в офисы, но мне кажется это бред, то что если у компании есть эффективное нормальное руководство, нормальное.
411: Цели, то есть, которые они хотят выполнять, то неважно, как работает разработчик в офисе или дома. Ну, безусловно, дома можно создать хороший офис, да, вот я про тоже. То есть, если есть нормальные цели, которые хочет достигать менеджер, то и не важно, откуда у него разработчик.
412: Работает это да. Поэтому у нас, видишь, любой формат работы захотел, в офис пришёл, захотел дома работаешь, захотел. Так и так. И, кстати, у нас офис новый, да, там с ремонтом, поэтому, как только удовольствие работать, тоже можно.
413: Хорошо, Александр, тогда тебе слово.
414: Ну что, вопросы? Мы все позадавали. На вопросы Даниил ответил вопросы, вернее, ответы. Нас плюс минус устроили. Если нужен контактный телефон, я мог
415: Могу оставить его здесь, либо емейл. Результаты по собеседованию мы направляем в течение
416: Что ты спросил? Сказал то, что результаты через hr. А, ну, на самом деле, да. Вот смотри, по, по результатам, может быть, и не через hr мы можем меняться с контактами, да, то есть, и я могу поддерживать с тобой связь.
417: Чуть, да, быстрее, чуть, как говорится, проще. Вот действительно, чары там дают примерно связь, как и я, да, только там, может, с разницей в несколько часов. Но вот этот диалог, да, напрямую с коман.
418: Разработки, да, ты не проведёшь, да, такой не задашь любые вопросы. Поэтому я сейчас направлю вот здесь, в дионе, да, в чате свой telegram. Аккаунт зафиксируй, там, напиши. Да окей, я.
419: Смогу тебе также ответить по тому. Ну, я просто договорю, хотел договорить просто результаты руководства, результаты собеседования руководство у нас утверждает в течение 1, максимум 2 рабочих.
420: Не, ну и, собственно, результат сразу автоматически после утверждения тебя доводят. Угу, угу.
421: Так, да, акколь. Все у меня, у меня все, да.
422: Николай, да, поэтому в целом, да, наше собеседование завершено.