Skip to content

Instantly share code, notes, and snippets.

@rodion-m
Last active July 4, 2024 03:28
Show Gist options
  • Save rodion-m/de920a17817f4c51481b0569e54feb35 to your computer and use it in GitHub Desktop.
Save rodion-m/de920a17817f4c51481b0569e54feb35 to your computer and use it in GitHub Desktop.
Вопросы для экзамена по ASP.NET Core (Junior + Middle)

Вопросы для экзамена по ASP.NET Core

Положение

Студент приходит на экзамен. Ему достаётся случайный вопрос. Вопросы бывают сложности 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 баллов.

"Junior" (3 балла за ответ, макс. 3 вопроса)

  1. ASP.NET Core - что это, где используется, какими ОС поддерживается?
  2. Что такое и зачем нужен Web API? Приведите примеры использования.
  3. Что называют SDK?
  4. Что такое Роутинг?
  5. В чем разница между REST и RPC?
  6. В чем преимущества и недостатки многопоточного выполнения запросов?
  7. Зачем нужен MVC?
  8. Чем примечателен слой с контроллерами?
  9. Что такое домейн (domain)?
  10. Где следует хранить API ключи и другие конфиденциальные данные? (Middle Up: дайте ответ для Development и для Production среды)
  11. Что такое структурное логирование и какие у него преимущества?
  12. Какие задачи решает библиотека Polly?
  13. Что такое и зачем нужен DI?
  14. Что такое и зачем нужен DIP?
  15. Какие границы применения DIP? Когда он избыточен?
  16. Что такое и зачем нужен DI-container? Какая у него ответственность?
  17. Какая разница между services.AddTransient и services.AddScoped?
  18. Каковы особенности работы с Singleton зависимостями?
  19. Как безопасно хранить пароли в БД?
  20. Передавать Transient зависимости в Singltone сервисы - хорошая идея? Обоснуйте свой ответ.
  21. Передавать Scoped зависимости в Singltone сервисы - хорошая идея? Обоснуйте свой ответ.
  22. Чем отличается Blazor WebAssembly от Blazor Server? Опишите преимущества и недостатки каждого.
  23. Что такое репозиторий? Зачем он нужен?
  24. Что такое и зачем нужен Unit Of Work?
  25. Для чего применяется CORS? Где настраивают CORS — на сервере или на клиенте?
  26. Какой алгоритм хеширования рекомендуется применять для хранение хешей паролей?
  27. Как следует хранить пароли пользователей?
  28. В чем отличие аутентификации от авторизации?
  29. Что такое и зачем нужен JWT?
  30. Что такое и зачем нужен Middleware?
  31. Что такое Request Pipeline?
  32. Что такое фильтр MVC?
  33. Что такое MVC filter pipeline?
  34. Какие типы фильтров вы знаете?
  35. Чем отличается юнит тест от интеграционного теста?

"Middle" (4 баллов за ответ)

  1. Что такое и зачем нужен SignalR?
  2. Почему именно "инверсия" зависимостей?
  3. Что такое и зачем нужен Service Locator? Приведите примеры применения.
  4. Как можно решить задачу рассылки Email по расписанию?
  5. Почему методы контроллеров должны быть асинхронными?
  6. Для высоконагруженных вычислений (cpu bound) следует использовать многопоточность или асинхронность?
  7. Что такое слабосвязанный код? Чем он лучше сильносвязанного кода? Как бы вы достигали более слабой связности кода?
  8. Хорошая ли идея записывать ответ в методе действия через JsonSerializer.Serialize? Обоснуйте свой ответ.
  9. Какой тип лучше возвращать в методе действия: IActionResult или ActionResult? Почему?
  10. Что такое Kestrel?
  11. Есть ли проблемы у такого варианта записи модели ответа? И если да, то как их можно исправить?
httpContext.Response.WriteAsJsonAsync(model);

"Senior" (5 баллов за ответ, макс. 1 вопрос)

максимум 2 скипа, за каждый скип -1 балл

  1. Что плохого в таком использовании механизма синхронизации потоков Monitor.Enter(1)?
    ...Остальные вопросы Senior откроются на экзамене.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment