21 лучший вопрос и ответ на интервью с разработчиком стека MEAN для начинающих и опытных
Опубликовано: 2020-03-09Поскольку цифровизация набирает обороты в современной отрасли, компании и бренды стремятся инвестировать в быстрые, динамичные и эффективные веб-сайты и приложения. Однако широкая доступность технологий разработки усложняет выбор правильной технологии для разработки веб-приложений. В то время как разработка с полным стеком, интерфейсом и бэкендом находится на переднем крае веб-разработки, в процессе создания находится новая звезда — стек MEAN.
По сути, стек MEAN — это технология с открытым исходным кодом, включающая четыре технологии на основе JavaScript, включая MongoDB, ExpressJS, AngularJS, Node.js (MEAN). Изучая и осваивая стек MEAN, вы сможете пользоваться преимуществами множества доменов для разработки веб-приложений и динамических веб-сайтов.
Читайте: Вопросы для интервью с разработчиками полного стека
Поскольку спрос на разработчиков стека MEAN неуклонно растет, в этом посте мы поговорим о наиболее часто задаваемых вопросах на собеседованиях по стеку MEAN.
Итак, без лишних слов, давайте сразу к делу!
Интервью с ведущими разработчиками стека MEAN, вопросы и ответы
1. Какова цель MongoDB?

MongoDB — это менеджер баз данных, ориентированный на документы, предназначенный для хранения больших объемов данных. Он сохраняет данные в двоичном формате JSON и реализует концепцию сбора и документирования. MongoDB — это кроссплатформенная база данных NoSQL, обладающая высокой производительностью, высокой масштабируемостью и гибкостью, позволяющая выполнять простые запросы и индексирование.
Научитесь создавать приложения, такие как Swiggy, Quora, IMDB и другие.2. Какова цель ExpressJS?
ExpressJS — это платформа веб-приложений, предназначенная для поддержки и размещения проектов Node.js. Это платформа с открытым исходным кодом, доступная по лицензии MIT. ExpressJS управляет рабочим процессом между интерфейсом и базой данных и обеспечивает плавную и безопасную передачу данных. Он может похвастаться отличной обработкой ошибок и функциональностью веб-дизайна для оптимизации процесса веб-разработки.
3. Какой цели служит AngularJS?
AngularJS — это среда разработки интерфейсных веб-приложений с открытым исходным кодом, поддерживаемая Google. Это позволяет веб-разработчикам использовать HTML в качестве языка шаблонов и расширять синтаксис HTML для четкого и точного представления компонентов веб-приложения.
4. Какова функция Node.js?
Node.JS — это кроссплатформенная однопоточная среда JavaScript с открытым исходным кодом, которая используется для разработки серверных и сетевых приложений. Это основа стека MEAN. Помимо JavaScript, Node.js также использует языки программирования C и C++. Node.js оснащен встроенным веб-сервером, который упрощает развертывание базы данных MongoDB и ее облачного приложения.
5. Назовите IDE, которые обычно используются для разработки Node.JS?
Наиболее популярные IDE, которые можно использовать для разработки Node.JS, включают:
- Атом
- Облако 9
- Затмение
- Комодо IDE
- JetBrainsWebStorm
- JetBrains IntelliJ ИДЕЯ
6. Что такое мангуст?
Mongoose — это средство сопоставления документов объектов (ODM), что означает, что с помощью Mongoose вы можете определять объекты со строго типизированной схемой, которые могут быть дополнительно сопоставлены с документом MongoDB. Он предлагает основанное на схеме решение для моделирования данных приложения. Mongoose поставляется со встроенным приведением типов, проверкой, построением запросов, ловушками бизнес-логики и многими другими готовыми функциями.
Читайте: Разница между полным стеком и разработкой среднего стека
7. Дайте определение моделированию ДАННЫХ?
Моделирование данных — это термин, используемый в контексте Mongoose и MongoDB. Как следует из названия, моделирование данных относится к процессу создания модели данных для имеющихся данных, чтобы их можно было хранить в базе данных. Модель данных — это концептуальное представление объектов данных, отношений между различными объектами данных и правил, определяющих эти отношения.
Моделирование данных помогает представить данные визуально, а также обеспечить соблюдение бизнес-правил, нормативных требований и государственной политики в отношении данных. Он реализован для обеспечения согласованности соглашений об именах, значений по умолчанию, семантики, безопасности и качества данных.
8. Что такое REPL в Node.Js?
REPL или «Read Eval Print Loop» — это простая программа, которая может принимать команды, оценивать их и распечатывать результаты. Что делает REPL, так это создает среду, похожую на оболочку Unix/Linux или консоль Windows, в которой вы можете ввести команду и систему, и она ответит выводом. Вот функции, которые выполняет REPL:
- READ — это считывает ввод, предоставленный пользователем, анализирует его в структуру данных JavaScript и сохраняет в памяти.
- EVAL — выполняет структуру данных.
- PRINT — распечатывает результат, сгенерированный после оценки команды.
- LOOP — эта команда зацикливается до тех пор, пока пользователь дважды не нажмет Ctrl+C.
9. Определите Scope в JavaScript.
В JavaScript у каждой функции есть область видимости, которая по сути является набором переменных и правил, определяющих, как их уникальное имя обращается к этим переменным. Вы можете получить доступ к переменным области действия функции только через код внутри этой функции. Хотя переменные, содержащиеся в определенной области, должны иметь уникальные имена, область может существовать в другой области. В этом случае код самой внутренней области может получить доступ к переменным, содержащимся в любой из областей.
10. Укажите разницу между линейным поиском и бинарным поиском.
Линейный поиск рассматривает элементы списка один за другим без последовательного перехода. Таким образом, с точки зрения сложности он классифицируется как поиск O (n), в котором время, необходимое для поиска в списке, увеличивается пропорционально увеличению списка. В отличие от этого, бинарный поиск начинается с середины списка. Этот поиск направлен на то, чтобы увидеть, больше или меньше значение элемента, чем желаемое значение.
Это дополнительно определяет положение значения в списке — будет ли оно в первой части или во второй части списка. С точки зрения сложности он классифицируется как поиск O (log n), где количество операций поиска растет относительно медленнее, чем список. В основном это связано с тем, что пространство поиска разбивается пополам в каждой операции.
В то время как бинарный поиск требует, чтобы вы сначала отсортировали входные данные, линейный список не имеет таких предпосылок.
11. Выделите разницу между Node.js, AJAX и jQuery.
Node.js, AJAX и jQuery — это расширенная реализация JavaScript. Тем не менее, они имеют изрядную долю различий.
Node.js — это серверная платформа, которая используется для разработки клиент-серверных приложений, в то время как AJAX, также известный как асинхронный Javascript и XML, — это метод сценариев на стороне клиента, который в основном используется для рендеринга содержимого страницы без его обновления. AJAX используется в основном для демонстрации динамического контента. jQuery — это модуль JavaScript, который дополняет AJAX, обход DOM и циклы. Он загружен множеством полезных функций, помогающих в разработке JavaScript.
12. Определите внедрение зависимостей.
Внедрение зависимостей — это концепция разработки программного обеспечения, которая позволяет вам использовать или внедрять службу способами, не зависящими от какого-либо потребления клиентом. Поступая таким образом, вы, по сути, не позволяете клиенту изменять зависимости при изменении базовой службы.
Основная цель внедрения зависимостей — отделить создание зависимостей клиентов от их поведения, что позволяет разрабатывать слабосвязанные программы. В слабосвязанной программе компоненты обычно используют функциональные возможности, определенные интерфейсами, без каких-либо предварительных сведений о том, какие классы реализации используются.

