Студент приходит на экзамен. Ему достаётся случайный вопрос. Вопросы бывают сложности Junior, Middle, Senior. Ответ на Junior даёт 3 балла, ответ на Middle даёт 4 балла, ответ на Senior даёт 5 баллов. Вопросы уровня Senior можно пропустить (до 2 раз). Вопросы уровня Junior и Middle пропустить нельзя, это равносильно провалу ответа (0 баллов). Ответ хотя бы на 1 вопрос из категории Junior обязателен. Частичный ответ даёт частичную оценку.
- Для сдачи экзамена каждому студенту следует ответить на 3 вопроса.
- Ответ хотя бы на 1 вопрос из категории Junior обязателен.
- В категории Senior можно ответить максимум на 1 вопрос.
- В категории Middle можно ответить максимум на 2 вопроса.
- Исчерпывающий ответ на вопрос дает максимальный балл в соответствии с категорией вопроса.
- Частичный ответ снижает балл.
- Если ответ не дан, баллы за него не начисляются.
- Вопросы из категории Senior можно пропустить максимум 2 раза, каждый пропущенный вопрос уменьшает общее кол-во баллов на 1.
- Вопросы из категории Junior и Middle пропустить нельзя. Пропуск вопроса из этих категорий равносилен отсуствию ответа (т. е. 0 баллов).
- Вопросы выбираются в случайном порядке.
- Если жребий выпадает на тот вопрос, на который ранее был дан ответ другим студентом, то такой вопрос пропускается.
- В случае исчерпывающего ответа на 3 вопроса из категории Junior студент получает 9 баллов.
- В случае исчерпывающего ответа на 2 вопроса из категории Junior и на 1 вопрос из категории Middle студент получает 10 баллов.
- В случае исчерпывающего ответа на 1 вопрос из категории Junior и на 2 вопроса из категории Middle студент получает 11 баллов.
- В случае исчерпывающего ответа на 1 вопрос из категории Junior, 1 из Middle, 1 Senior с первой попытки студент получает 12 баллов.
- ASP.NET Core - что это, где используется, какими ОС поддерживается?
- Что такое и зачем нужен Web API? Приведите примеры использования.
- Что называют SDK?
- Что такое Роутинг?
- В чем разница между REST и RPC?
- В чем преимущества и недостатки многопоточного выполнения запросов?
- Зачем нужен MVC?
- Чем примечателен слой с контроллерами?
- Что такое домейн (domain)?
- Где следует хранить API ключи и другие конфиденциальные данные? (Middle Up: дайте ответ для Development и для Production среды)
- Что такое структурное логирование и какие у него преимущества?
- Какие задачи решает библиотека Polly?
- Что такое и зачем нужен DI?
- Что такое и зачем нужен DIP?
- Какие границы применения DIP? Когда он избыточен?
- Что такое и зачем нужен DI-container? Какая у него ответственность?
- Какая разница между services.AddTransient и services.AddScoped?
- Каковы особенности работы с Singleton зависимостями?
- Как безопасно хранить пароли в БД?
- Передавать Transient зависимости в Singltone сервисы - хорошая идея? Обоснуйте свой ответ.
- Передавать Scoped зависимости в Singltone сервисы - хорошая идея? Обоснуйте свой ответ.
- Чем отличается Blazor WebAssembly от Blazor Server? Опишите преимущества и недостатки каждого.
- Что такое репозиторий? Зачем он нужен?
- Что такое и зачем нужен Unit Of Work?
- Для чего применяется CORS? Где настраивают CORS — на сервере или на клиенте?
- Какой алгоритм хеширования рекомендуется применять для хранение хешей паролей?
- Как следует хранить пароли пользователей?
- В чем отличие аутентификации от авторизации?
- Что такое и зачем нужен JWT?
- Что такое и зачем нужен Middleware?
- Что такое Request Pipeline?
- Что такое фильтр MVC?
- Что такое MVC filter pipeline?
- Какие типы фильтров вы знаете?
- Чем отличается юнит тест от интеграционного теста?
- Что такое и зачем нужен SignalR?
- Почему именно "инверсия" зависимостей?
- Что такое и зачем нужен Service Locator? Приведите примеры применения.
- Как можно решить задачу рассылки Email по расписанию?
- Почему методы контроллеров должны быть асинхронными?
- Для высоконагруженных вычислений (cpu bound) следует использовать многопоточность или асинхронность?
- Что такое слабосвязанный код? Чем он лучше сильносвязанного кода? Как бы вы достигали более слабой связности кода?
- Хорошая ли идея записывать ответ в методе действия через JsonSerializer.Serialize? Обоснуйте свой ответ.
- Какой тип лучше возвращать в методе действия: IActionResult или ActionResult? Почему?
- Что такое Kestrel?
- Есть ли проблемы у такого варианта записи модели ответа? И если да, то как их можно исправить?
httpContext.Response.WriteAsJsonAsync(model);
- Что плохого в таком использовании механизма синхронизации потоков
Monitor.Enter(1)
?
...Остальные вопросы Senior откроются на экзамене.