Тестовое собеседование Java разработчика #26 - Давид Костандян

Подготовка к собеседованию на Java Developer

Транскрипция видео:

  • Итак всем привет У нас в гостях сегодня Давид Давид Расскажи пожалуйста о себе Кто ты Откуда опыт работы Какие цели перед собой ставишь Привет Я живу в Армении Ереване у меня около трех лет цели нету таких ограничений насколько возможно пойти вперед а я понял хорошо а можешь пожалуйста рассказать про свой опыт ты в одной компании работал нескольких если нескольких то про свой опыт вкратце и про текущий проект более детально нескольких Мой первый работа это была в компании находится в Москве очень хорошая компания

    00:00:00 - 00:01:44

  • занимается магазин [музыка] вот занимались поддерживали добавляя новые функциональность значит это все было с поддержкой хайбрис хабис Это продукт Саб хорошо уже не помню но то есть когда ты Подключаешь к себе хайбрис за собой Точнее с собой уже приносит готовый код который позволяет общаться клиент и покупатель в реальном времени То есть все это у него уже готова тем и хорош для разработки интернет-магазинов хорошо дальше там работал около 4 месяцев примерно потом уже вот наверное месяца 8 работают тут

    00:01:01 - 00:03:07

  • Ереване тут немножко такая специфическая специфический продукт мы так сказать предоставляем данные банком которые хотят узнать о человеке более подробно процесс да то есть там получается валидация человека там кривая сигналов Да и какой-то рейтинг Да скорее всего представляете Да все про него то есть человек пошел банк какой-то контракт и чтобы банк примерно понял Стоит ли с ним что-то заключать или ему кредит Давать ему надо про него все узнать банк пока зайдет это уточнить долгое время вот а так мы то есть он нам дает запрос

    00:02:29 - 00:04:19

  • на этого человека ты примерно все занимать другими делами мы собираем информацию все это корректируем в красивый вид у нас есть свой портал куда все это вкладывается и просто банковский Клиент заходит туда и смотрит все в красивом виде все разложено и понимает стоит продолжать или нет Ну так двух словах хорошо А можешь команду то есть какой размер сколько людей как выстроен рабочий процесс команда примерно 20 человек Project Manager product Manager Team blit senior Middle developro и Front and процесс нами обычный дают задачу ставить

    00:03:31 - 00:05:24

  • дедлайн Вот и потом все это релиз в прод обычно хорошо А скажи пожалуйста 20 человек это прямо одна команда или несколько команд собирается из этих людей у нас вообще поскольку продукт свой получается что-то все одна команда но делимся на несколько человек которые работают на одном микро сервисе два человека на одном то есть по домена до получается для бизнеса это разные домена то есть кто-то там за сбор данных кто-то за допустим аналитику да там модификации примерно тогда процесс мы все это меняется А Все я понял тогда

    00:04:41 - 00:06:19

  • чтобы все были в курсе про все микросервисы как все работает все это в процессе меняется понял то есть получается у вас такая ротация Да происходит по поддоменам под проектом и хорошо супер отыгрыша релиза то есть вас релиза идут как бы непрерывно или какие-то там сроки там неделя две недели раз в месяц то есть принтами работаете нет у нас не спринты у нас просто если есть новая задача все это задача на одном микро сервисе собирается три человека Кто на данный момент и обсуждается все детали и в конце

    00:05:33 - 00:07:01

  • оговаривается срок [музыка] чтобы они тоже примерно понимали как это релиз отдавать а как в этом случае например вы обеспечиваете сохранение контракта взаимодействия между сервисом То есть вы какую-то новую фичу делать или изменение вносите Как вы поддерживаете вот консистентной системы [музыка] API и он меняется ну к примеру вот он сам нужен новые данные и вот выработан на одном микро сервиса есть команда которая вот на другом микро сервисе и они друг друга как-то взаимодействуют примеру как вот обеспечиваете

    00:06:23 - 00:07:39

  • согласование изменения данных устраиваем демо иногда устраивал демо и все это объясняется что там было изменено что нет Если маленькая корректировка то это иногда озвучивается на утреннем эти просто говорим что было в курсе А если немножко все более то Тема и это детально обсуждается я понял Хорошо скажи пожалуйста вот как у вас выглядит какого плана Значит ты решаешь на проекте за что отвечаешь на ты разные начиная от взятия данных конвертация и закидывание базу данных откуда уже все читает и там какие-то

    00:07:20 - 00:09:24

  • что или добавить новую функциональность я понял А давай рассмотрим допустим прилетаете новая задача реализация нового функционала опять же просто путь этого функционала от получения тобой задачи до от деплой его на продакшн С чего начинается Как происходит весь процесс в целом в целом Сначала один [музыка] Сначала он мне если про меня просто зовет нити гром и говорит что вот есть такая задача хочу тебе дать и объясняет то есть в чем суть задачи сначала объясняет на словах что там примерно что нужно сделать Что

    00:08:42 - 00:10:22

  • ожидается и все такое потом все это уже расписывается в задачу задача накидывается на мне я начинаю Уже примерно понимать что там нужно сделать я все это начинаю идет процесс но если по ходу что-то непонятно то опять спрашиваю если все понятно я все это комичу gitlab потом идет ревью вот review в основном делает тимлид но если он ему неудобно то другие семер разработчики после этого уже заливается встреч проверяется там ну и потом уже пошагово все это катится в пруд Хорошо скажи просто Где у вас развернута

    00:09:43 - 00:11:17

  • система это ваше железо это облака там есть и наши насколько я знаю покупаете они знаешь где где крутится То есть это какой-то вендор или ты не сталкивался с этим заниматься не пришлось То есть получается работа разработчика заканчивается когда квест ты создал его заразили а прогнули влили и В целом все правильно разработки вас Ну да я понял для них хорошо А можешь пару слов рассказать про дизайн фича допустим какая-то большая фича был большой фон стал который надо реализовать Какая именно твоя роль в

    00:10:43 - 00:12:24

  • проектировании этого функционала там написание диаграмм каких-то анализ рисование всяких стрелочек картиночек этим занимаешься или нет Или это уже спускается тебе сверху Нет я этим еще не занимаюсь задачу которую все обсуждали в основном такими деталями деталями занимаются я понял Хорошо хорошо Какие тесты пишите насколько у вас высокий процент покрытия кода тестами [музыка] обычные тесты [музыка] то есть не интеграционные Ну иногда вот если приходится на каком-то микросервисе все-таки не получается юный тесты писать то пишем

    00:11:43 - 00:13:29

  • интеграционные тесты а из Нет а что такое не получается писать Unit тесты на каком-то микро сервисе почему не получается [музыка] не то что не получается вот нужно именно недостаточно тестов я понял когда приходится писать просто они тепло много времени занимает запуск Поэтому стараемся меньше писать если возможно я понял Хорошо хорошо Скажи пожалуйста по тексту то есть используете какую версию на 8 работал поэтому все возможности все возможности 17 я наверное не смогу и не использую Spring Spring Boot версия не помню какая

    00:12:58 - 00:15:03

  • тоже не помню [музыка] где-то есть Кафка где нету база данных это в основном половина могут я понял да то есть это понимаю какие-то Не критичные данные в Monkey хранятся не консистентные [музыка] Ну где где все-таки нужно структуру они знают что тебе можно как-то работает чтобы работаешь джессуном не знаю может а по-моему есть там какой-то тип большой Если не ошибаюсь то он так и называется Джейсон То есть если только json не дело то в принципе можно использовать но он есть свои преимущества Я просто видел

    00:14:16 - 00:15:58

  • называется Хорошо смотри еще вопросик по поводу 18 они все фича Какие вот основные нововведения же 18 ты заметила С каким работаешь на проекте по сравнению с 8 версиями виду не знаю могу ошибиться фабричные методы для создания коллекции которые идут Ну да В основном их использую там авары то есть Ну Вместо типа данных написать в армии есть такая штука используем как то я все-таки люблю когда тип я понял Хорошо хорошо есть такая штука отличника Хорошо спасибо как и говорил по задачке То есть я тебе

    00:15:51 - 00:17:27

  • сейчас кидаю ссылку в чат на код ш и попрошу тебя пошарить экран вот у тебя уже есть доступ такая зеленых кнопочка посредине экрана внизу есть смотри Нам предлагается решить следующую задачу нам на вход приходит строка с Нам необходимо развернуть порядок слов в этом в этой строке да то есть слово определяется последовательностью символов без пробелов То есть все слова в строке S будут разделены как минимум одним пробелом то есть одним пробелом или более Нам необходимо вернуть строку которая включает в себя слова в обратном

    00:16:56 - 00:18:30

  • порядке чем тот который был передан То есть например на строке 13 мы получаем строку доска из Blue и в ответ мы получим Blue ISO Sky Да во втором примере World World то есть пробелы можно применить то есть по краям и так далее и например третий пример на строке 22 то есть Нам необходимо уменьшить количество этих пробелов до одного Если не есть нам даны некоторые концентраты то есть количество слов длина S Это от 1 до 10 4 степени и с содержит только английские буквы верхний регистр и нижний регистр цифры и пробелы и у нас

    00:17:46 - 00:19:14

  • всегда есть хотя бы одно слово в строке S Вот такая задача хорошо но сначала Я предложил уточняющий вопросы возможно подтвердить задачу что как ты ее понял и потом проговорить варианты решения которые мы могли бы обсудить перед тем как писать код Ну как я понял что например приходит слово в ней три ни слова строка в ней три это три слова строки три слова в строке грубо говоря их надо прочитать справа налево Ну я думаю что это можно сплетнуть [музыка] по пробелам и потом наверное пройтись через for Rich с конца до

    00:18:30 - 00:20:34

  • начала и создать новую строку хорошо допустим какое какое какая сложность по времени по памяти у этого решения времени Да верно хорошо где N это что Это количество итераций когда мы говорим про сложность мы оцениваем входящие данные да то есть там допустим строка массивы что у нас будет в этом случае количество слов слов или символов да получается потому что мы хорошо а по памяти какая будет сложность Сколько необходимо еще место выделить Ну по памяти будет еще то есть еще создан один объект То есть получается

    00:20:01 - 00:21:34

  • будет от N Линейная сложность по времени и линейной сложности по памяти правильно отлично хорошо Ну да промотализовать в коде Как ты видишь [музыка] [музыка] [музыка] [музыка] [музыка] интересно кстати запись редко такое когда мы идем массивом сначала хорошо Так примерно Вроде так примерно так Ну хорошо давай попробуем сейчас устно пробеба жить пример игут экзамен в котором несколько пробелы вот если чуть выше подниме сейчас страничку вот со строки 22 Скопируй пример пожалуйста прям с комментарием

    00:21:12 - 00:22:43

  • скопируешь полностью строку до скопирую и вставь допустим для себя чуть ниже Опусти теперь вот на строку там 30 между 37 38 чтобы тебе было понятней и мощность какой у нас будет вывод какой результат твоего решения [музыка] вывод будет примерно вывод будет примерно несколько пробелов сначала экзамен был потому что я 3 не сделал потом к нему А ну понял да надо это пробел еще добавлять чтобы слова не сливались верно и ты сейчас думаешь что заработать сейчас посмотрю давай подумаем пока Вот это конечно может добавлять тогда

    00:24:35 - 00:26:17

  • когда это [музыка] последнее ой когда еще еще не последняя слова вообще это можно было еще реализовать через стрим через Joy чтобы убрал каждое слово и через коллекцию передаешь разделитель и он все слова поэтому разделителю собирает если на просто логика работает Они красота Ну вообще так тоже неправильно сделать все-таки лучше через Spring string bilder Ну допустим давай мне сейчас пока больше интересует вот строка 39 у нас все правильно с точки зрения языка вот компилята капилляр компиляции компиляции

    00:26:28 - 00:28:27

  • какой тип данных у переменной и это первый момент ой хорошо второй момент у массива есть метод лэнкс или это переменная lands этот момент я не помню и смотри то есть что у тебя выведется то есть вот если ты посмотришь вверх например чуть выше подними пожалуйста страницу Да вот смотри на выходе мы должны тренировать пробелы ты уверен что мы сейчас все нормально сделаем и у меня пробел и три вернуться например вот этот Ну давай возьмем пример который вот examplete Example да то есть мне почему-то кажется что сейчас у меня вот

    00:27:59 - 00:29:21

  • три пробела подряд между Good и Example они сохранятся и будет Example пробел пробел пробел пробел Гуд э еще в конце кстати пробел вроде бы останется тут и ты думаешь что это сработает Ты же примеришь само слово нет ни слова когда ты вызовешь три Сплит у тебя уже все пробелы по улетали правильно нет У тебя же получается будет второе слово Good пробел пробел пробел Э да и Example пробел пробел пробел эда То есть ты вот сейчас пробелы самих словах по моему не примеру Если не ошибаюсь можем проверить конечно

    00:29:12 - 00:30:45

  • вот здесь пробелы сохраняются верно разделяю по одному пробегу остальные сохраняются а потом ты их на строке 40 как бы убираешь Да ты имеешь в виду Да хорошо хорошо Ну допустим есть некоторые точности мог бы ты это переписать в функциональный подход через стримы как бы это сделал [музыка] Ну насколько активно используешь стримы в работе стремится Часто использую просто я думаю про то что вот сплет Ну это все-таки порядок тот же остался Мне нужно с конца вперед идти так сказать Хорошо хорошо я на самом деле

    00:30:12 - 00:32:08

  • просто стримах есть а тут можно нажать в стримах есть там разными перевез и так далее которые упростили бы твой подход хорошо то есть в целом это подход рабочий тут есть парочка ошибок которые не такие критичные Но они у тебя не пройдут тесты чтобы ожидаемый пример строка 22 23 был у тебя Мне кажется будет несколько другой выход Ну это уже как бы жили бы и проходили по этому моменту Хорошо можно экран шальный подключать и мы двинемся дальше на часть по дизайну да Отлично Хорошо Супер то есть задача

    00:31:47 - 00:32:58

  • решили с некоторым там помарочками но это не критично супер Давай просто будет за дизайн систему вот популярный вопрос попробуем сделать с тобой дизайн такой системы как Twitter да то есть смотри мне необходимо реализовать систему то есть ну опять-таки те приходят клиент У него мешок денег он говорит хочу написать очередного убийцу твиттера мы победим все будет хорошо то есть какой функционал не нужен То есть я хочу чтобы я мог добавлять новые твиты то есть новые посты Я хочу подписываться на других

    00:32:23 - 00:33:33

  • пользователей далее Я хочу отмечать там цветы Как ставить лайки Ну и там себе отмечать их там сердечком звездочкой типа как избранное и также мы предполагаем что в твите у нас может быть фото или видео прикреплять изображение Все хочу вот так как бы ты подошел к построению данной системы чтобы еще начал уточнять у своего клиента Наверное сначала на каких база данных будет работать я не знаю я у меня деньги хочу Twitter себе У меня не разбираюсь в ваших программерских штуках [музыка] вот что для нас важно да вот в первую

    00:32:58 - 00:34:39

  • очередь что мы хотели Мы хотим рассчитать как-то нагрузку на систему скорее всего там всякие не функциональные вещи выбрать базу данных для обработанных необходимо понимать объем данных и способ взаимодействия с базой что там будет запись чтение больше и так далее для меня количество пользователей важно который рассчитывают маркетологи давая Прихожу я говорю мы рассчитываем на 500 миллионов пользователей в первый год работаем даст нам супермаркетологи будет 500 миллионов пользователей [музыка] наверное надо организовать так чтобы вот

    00:34:19 - 00:35:38

  • что-то выдержала система данных Отлично Да хороший вопрос от чего это зависит то есть допустим 200 миллионов пользователей для базальных это ничего не говорит 500 пользователей ничего не говорит Какие характеристики ключевые для системы Нам сейчас нужно проанализировать для каждой схемы из ключевые характеристики то есть ну когда система может лечь да Ну да подумаем То есть это rps то есть запросы в секунду которые идут Это мне дали мне важно bandwits систему то есть пропускная способность системы сколько данных проходит и Ну как

    00:35:08 - 00:36:25

  • ты говорил хранилище то есть нужно понять сколько мне необходимо сторожа Вот давай попробуем как бы ты подошел к расчету того какие будут РПС любые вопросы задавать он по пользователям по нагрузке Я тебе постараюсь ответить для меня такой необычный вопрос Сколько Этот Что брать Какие характеристики чтобы чтобы выдержал такой поток людей Вот таких купим говорит нам сколько оперативки брать Ну допустим в идеале сказать Вот такого-то провайдера такой вот тайрн там на амазоне купить там т100500 супер мега large крутой сервер

    00:36:10 - 00:37:33

  • мы купим давай подумаем какие вопросы нам стоит задать для того чтобы понять какой будет РПС то есть количество запросов в секунду нашу систему и типа этих запросов на чтение или на запись примерно понять сколько человек будет секунду обращаться хорошо Как Мы это можем сделать Ты знаешь у тебя 500 миллионов пользователей допустим я тебе говорю что у меня пользователь Я считаю что у меня из них публиковать цветы будут 10 процентов то столько 10 процентов будет записывать куда там пометочки делать

    00:37:26 - 00:38:46

  • пока это они будут публиковать по два цвета в день а люди будут читать Допустим мы считаем что средний пользователь три раза в день заходит на наш сайт и просматривает первые 10 цветов вот как бы листа это первые 10 цветов то есть ограничение то есть мы считаем что максимальные размеры цвета который может быть у нас и тексты видео картинки Ну давай мы сделаем 50 мегабайт допустим и добрые пользователь публикации У меня 500 миллионов пользователей 10 процентов от них до публикует по вот я боюсь собрать сколько я уже сказал

    00:38:18 - 00:39:58

  • допустим да то есть это получается Сколько цветов в день Ну там сколько миллионов 50 миллионов Ну получается 50 было 500 10 процентов 50 миллионов публикующих они делают по два цвета в день 50 умножить на 2 100 миллионов до 100 миллионов цветов Хорошо теперь как мне посчитать сколько будет обращение на запись в секунду Сколько секунд в дне вот я боюсь 86 400 или 846 секундочку сейчас 86400 [музыка] ты можешь калькулятор любой брать то есть там загугнул как удобно да то есть они критично получается столько человек в секунду

    00:39:26 - 00:41:06

  • Ну человеке в этом плане интересует Меня интересует теперь запроса до rps то сейчас мы решаем сколько запросов на запись секунду у нас будет как это посчитать 100 миллионов день постов цветов точнее и 86400 секунд как не узнать сколько секунд будет запросов допустим они равномерно а почему умножить если у тебя всего за день 100 миллионов и у тебя 86 тысяч 400 секунд Мне нужно узнать сколько Каждую секунду будет публиковаться по 100 а получается время секунд разделить на получится полтора землекопа смотри

    00:41:08 - 00:42:43

  • наверное все посты количество постов делим на секунды правильно Да давай Пади Ну там может где-то любой там калькулятор 32 посчитаем таких ключевые характеристики 100 миллионов да да 100 миллионов [музыка] 157 но не миллион сто пятьдесят семь это получается вот я прочитал там 1157 он точка С чем-то Давай да пусть 1200 допустим 1200 запросов на запись в секунду будет довольно высокая нагрузка Хорошо теперь Давай почитаем сколько запросов на чтение будет пользователи 500 миллионов и они просматривают три раза в день по 10

    00:42:24 - 00:43:53

  • цветов отлично и умножить на сколько еще 10 на 10 супер Давай считать миллиард 5 миллионов что ли миллиард миллионов хорошо миллиард плюс-минус то есть миллиард запросов на чтение в день Давайте посчитаем сколько это секунду миллион 736 секунду Мне кажется там мы вообще Могли сделать проще могли просто на 10 умножить количество запросов в секунду на запись десяток это получается там 11 тысяч с копейками 12 тысяч запросов на чтение в секунду Давай это резюмирует какая нагрузка по РПС на запись и на чтение у нас идет

    00:44:07 - 00:45:46

  • 200 а 1200 на запись да и 12 тысяч на чтение отлично хорошо Мы решили что у нас максимальный размер цвета 50 мегабайт сколько места Мне необходимо каждый день так 1200 у нас было публикации то получается 50 мегабайт надо все это умножить на 1200 да да каждую секунду да 60 тысяч мегабайт получается для постов это в секунду получается 60 тысяч мегабайт [музыка] Ну примерно получается 60 гигабайт каждую секунду да это на запись То есть у нас Band 30 получается 60 ГБ секунда запись а на чтение Сколько будет если 10 раз больше

    00:45:42 - 00:47:28

  • 600 гигабайт хорошо это сколько мне необходимо памяти в хранилище Ну как минимум все это сложить Ну да да 6 00 600 6000 не подожди Почему сложить Сколько памяти Мы же не храним записи Ну там допустим какие-то метаданные храним по чтению но у нас грубо говоря 60 секунд залетает систему Сколько в день место у нас будет заниматься если секунду 6 гигабайт [музыка] на 8600 86 400 миллионов примерно 5 миллионов 5 миллионов чего гигабайт мегабайт а нет да мегабайт 5 миллионов грубо говоря 5 петабайда у нас

    00:47:12 - 00:49:17

  • получается каждый день мы будем сохранять Да хорошо На год Надо посчитать умножаем на 365 5 умножить 365 получается 1825 это байт на самом деле колоссальные здесь будут Хорошо теперь давай подумаем по технологии мы с тобой решили у нас 1200 запросов секунду на запись ты 12 тысяч на чтение у нас хранилище нужно грубо два петабайта там плюс-минус уже такие объемы хорошо нужны данных и так далее У нас получается 600 гигабайт секунду лучше 60 секунд на записи 600 на чтение Хорошо давай подумаем по технологии то есть

    00:49:01 - 00:50:26

  • чтобы мы могли использовать для хранения моих цветов из чего не состоит фото описание Ну или видео да какие-то медиафайлы то есть мне необходимо какой-то файл storage Какие файл сторож Ты знаешь что могли использовать для файл storage Amazon технологию определим то есть какую технологию мы использовали То есть знаком ли ты с какой-то системы для хранения данных там можем использовать это облачная или какая-то база данных Ну пока технологиях она просто позволяет мне что-то хранить Как сказать про такую штуку слышал

    00:49:43 - 00:51:08

  • такую штуку да Он позволяет хранить хранить большие данные Ну это файлы там так сейчас забыл там Хай дистрибьютор файл систем хорошо текст И вот данные по пользователям по постам где могли хранить база данных какой баз данных взял для хранения думаю обычно хорошо какие мотивировки Почему не майские допустим стоит хорошо получается у нас для хранения файла будет для данных у нас будет Давай подумаем про кэширование Да вот нам необходимо кэширование при таких колоссальных объемах данных вообще да

    00:51:01 - 00:52:39

  • кеширование всегда хорошо для обращения в BD можно кэшировать например человек зашел прочитал и там в течение часа ему показываем начало Но конечно одному человеку или вообще глобальное Кошель То есть у тебя миллионы пользователей сотни миллионов пользователей ты именно допустим Петя прочитал эти показываешь эти данные или всем данные показывать Ну хорошо то есть мы говорим про распределенных допустим на группы можно людей как-то поделить и по регионам С какими кошами Ты работал я кэш только создавал

    00:52:39 - 00:54:15

  • сам локально через хешмыг баги еще не то есть там спрингло каким-то я еще не работал я сам для себя Куда какую-то дел получается хорошо а знакомым там не знаю там разные редис и распайки я понял Хорошо хорошо с принципами масштабирования систем Какие виды масштабирования есть нагрузка растет есть сервис у тебя крут система сейчас онлайн 10 пользователей через час 100 миллионов потом 200 потом 5 миллионов то есть нагрузка варьируется то есть не имеет смысла держать Постоянно Допустим все все ресурсы что на нас колоссальный

    00:53:48 - 00:55:21

  • будет [музыка] Ну я слышал что есть вертикальные горизонтальные Да отлично хорошо В чем отличие между ними не помню как какой Как работает но один не могу точно вспомнить при каких-то нагрузках создает новый но у вас на проекте докер Да используется говоришь А что это такое позволяет [музыка] проект виртуально проект контейнер процесс и вот этих до вот этих контейнеров их может быть сколько 12300 500 вообще много может быть да да то есть допустим какой-то сервис API например просто какая-то фишка стандартная у тебя

    00:54:54 - 00:56:36

  • допустим одна реплика А тут и вам необходимость возникла нагрузка выросла в 10 раз Ну и допустим решили что мы масштабируемся горизонтально да то есть у тебя Вот был один и ты вот такие копии еще 10 до создал Ну 9 всего 10 у тебя хорошо а как мы распределяем обращение к этим контейнерам кто за это отвечает внешней там супер сайт точка ком есть 10 контейнеров которые под капотом вызываются кто будет распределять на какой из контейнеров пойдет запрос то есть губернатиз будут распределяться куда пойдет

    00:56:25 - 00:57:45

  • технология которая позволяет кластер в котором поднимаются эти контейнеры знаком с таким понятием как балансировщик нагрузки балансер не работал хорошо Хорошо давай ты еще пару вопросов по Security сдам с чем ты работаешь себя на проекте с точки зрения Security Spring да у вас используется чтобы ты Оус Как вас построено через общение [музыка] сейчас как раз делают два [музыка] а можешь писать концепцию как ты понимаешь что такое позволяет зарегистрироваться через внешние какие-то сервисы Ага хорошо Но ты как допустим

    00:57:17 - 00:58:58

  • стандартная ситуация у меня есть открывается окно логина там кнопочка Google Вот я клацая по Google меня там 4 Директ это Подтверждаю что я это я хочу там желаю передать данные какому-то стороннего сервису как дальше происходит как вот мой сервер который я написал понимает что я этого пользователям упустить ты занимаешься этим внедрением работы [музыка] по секретному ключу вряд ли можно общаться что мы А я никому не говорим хорошо животе токен Из каких частей состоит логин пароль нет живота токен живота

    00:58:35 - 00:59:56

  • токен отца ты получил уже Ты ввел логин ввел пароль получил обратно токен он там хранится какие-то данные в этом токене Из каких частей токен состоит который точками разделены такими [музыка] Ну насколько я знаю первую часть как и имя пользователя Ну это наверное все-таки контент загрузка моего токена это одна это там обычно храним юзер один токены и так далее хорошо допустим у вас просто системе Приходите без запрос на сервер запросе есть заголовок это как ты понимаешь что токен хороший что ему

    00:59:49 - 01:01:15

  • можно доверять что это а по подписью отлично хорошо Как подпись генерируется на основании чего основание пароля и имени пользователя Ну смотри то есть подпись это пользовательская подпись или моя подпись в токене вот если я выдаю токены кто подписывает его сервера да то есть имеет ли смысл эту подпись включать пароли логин моего пользователя а как потом из этого токена понимать кто юзер то есть вот данный о пользователе то есть в хедере обычно этом хранится алгоритм шифрования общие данные по его

    01:00:56 - 01:02:15

  • как раз хранятся всякие данные То есть можно запихнуть там клеймсы там всякие мапы да то есть роли юзера иди супер мега групера иди какой-то обеза есть набор обязательных полей то есть там айдишник и Expression Day да то есть когда был выдан токен когда он прекращает действие и потом уже есть подпись по подписи мы понимаем что это токен хороший что он мой если подпись хорошая мы анализируем вот я как бы расшифрование расшифровки токена что Понятно У алгоритма он создан хорошо Хорошо скажи еще пожалуйста Вопрос вот вы используете

    01:01:55 - 01:03:19

  • у себя в чем особенность что мне дает поверх обычного допустим хорошо то что через аннотации все можно делать не через xml ну это и обычный спирт можно то есть более более поздний вечер с пинга обычно Они через аннотация конфигурацию контекста позволяет не сделать а конфликты версий допустим возможны между библиотеками внутри одного стартера например spindata джипа содержит несколько пакетов Да мы можем быть уверены что там Нет конфликта версии внутри этого пакета стартера что там все будет хорошо они отличаются

    01:02:36 - 01:03:47

  • то что это нормально в целом Какие вопросы Может у тебя возникли нет хорошо да Хорошо паседают смотри Да как и говорил то есть я подготовлю тебе детальный разбор То есть фидбэк ты посмотришь его там будет и ответ на вопросы некоторые которые мы обсуждали разбор задачки немножко опишу как раз вот стены дизайн как могли подойти основные моменты ключевые и также список вот рекомендаций которые я бы дал чтобы ты почитал чтобы мог пробелы которые мы вывели сегодня закрыть хорошо время тогда Всем пока Спасибо Удачи

    01:03:34 - 01:04:44

Менторы

Специалисты своей области, которые смогут помочь вам

  • Нигма Нурия
    Нигма Нурия

    Middle .Net Developer

  • Сущенко Татьяна
    Сущенко Татьяна

    Senior Product Manager

  • Гудков Денис
    Гудков Денис

    Middle Python Developer

  • Курочкин Константин
    Курочкин Константин

    Ведущий программист

  • Гудман Макс
    Гудман Макс

    Backend Software Engineer (PHP)

  • Гребенкин Антон
    Гребенкин Антон

    Senior .NET/C# developer

  • Ахназаров Фёдор
    Ахназаров Фёдор

    Middle DevOps Engineer | Tbilisi, Georgia

  • Шорохов Дмитрий
    Шорохов Дмитрий

    Middle C# .NET

  • Жуков Александр
    Жуков Александр

    Senior PHP-разработчик

  • Мазикин Павел
    Мазикин Павел

    Middle python developer

© 2024 HireGuru. Сделано в Санкт-Петербурге с hireguru.ru