Внедрение зависимостей позволяет изменять или настраивать поведение приложения путем изменения компонентов, реализующих интерфейсы, определяющие функции приложения.
13. Дайте определение контейнеризации.
Контейнеризация — это альтернатива традиционной виртуализации машин на основе гипервизора, включающая инкапсуляцию приложения в контейнер в его собственной операционной среде. В контейнеризации вместо клонирования операционной системы для отдельных виртуальных машин она совместно используется разными контейнерами. Загрузив приложение на виртуальную машину, вы можете запустить его на любой подходящей физической машине, не беспокоясь о зависимостях.
14. Определите тестовую пирамиду. Как реализовать тестовую пирамиду при обсуждении HTTP API?
Обычно веб-приложения с полным стеком большие и сложные. Они предназначены для расширения своих функциональных возможностей для удовлетворения сотен различных требований миллионов пользователей. Следовательно, по мере роста размера кодовой базы с полным стеком и числа пользователей стоимость устранения ошибок также возрастает. Это, однако, можно успешно смягчить, применив концепцию тестовой пирамиды к кодовой базе.
Подход тестовой пирамиды предполагает радикальное мышление о том, как различные виды автоматических тестов могут и должны использоваться для создания сбалансированного портфолио. В нем подчеркивается, что количество низкоуровневых UnitTest должно быть намного больше, чем высокоуровневых BroadStackTest, выполняемых через графический интерфейс.
При обсуждении API-интерфейсов HTTP вы можете реализовать тестовую пирамиду, выполнив шаги, указанные ниже:
- Включите множество низкоуровневых модульных тестов для вашей модели.
- Включите меньше тестов соединения, используемых для определения того, как ваши модели взаимодействуют друг с другом.
- Включите меньше тестов подтверждения, используемых для тестирования подлинных конечных точек HTTP.
15. Для какой цели служат индексы в MongoDB?
В MongoDB индексы используются для поддержки и облегчения эффективного выполнения запросов. Без индексов MongoDB должна выполнять сканирование коллекции, при этом она должна сканировать каждый документ в коллекции и выбирать соответствующие документы, соответствующие оператору запроса. Однако, если каждому запросу назначен соответствующий индекс, MongoDB может использовать этот индекс, чтобы ограничить количество документов, которые необходимо проверить.
16. В чем разница между классами и интерфейсами в TypeScript?
Классы и интерфейсы — это структуры, которые способствуют как объектно-ориентированному программированию, так и проверке типов в TypeScript. В то время как класс — это план, из которого вы можете создать группу объектов с одинаковой конфигурацией (свойствами и методами), интерфейс — это группа связанных свойств и методов, описывающих объект. Однако интерфейс не обеспечивает реализацию или инициализацию объектов.
Как правило, класс определяет, как должен выглядеть и вести себя объект, и, соответственно, он создает и реализует план, инициализируя свойства класса и определяя методы. Классы присутствуют на всех этапах кода. С другой стороны, интерфейс — это виртуальная структура, которая существует только в контексте TypeScript. Компилятор TypeScript использует интерфейсы исключительно для проверки типов.
17. Определите «декораторы» в TypeScript.
В TypeScript декоратор относится к объявлению особого типа, которое обычно прикрепляется к объявлению класса, методу, методу доступа, свойству или параметру. Декораторы — это функции, которые принимают свою цель в качестве аргумента. Они позволяют запускать произвольный код вокруг целевого выполнения или даже полностью заменять цель новым определением.
18. Что означает «обратный вызов» в Node.js?
В Node.js обратный вызов — это асинхронный эквивалент функции. Node.js сильно зависит от обратных вызовов, которые вызываются в кульминации или завершении данной задачи. Например, предположим, что функция, предназначенная для чтения файлов, может начать чтение файлов и немедленно вернуть управление в среду выполнения, чтобы облегчить выполнение следующей инструкции.
Как только файловый ввод-вывод завершен, функция обратного вызова запускается и передает содержимое файла в качестве параметра. Это гарантирует отсутствие блокировки или ожидания файлового ввода-вывода. Именно эта функция делает Node.js очень масштабируемым, поскольку он может обрабатывать большое количество запросов, не дожидаясь результатов какой-либо функции.
Все Node API написаны таким образом, что они могут поддерживать обратные вызовы.
19. Дайте определение межсайтовому скриптингу (XSS).
Межсайтовый скриптинг (XSS) — это атака с внедрением кода на стороне клиента, при которой вредоносные сценарии выполняются в веб-браузере путем включения вредоносного кода в законную веб-страницу или веб-приложение. Это также может произойти, когда человек нажимает на ненадежные ссылки, которые могут передавать файлы cookie и другую конфиденциальную информацию злоумышленникам.
Атака происходит, когда вы посещаете веб-страницу или веб-приложение, которое выполняет вредоносный код. Следовательно, веб-страница или веб-приложение становятся средством доставки вредоносных сценариев в браузер пользователя.
Наиболее часто используемыми средствами для атак с использованием межсайтовых сценариев являются форумы, доски объявлений и даже веб-страницы, поощряющие пользователей оставлять комментарии.
20. Дайте определение АОТ и укажите его преимущества.
Приложения Angular содержат шаблоны HTML наряду со стандартными компонентами. Поскольку браузер не может напрямую понимать эти компоненты и шаблоны HTML, приложения Angular должны быть скомпилированы, прежде чем вы сможете запускать их в браузере.
Упреждающий компилятор Angular (AOT) преобразует код Angular HTML и TypeScript в код JavaScript на этапе сборки, прежде чем браузер сможет загрузить и запустить код. Компилируя приложение Angular на этапе сборки, вы способствуете более быстрому запуску приложений Angular в браузере.

