
подгон 2018 (легендарный) / 3 курс -20241122T221211Z-001 / ПИУС (PHP) / Зачёт
.pdfФормат зачёта
Даты зачёта
–ПИН-33 1 июня 16:10, ауд. 4212а
–ПИН-32 3 июня 09:00, ауд. 4212а
–ПИН-32, ПИН-33 7 июня 16:10, ауд. 1203
–ПИН-34 8 июня 17:50, ауд. 4212б
–ПИН-34, ПИН-35 10 июня 16:10. ауд. 1203
Зачёт
Студент заранее самостоятельно выбирает 3 блока из списка:
Блок №1. Основы работы WEB + API + Спецификация OpenAPI
Блок №2. PHP
Блок №3. MVC фреймворки Блок №4. Laravel
Блок №5. Базы данных (реляционные и нереляционные)
* Блок №6. ElasticSearch + контейнеризация приложений
Блок №7. Тестирование Блок №8. Монолитная и микросервисная архитектуры
* блок №6 является обязательным и не учитывается при выборе 3-х блоков.
1
Каждый билет состоит из 5 вопросов:
–по одному вопросу из выбранного блока (до 30 баллов)
–два вопроса из блока №6 (до 20 баллов)
Если вам необходимо сделать некоторые записи и комментарии во время подготовки к вопросам, возьмите с собой лист(ы) и ручку.
Время на подготовку: 15–20 минут. Формат зачёта: очный, устно.
+ до 10 баллов можно получить за ответ на один дополнительный вопрос без подготовки.
Итого: максимально можно получить 60 баллов.
FAQ
1. Можно приходить на зачёт к другим группам?
По согласованию с преподавателем можно приходить на зачёт к другим группам.
2. Дополнительный вопрос может быть из любого блока?
Нет, дополнительный вопрос будет из тех блоков, которые готовил студент.
3. Если у меня есть оценка автоматом (3 или 4), то оценка уже сохранится независимо от сдачи зачёта?
Нет, оценка может измениться в любую сторону.
4. Можно ли пользоваться презентациями / распечатанными материалами /
электронными устройствами во время зачёта?
Нет, можно пользоваться только личными, рукописными материалами.
5. Когда можно будет пересдать / повысить оценку?
29 июня с 10:00 до 15:00 в ауд. 3131 или 3126. Либо по согласованию с преподавателем раньше.
2
Блок №1. Основы работы WEB + API + Спецификация OpenAPI
1.IP адреса. Принцип работы DNS. Обратный DNS запрос.
2.Протокол HTTP. HTTP запросы и ответы. HTTP коды ответа.
3.HTTPS. Обеспечение безопасности. Сертификаты.
4.Отличия GET и POST запросов. Примеры.
5.Что такое Cookie? Клиент-серверное взаимодействие.
6.HTTP v1 → HTTP v2 → HTTP v3 (QUIC).
7.Принцип работы web-сервера. CGI и FastCGI.
8.Что такое API? Основные типы API. Архитектурные стили API.
9.Принципы REST. Преимущества и недостатки REST API.
10.Спецификация OpenAPI.
11.Code first и Design first подходы к реализации API. Swagger UI.
Блок №2. PHP
1.Ссылки в PHP. refcount. is_ref. Сборщик мусора в PHP.
2.Константы. Предопределенные константы. Магические константы.
3.Суперглобальные переменные.
4.Функции, анонимные функции. Передача аргументов в функцию.
5.Генераторы. Оператор yield.
6.Обработка ошибок и исключений. Генерация исключений.
7.Классы и объекты. Свойства и методы. Псевдопеременная $this.
8.Интерфейсы. Применение и наследование интерфейсов.
9.Абстрактный класс. Абстрактный метод. Трейты.
10.Статические методы и свойства. static::, self::, parent::.
11.Для чего нужен composer? Способы указания версий.
12.PSR. Примеры.
3
Блок №3. MVC фреймворки
1.MVC. Этапы работы MVC-приложения.
2.Что такое модель?
3.Что такое представление?
4.Что такое контроллер?
5.Роутинг. Виды роутинга.
6.Какая основная проблема моделей в MVC?
7.Перечислите основные функции моделей.
8.Как связанны модель и бизнес-логика?
9.Что такое домен и доменный слой?
10.Что такое DTO?
11.Пагинация и её типы. Преимущества и недостатки пагинации, основанной на курсорах.
Блок №4. Laravel
1.Возможности фреймворка Laravel.
2.Laravel Eloquent. Eloquent модель.
3.Laravel Eloquent. Жадная загрузка. Виды жадной загрузки.
4.Laravel. Миграции.
5.Laravel. Middleware.
6.Laravel. Сервис-контейнер.
7.Laravel. Сервис провайдер.
8.Laravel. Фасады.
9.Жизненный цикл Laravel.
10.Что такое Query Builder?
11.Наполнители (seeders). Фабрики моделей.
4
Блок №5. Базы данных (реляционные и нереляционные)
1.Базы данных. Транзакции.
2.SQL-инъекции.
3.Что такое нереляционная база данных?
4.Виды NoSQL СУБД.
5.Key–value базы данных. Преимущества. Примеры.
6.Memcached. Способ хранения данных. Масштабирование.
7.Redis. Особенности хранилища. Масштабирование.
8.Колоночные БД. Принцип работы и хранения данных. Примеры.
9.Time-Series БД. Примеры.
10.Документоориентированные БД. Особенности. Примеры.
11.Графовые БД. Примеры.
Блок №6. ElasticSearch + контейнеризация приложений
1.Что такое ElasticSearch?
2.ElasticSearch. Особенности. Сравнение с реляционными БД.
3.Полнотекстовый поиск в ElasticSearch.
4.Инвертированный поисковый индекс.
5.Горизонтальное масштабирование и отказоустойчивость.
6.ElasticSearch как NoSQL.
7.Настройки индекса. settings, mappings, aliases.
8.Параметры запроса: size, from, source, fields.
9.Типы условий: range, term, match.
10.ElasticSearch Агрегации. Bucket, Metric, Pipeline.
11.Что такое контейнер и зачем он нужен? какие проблемы решает? какие не решает?
12.Опишите какие операции нужно выполнить, чтобы с чистого листа запустить приложение в контейнере.
13.На основе каких технологий работают контейнеры? что такое образ, контейнер,
контейнерная сеть, volume?
5
Блок №7. Тестирование
1.Что такое тестирование? Виды тестирования.
2.Преимущества и недостатки автоматического тестирования.
3.Какие тестовые сценарии стоит автоматизировать?
4.Основные типы автотестов.
5.Модульные (unit) тесты.
6.Интеграционные тесты.
7.Компонентные тесты.
8.Сквозные (E2E) тесты.
9.Code Coverage.
10.Имитации (Fakes). Заглушки (Stubs). Тестовые двойники (Mocks).
Блок №8. Монолитная и микросервисная архитектуры
1.Монолитный подход. Преимущества и недостатки.
2.Сервис-ориентированная архитектура. Преимущества и недостатки.
3.Микросервисная архитектура. Преимущества и недостатки.
4.Оптимизация запросов на уровне curl.
5.Оптимизация с помощью стратегии Retry.
6.Использование таймаутов. Преимущества и недостатки.
7.Паттерн Circuit Breaker.
8.Теорема CAP. Виды сервисов согласно теореме CAP.
9.Согласованность в конечном счёте.
10.Варианты межсервисного взаимодействия на примере сервиса отчётов.
11.Принцип Command-Query Responsibility Segregation (CQRS).
6