1. Расскажите о проекте, которым вы особенно гордитесь. Что из того, что вы сделали, получилось хорошо?

Я действительно горжусь проектом, когда я работал над HTML и CSS и перестраивал чей-то веб-сайт и мобильный сайт, которые оказались намного лучше, чем они создали. В конце концов хотел бы добавить javascript и все, чтобы он работал.

2. Как вы проводите тестирование? И что вы думаете об этом? Как бы вы улучшили QA?

Тестирование начинается с тестирования базовой функциональности, за которым следует проверка кода, статический анализ кода, модульное тестирование и тестирование производительности для одного пользователя.

«40 процентов моего времени уходит на проектирование и написание кода; 5 процентов тратится на проверку кода и статический анализ кода; 25 процентов на модульное тестирование и интеграционное тестирование; и 30 процентов на тестирование базовой функциональности и тестирование производительности для одного пользователя», — Игорь Марков, менеджер по исследованиям и разработкам LoadRunner в HP Software.

3. Какие инструменты вы используете для поиска ошибок производительности?

Jira, Asana, Microsoft VSTS помогают вам поддерживать аккуратную и чистую библиотеку всех найденных вами ошибок, чтобы вы могли лучше сотрудничать и организовывать работу со своими товарищами по команде. Обратите внимание, что LambdaTest обеспечивает интеграцию с этими 3 и многими другими платформами отслеживания ошибок.

4. Какой предпочтительный метод разрешения необработанных исключений в Node.js?

Если вы используете Node.js в продакшене, вам нужно хотя бы иметь представление о том, что делать с неперехваченными исключениями. На данный момент я подозреваю, что большинство людей перезапускают свое приложение (возможно, изящно), когда возникает исключение. Домены позволяют приложению лучше понимать, что делать в случае возникновения ошибки. Обработчики исключений могут выбрать очистку после возникновения ошибки, закрыть некоторые соединения или, в худшем случае, выйти из процесса. Дело в том, что вы можете выбирать.

5. Как Node.js поддерживает многопроцессорные платформы и полностью ли использует все ресурсы процессора?

Поскольку Node.js по умолчанию является однопоточным приложением, оно будет работать на одном ядре процессора и не будет в полной мере использовать ресурсы нескольких ядер. Однако Node.js обеспечивает поддержку развертывания в многоядерных системах, чтобы в большей степени использовать аппаратное обеспечение. Модуль Cluster является одним из основных модулей Node.js и позволяет запускать несколько рабочих процессов Node.js, которые будут использовать один и тот же порт.

6. Какой обычно передается первый аргумент обработчику обратного вызова Node.js?

Наличие в качестве первого аргумента обратного вызова кода ошибки — это просто соглашение, которое node.js использует в своей библиотеке времени выполнения для всех обратных вызовов асинхронных функций, и теперь оно стало в некотором роде стандартом в узле.