Преимущества использования компилятора AOT:
- Используя AOT, браузер может загрузить предварительно скомпилированную версию приложения. Браузер загружает исполняемый код, чтобы он мог немедленно отображать приложение Angular, не дожидаясь, пока приложение сначала скомпилируется.
- Благодаря AOT компилятор встраивает внешние шаблоны HTML и таблицы стилей CSS в JavaScript приложения, тем самым исключая отдельные запросы AJAX для исходных файлов.
- На самом этапе сборки компилятор AOT обнаруживает и сообщает о любых ошибках привязки шаблона.
- Поскольку AOT компилирует HTML-шаблоны и компоненты в файлы JavaScript перед тем, как предоставить их клиентам, больше не остается шаблонов для чтения и даже нет рискованной оценки HTML/JavaScript на стороне клиента. Это уменьшает возможности инъекционных атак.
21. Что такое сетка в CSS?
В CSS сетка — это структура, которая используется для последовательного и управляемого размещения контента как по вертикали, так и по горизонтали. Сеточные системы имеют два основных компонента — строки и столбцы. Некоторые из наиболее часто используемых сеточных систем включают Simple, Pure, Flexbox, Bootstrap и Foundation.
Заключение
Это список наших главных вопросов и ответов на интервью с разработчиками стека MEAN. Мы надеемся, что это поможет вам пройти следующее интервью с MEAN stack!
Овладение языками и инструментами с полным стеком важно, чтобы стать разработчиком среднего стека. Путь разработчика полного стека является сложным, но также и полезным. Творческие и финансовые возможности действительно делают эту карьеру одной из лучших, если у человека есть страсть к ней. Если у вас есть страсть к созданию интеллектуальных чат-ботов, финтех-кошельков и многого другого, ознакомьтесь с полным курсом PG по разработке программного обеспечения от upGrad.