Вопросы на собеседованиях. - Чем бизнес-аналитик отличается от системного аналитика? Ответ; Бизнес-аналитик фокусируется на изучении и анализе бизнес-процессов компании, а Системный аналитик сфокусирован на технической стороне вопроса. - Какие артефакты (документы) создает аналитик? Ответ; 5 главных документов аналитика 1. 2. 3. 4. 5. Документ бизнес-требований (BRD, Business Requirements Document); ТЭО (Технико-Экономическое обоснование, бизнес-кейс); Спецификация требований к решению (ТЗ, Техническое задание); Проект решения; Программа и методика испытаний (ПМИ). Вопросы о требованиях. - Какие бывают требования? Ответ; Бизнес требования, требования пользователей, системные требования, функциональные и не функциональные требования Приведите пример требований Ответ; «API метод должен возвращать список ресторанов в короткой форме: id, название, адрес» или «Никакая личная информация пользователя (логин, пароль, номера телефонов, и тд.) не должна отображаться в отчетах» - это функциональные требования, они описывают поведение системы. «Объем используемой оперативной памяти не должен превышать 256 Мб» или «Все данные системы должны храниться в БД под управлением СУБД MySQL» - это нефункциональные требования, они описывают свойства системы. - Чем отличаются функциональные от нефункциональных. Ответ; Функциональное требование описывает, что должна делать программная система, в то время как нефункциональные требования накладывают ограничения на то, как система будет это делать. - Каким критериям должны соответствовать требования? Ответ; Атомарность ,Полнота,Краткость,Консистентность,Выполнимость,Приоритизированность, Тестируемость,Недвусмысленность,Понятность - Какие существуют техники выявления требований? Ответ; Методы выявления требований включают интервью, анкетирование, наблюдение за пользователями, семинары, мозговой штурм, примеры использования, ролевые игры и прототипирование. - Когда лучше использовать Use Case, а когда User Story? Почему? Ответ; Use Case использовать для описание логики работы приложения.User Story для разделения большой задачи на маленькие и каждая user story должна показывать какую пользу система принесет пользователю. - В чем отличие Use Case и User Story? Ответ; Use cases используются для проектирования активности пользователя, в то время как User story описывает запрос пользователя или проблемы, с которыми сталкиваются пользователи. - Если бы Вы писали ТЗ, какая у него была бы структура? Расскажите по пунктам, можно на примере. Ответ; Планируетм заказать IT-продукт, можно использовать за основу госстандарты. Например: ГОСТ 34. Это еще советская разработка сбора требований для создания автоматизированных систем. Не готовый шаблон, но много вопросов к заказчику, которые помогут структурировать пожелания. IEEE 29148-2011 — стандарт разработки сложных систем, в которых есть вопросы о требовании к функциям, а также рекомендация описать условия программного окружения, то есть платформ, которые будут работать вместе с вашим продуктом. Rational Unified Process — продвинутая спецификация для разработки требований к ITпродуктам. Много внимания отводится вариантам использования. - Что содержится в вашей типовой постановке задач для разработчика? Ответ; Описание должно быть необходимым и достаточным. Необходимым — не должно быть пересечений между задачами в описании. Разработчик должен понимать, какую именно часть задачи ему сейчас реализовывать. Достаточным — у разработчика не только не должно появиться дополнительных вопросов, но и возможности понять что-то не так. Избегайте двусмысленности в задачах. Текст задачи должен понять любой новый разработчик на проекте. Нужно осознавать, что разработчики хуже понимают контекст проекта, чем менеджеры, вряд ли присутствовали при формировании ТЗ, разработки дизайна и т.д., а впервые видят описание необходимого обновления. Процесс разработки - Какие методологиии разработки знаете? Ответ; Наиболее распространенными методологии: Водопадная модель; SCRUM; Agile; Lean; Six Sigma; Prince2; Kanban. - Что лучше, scrum или agile? Ответ; Различие состоит в том, что Agile описывает философию разработки, а Scrum предлагает набор инструментов. Эта методика предполагает последовательное выполнение простых задач, которые помогают быстро запустить продукт и постепенно дополнять его новыми функциями. - Что такое канбан? В чем отличие от скрама? Ответ; Kanban – система постановки задач, при которой все этапы проекта визуализируются на специальной доске. Нотации UML и BPMN - Какими нотациями вы владеете? И какие инструменты используете? Ответ; BPMN,EPC,DMN - Какие UML диаграммы вы использовали? Ответ; Прецедентов, последовательности, состояний - Что описывает диаграмма последовательности? Ответ; Описывает взаимодействие объектов , упорядоченные по времени их появлений - Какие бывают Gateway(шлюзы) в BPMN? Приведите пример для исключающего шлюза. Ответ; 5 основных шлюза: исключающий шлюз, неисключающий шлюз, параллельный шлюз,событийный шлюз - Какие элементы BPMN вы знаете? Ответ; Основных элементов 8:Событие,Действие или Задача, Данные, Поток, Развилки и Шлюзы, они же условия, Пул или «плавательные дорожки»,Артефакты - Что такое include, extend на диаграмме прецедентов? Приведите пример. Ответ; Extend используется, когда вариант использования добавляет шаги к другому первоклассному варианту использования. Например, представьте, что "Снять наличные" - это вариант использования банкомата. "Плата за начисление" расширяет срок снятия наличных и описывает условную "точку расширения", которая создается, когда пользователь банкомата не осуществляет банковские операции в учреждении, владеющем банкоматом. Обратите внимание, что базовый вариант использования "Снять наличные" стоит сам по себе, без расширения. Include используется для извлечения фрагментов вариантов использования, которые дублируются в нескольких вариантах использования. Например, поток событий, который происходит в начале каждого варианта использования банкомата (когда пользователь вставляет свою карту банкомата, вводит свой PIN-код и отображается главное меню), был бы хорошим кандидатом для включения. - Нарисуйте диаграмму последовательности для процесса, когда пользователь через веб-форму отправляет запросы в rest-сервис для получения данных. Ответ; - Как бы Вы составили схему BPMN для процесса, описывающего работу кофейного автомата (устно) Ответ; SQL и базы данных - Что такое нормализация БД? Ответ; Процесс организации данных в базе данных, включающий создание таблиц и установление отношений между ними в соответствии с правилами, которые обеспечивают защиту данных и делают базу данных более гибкой, устраняя избыточность и несогласованные зависимости. - Какие есть принципы построения реляционной базы данных? Ответ; Принципы построения реляционной базы данных: · Каждая таблица состоит из однотипных строк и имеет уникальное имя. · Строки имеют фиксированное число полей (столбцов) и значений (множественные поля и повторяющиеся группы недопустимы). · Строки таблицы отличаются друг от друга хотя бы единственным значением, что позволяет однозначно идентифицировать любую строку такой таблицы. · Столбцам таблицы однозначно присваиваются имена, и в каждом из них размещаются однородные значения данных (даты, фамилии, целые числа или денежные суммы). · Полное информационное содержание базы данных представляется в виде явных значений данных. · При выполнении операций с таблицей ее строки и столбцы можно обрабатывать в любом порядке безотносительно к их информационному содержанию. - Что такое первичный ключ? Каким свойством обладает первичный ключ? Ответ; Первичный ключ — это поле в таблице, которое однозначно идентифицирует каждую строку/запись в таблице базы данных. Первичный ключ должен обладать двумя свойствами: Однозначная идентификация записи – запись должна однозначно определяться значением ключа; Отсутствие избыточности – никакое поле нельзя удалить из ключа, не нарушая при этом свойства однозначной идентификации записи. Если первичный ключ состоит из одного поля, то он называется простым ключом или ключевым полем. - Что такое внешний ключ? Приведите пример. Ответ; Внешний ключ (FK) — это столбец или сочетание столбцов, которое применяется для принудительного установления связи между данными в двух таблицах с целью контроля данных, которые могут храниться в таблице внешнего ключа. - Зачем нужны индексы в таблицах БД? Ответ; Индексы используются для быстрого поиска данных без необходимости поиска каждой строки в таблице базы данных при каждом обращении к таблице базы данных. - Какие виды JOIN запросов вы знаете? Ответ; Стандарт SQL описывает три варианта JOIN: 1. Квалифицированный (соединение по указанным критериям) 2. Естественный (автоматически выбирает критерии) 3. Перекрестный (полное внешнее соединение без критериев) - Чем LEFT JOIN отличается от FULL JOIN ? Чем TRANCATE отличается от DELETE? Ответ; LEFT JOIN или RIGHT JOIN возвращают все строки из одной таблицы и совпадающие строки из другой таблицы. FULL JOIN – из обеих таблиц, даже при отсутствии совпадений. Операция DELETE блокирует каждую строку, а TRUNCATE — всю таблицу. - Вам нужно добавить в существующую таблицу БД новый столбец, содержащий числа, и выставить ему значение по умолчанию =300 для всех записей этой таблицы. Какие ваши действия? Ответ; ALTER TABLE Employee ADD MINIMUM_WAGE int NOT NULL DEFAULT(300) - Что вы знаете о связи «многие ко многим» между сущностями? Ответ; Связь многие-ко-многим это связь, при которой множественным записям из одной таблицы (A) могут соответствовать множественные записи из другой (B). - Какие внешние ключи будут у двух таблиц A и Б, связанных «один (А) ко многим (Б)»? Ответ; Первичный ключ Интеграция - Из чего состоит XML? Ответ; XML-файл состоит из множества элементов, вложенных друг в друга и реализующих иерархическую структуру данных - Что такое XSD? Ответ; XSD — это язык описания структуры XML документа. Его также называют XML Schema - Чем XML отличается от JSON ? В чем преимущества и недостатки одного формата над другим? Ответ; Ключевое различие между JSON и XML заключается в том, что JSON имеет меньший размер файла и эффективно передает данные в Интернет по сравнению с XML. - Зачем нужно пространство имен в XML? Ответ; Они позволяют объединять несколько языков разметки, не беспокоясь о конфликтах имен элементов и атрибутов - Чем sequence отличается от choice в XSD? Ответ; XSD-схемы могут содержать различные элементы, включая sequence и choice. Sequence указывает порядок, в котором должны быть представлены элементы в документе, а choice – позволяет выбирать из нескольких элементов только один. - Чем SOAP отличается от REST? Ответ; SOAP - это строгий и безопасный способ создания API, который кодирует данные в XML. REST - является более простым и гибким методом создания API, которые могут передавать данные в различных форматах, включая XML, а также обычный текст, HTML и JSON. - Что такое stateless и stateful, если говорить про сервисы? Rest – это какие сервисы? Что значит stateless сервисы? Ответ; Stateless — это протокол передачи данных, который относит каждый запрос к независимой транзакции, которая не связана с предыдущим запросом, то есть общение с сервером состоит из независимых пар запрос-ответ Stateful - это когда вам важно чтобы приложение сохранило состояние перед перезапуском, или новый экземпляр продолжил с того же места. REST использует сервисы чаще всего это JSON или XML. Stateless означает протокол без сохранения состояния - Какие методы REST вы знаете? Ответ; В REST используются 4 основных HTTP метода: GET, POST, PUT, DELETE - Чем POST отличается от GET? Ответ; Если простыми словами. POST - это отправка информации куда-то. GET - это извлечение информации (противоположная процедура) - Чем PUT отличается от PATCH? Ответ; PUT - обновление объекта целиком, PATCH - обновление поля объекта - Что такое идемпотентность? Почему это важно? Ответ; Идемпотентность — это свойство некоторых операций, которое означает, что повторное выполнение операции не приводит к изменению состояния системы или ресурса, и это не приводит к дополнительным побочным эффектам. Идемпотентность важна в информатике и разработке, особенно при работе с сетевыми запросами, базами данных и другими системами, где необходимо учитывать возможность повторного выполнения операций. - DELETE – идемпотентный метод? Ответ; Delete — идемпотентный метод. Вы можете сколько угодно раз использовать delete, но результат будет всегда таким же, как после первого выполнения операции. - Что такое CRUD операции ? Ответ; CRUD — широко распространенный термин, который означает четыре стандартные операции над любой сущностью. Create — создание Read — чтение Update — обновление Delete — удаление. - Какие виды/способы интеграции вы знаете? Ответ; Существует два вида интеграции: вертикальная и горизонтальная. Способы интеграции; API-интеграция ,БД, Веб-сервисы,Микросервисы, - Как выбрать стиль интеграции? От чего зависит выбор? Ответ; Выбор стиля интеграции зависит от её причины - Какие достоинства и недостатки микросервисов вы знаете? Ответ; Достоинства: Технологическая неоднородность, Надежность, Масштабирование, Простота развертывания, Повторное использование, Согласованность рабочих процессов в организации Недостатки: Опыт разработчика, Технологическая перегрузка, Стоимость, Отчетность, Безопасность, Мониторинг и устранение неполадок, Тестирование, Время ожидания, Согласованность данных - Что такое синхронные и асинхронные вызовы? Ответ; При синхронном вызове задача-инициатор будет ждать окончания работы функции и только после этого продолжит свою работу. Асинхронный вызов предполагает передачу сообщения в очередь принимающей задачи, сам вызов фактически будет осуществлен тогда, когда это решит принимающая задача. - Для чего используются брокеры сообщений? Ответ; Они существенно снижают нагрузку и сокращают время доставки сообщений - Чем брокер сообщений отличается от корпоративной шины? Ответ; Главное различие между брокером сообщений и корпоративной шиной заключается в том, что брокер сообщений — это инструмент, который обеспечивает надежность и гарантирует доставку сообщений от отправителя к получателю, тогда как корпоративная шина — это архитектурный разделитель, который предоставляет единую платформу для подключения и взаимодействия различных приложений и сервисов. - Что такое хореография и оркестрация? Ответ; Оркестровка содержит описание служб, условия их вызова, а также зависимости и альтернативы. Хореография описывает, как отдельные процессы взаимодействуют друг с другом. - Для чего используется Swagger? Ответ; Swagger — это инструмент, который помогает разработчикам создавать, документировать и проверять API - Для чего используется Postman? Ответ; Postman — это сервис для создания, тестирования, документирования, публикации и обслуживания API. Он позволяет создавать коллекции запросов к любому API, применять к ним разные окружения, настраивать мок-серверы, писать автотесты на JavaScript, анализировать и визуализировать результаты запросов - Знаете ли вы что-то о проектировании API в нотации OpenAPI/Swagger? Ответ; OpenAI API - это мощная облачная платформа, размещенная в Microsoft Azure, предназначенная для предоставления разработчикам беспрепятственного доступа к современным, предварительно обученным моделям искусственного интеллекта. Этот API позволяет разработчикам без особых усилий интегрировать передовые возможности искусственного интеллекта в свои приложения, независимо от языка программирования, с которым они предпочитают работать. Swagger (OpenAPI) — это не зависящая от языка спецификация для описания REST API. Она позволяет компьютерам и пользователям лучше понять возможности REST API без прямого доступа к исходному коду. - Есть некий UI, нужно написать к нему веб-сервис. Опишите вашу постановку – что в ней будет. Ответ; Смотря какая информация будет размещена на веб-сервисе .При входе на сайт будет приветствие для пользователя. В ней будет удобный и понятный для каждого интерфейс для легкого поиска той или иной информации. Приятный для просмотра дизайн. Дополнительные технические вопросы - Какие способы разграничения доступа вы знаете? Ответ; Разграничение доступа по спискам, Использование матрицы установления полномочий, Разграничение доступа по уровням секретности и категориям, Парольное разграничение доступа - Чем авторизация отличается от аутентификации? Ответ; Авторизация — это процесс проверки прав доступа пользователя к определенным ресурсам или функциям. Аутентификация — это сам процесс проверки подлинности пользователя, чтобы убедиться, что он является тем, за кого себя выдает. - Что такое протокол передачи данных? Какие вы знаете? Ответ; Протокол передачи данных — набор определённых правил или соглашений интерфейса логического уровня, который определяет обмен данными между различными программами. Виды; 1. 2. 3. 4. 5. 6. 7. Физический (биты): USB, RS-232, 8P8C Канальный (кадры): PPP (включая PPPoE, PPPoA), IEEE 802.22, Ethernet, DSL, ARP, LP2P. Сетевой (паеты): IP, AppleTalk Транспортный (датаграммы, сегменты): TCP, UDP, PORTS, SCTP Сеансовый: RPC, PAP Представительский: ASCII, JPEG, EBCDIC Прикладной: HTTP, FTP, DHCP, SNMP, RDP, SMTP - Чем отличается http от https? Ответ; HTTPS и HTTP отличаются протоколом шифрования при передаче данных. HTTP (HyperText Transfer Protocol) – устаревший незащищенный протокол. HTTPS – защищенный протокол передачи данных с криптографическим шифрованием HyperText Transfer Protocol Secure. - Чем Kafka отличается от RabbitMQ? Ответ; RabbitMQ — это брокер распределенных сообщений, который собирает потоковые данные из нескольких источников и маршрутизирует их в разные пункты назначения для обработки. Kafka предоставляет высокомасштабируемую, отказоустойчивую и надежную систему обмена сообщениями с большими возможностями, чем RabbitMQ.