Настоящий синьор. Собеседование Senior Backend разработчика
HTML-код
- Опубликовано: 7 фев 2025
- В данном выпуске Константин пройдет собеседование на senior backend разработчика.
Поддержать проект: / otsobes
Канал Димы: / bashkamen
---
Если вы хотите пройти отсобеседование заполните форму:
Frontend: forms.gle/o69D...
Backend: forms.gle/FbFz...
---
Чат: t.me/otsobes_chat
Канал: t.me/otsobes
00:00 Интро
00:00:05 Вступление и знакомство
00:05:30 Стек сервиса очередей
00:08:25 Про шаблоны в приложении
00:11:40 Анемичные модели
00:13:20 Сервисы/Репозитории в rich моделях?
00:14:20 Про state приложения
00:16:05 Конкурентный доступ к состоянию
00:18:20 Модели данных Mutable или Immutable?
00:19:15 Открыты или закрытые сеттеры?
00:20:50 Что такое чистая функция?
00:22:40 Объекты которые фиксируют дату своего создания
00:25:40 DDD и TDD
00:28:40 Про событийный системы
00:31:10 Моделируем сервис заказов и оплаты
00:57:00 Saga паттерн
00:58:00 Немного про devops
00:59:00 Что происходит когда мы вводим в адресной строке google.com?
01:10:00 Монолит vs Микросервисы
01:13:30 Откат при ошибке на проде
01:17:40 Тестирование
01:25:30 Исключительные случаи
01:27:05 Монады
01:32:40 Заключение
Скоро во всех магазинах страны.
- Вы в живой очереди или по записи?
- Я в очереди через приложение.
- Ну тогда через одного пойдёте!
Афигенное интервью! Вдохновляет! Хочется подтягиваться до вашего уровня ребята.
Мне одному кажется - или сочетания ответов "мы сделали идеальную rich model" и "у нас все сеттеры свойств модели публичные" не особо сочетаются друг с другом.
Поясню:
Rich model предполагает, что св-ва устанавливаются только через вызов соответствующего метода - типа AddOrder - который в свою очередь и установит соответствующее свойство.
Тогда вопрос - зачем нарушать инкапсуляцию, обнажать св-во?
Цыгане))
В данном видео мой стек а так же топ интервьер - лайк 100%
Спасибо:)
🤟пасяб за выпуск
48:00 В RabbitMQ если при отправке в очередь, обычно сразу по ключу передавать created, cancelled, ..., то проблем не будет с эксепшном(если для cancelled кто то не добавил приоритет).
Thanks for interesting conversation. Thanks for your hard work.
Шикарно. Про gRPC было интересно послушать.
Спасибо, ведущий как куала )
на хватает тайминга в описании к видео по вопросу "RPC и REST", время 1:04:17
45:00 млять, зачем все время дергать базу? На каждый ордер нужно открывать свой стрим ссессии. А в базу продюсить уже результат этих сессий через очередь!!
пожалуйста в названии видео пишите с#
лайк с двух рук 👍👍
Так хорошо прошло, что даже скучно. Нащупывайте хоть какой-то холиварчик, пожалуйста
интересное приложение пилит Константин, жаль что в наших реалиях оно не будет работать, да и саму проблему очередей это не решит, ведь пропускная способность магазина не увеличивается никак
in Armenia there's an app for many years, and that's similar to that.. but it works especially for banks, medicals, etc. At first it also had some difficulties, but now it helps us so much..
Anyway, it's interesting to use something like that at cashier
Так тут суть в оптимизации беж, типо человек не стоит в очереди а примерно знает когда касса освободиться и ходит по магазину покупает не тратят время на стоянку
бизнес идея конечна очень странная)) я бы не ходил в такой магаз)) а собес классный
2:00 идея говно.. в глобусе, например, 30 стоек самокасм поставили и никаких очередей. Причем, многие приходят, чтобы постоять в очереди.. отвлечься, поглазеть на народ.. Это в Казахстане что ли?.. интересный менталитет.. общения, наверно больше :)) я в электронной очереди раньше тебя!! И поехало...
в некоторых случаях проводятся сессии лайв-кодинга на собеседованиях
многим в принципе некомфортно писать код, когда на них смотрят - тут ещё психологический момент включается
было бы интересно увидеть собеседование и с такой практикой (в порядке эксперимента хотя бы)
Успешно заменяется на сессию code review и поиск проблем в маленьком кусочке чужого кода. Показывает, видит ли архитектурные проблемы человек или только неправильно названные переменные. Или даже это не смущает
Очень сложно понимать русский сленг английских слов
Нуууу...... не очень так для названия видео. Удачи ребята по любому!
ruclips.net/video/Deu2ct-Nw00/видео.html что за "sec"? Может zinc?
Вопрос к топику "Про событийный системы". Юзер посылает запрос, один сервис создает ордер и райзит ивент другому на создание инвойса. Потом инвойс сервис райзит ивент и ордер сервис комплитит ордер. Вопрос: юзер не получит респонс когда только ордер будет создан или когда уже инвойс на другом сервисе тоже? Как тогда реализовано ожидание?
в целом в таких приложениях строят UI по другому
чаще всего говорят "будет сделанно" и предлагают ждать нотификацию (к примеру регистрация пришлет емейл в подтверждение регистрации)
либо на UI делать лоадер и в фоне лонгпулят бекенд
но и если сильно хочется можно не отпускать запрос и реализовать модель request-response на очередях, но ожидания в асинхронных системах это антипаттерн)
Почитайте о Saga-State Machine (MassTransit)
Возможно это даст вам ответ на вопрос :)
Душнильское шоу заглохло?
1. Выбор технологии очереди у Попова крайне плох - есть есть System.Runtime.Caching то удивительно что перегрузки в Redis у людей отсуствует, при этом они говорят о высокой нагрузке? Реляционную базу данных с Dapper для чтения и остальное через EF - так же это просто мусор, да и сама реляционка тут абсолютно ненужна. Ведение через рич модели - полная фигня так же, это плохо и неподдерживаемое месиво. Глобальный лок на машине состояния? Позволяет выдерживать большие нагрузки? Да это утопия.
2. Если это настоящий сеньор - не дай бог мне с таким работать.
3. Вопросы человека который проводит собеседования - крайне плохие. Нужно было так - Высокие нагрузки это какие? Как измеряете? Чем измеряете? Есть ли дегрейд тесты? Ищете ли узкие места? Скажем мы на любое обращение по рест апи может точно сказать сколько был тайминг на любую операцию - бд, маппинг или расчет. Дальше я бы спросил - как реализованы эндпоинты? Это рест апи через json? используете ли сжатие? помогает ли это? Думали ли об использовании GRPC Protobuff? Дальше есть ли паттерн витрина? Дальше вынесена ли авторизация и аутентификация в отдельный микросервис?
Summary: Крайне плохое интервью, сумбурное, вопросы инревьюера вообще какие то левые от балды просто.
Согласен
строго поддерживаю. РСУБД - прошлый век, все давно сидят на NoSQL. Был у нас один такой на собеседовании, кое-как смогли свернуться, встал на привычные лыжи трех выученных вопросов и не остановить. Щас бы в 2к22 пилить монолит лол
@@АлександрЖаринов-х8ш ну да, а давайте всем навязывать микросервисы и потом вбухивать в разработку тонну денег. У всех ведь тут кучу бабла.
@@АлександрЖаринов-х8ш РСУБД не прошлый век, все зависит от задач и от бюджета, если продукт приносит деньги, компания укладывается в бюджет и нет задач которые требуют nosql - то РСУБД прекрасное решение, даже в 2023.
Монолит тоже самое, микросервисы нужны не везде и не всегда.
@@АлександрЖаринов-х8ш Вы наверное из тех разработчиков которые пихают все технологии которые знаю в любой проект и пилят сайт одностаничник с регистрацией и одной ручкой апи на микросервисы и засовывают в к8с
Каждой задаче свои технологии, реляционный БД не прошлый век, это инструмент подходящий под одни задачи и не подходящий под другие
Ну вроде синиор а про не знает что раббит не гарантирует порядок доставки
Терминология в стиле Зажиточная Модель против Модели с Раком Крови это не для 2023 года, извините. Но и по-сути если вы любите всю логику в кучу сложить, то на каждый Дата Тип создайте по Типу с Операциями. То же самое, но при этом данные не будут смешаны с логикой.
Саакашвили?
набираю в поиске java синьор и ютуб в очередной раз предлагает мне это видео
захожу и не сразу понимаю что это не то
извините поставлю минус, может тогда оно перестанет появляться у меня
мне кажется тут максимально пытаются абстрагироваться от конкретного языка. процентов 80 (если не больше) этого интервью вполне может быть и на java senior