Как пройти собеседование с Ele.me Node.js

Node.js JavaScript опрос
Как пройти собеседование с Ele.me Node.js

ElemeFE-background

Как пройти собеседование с Ele.me Node.js

Привет, добро пожаловать в ElemeFE, как следует из названия, цель этого урока - научить вас, как пройти собеседование с интерфейсом Ele.me, должность - программист сервера Node.js с 2-3 годами опыта (не полный стек), если вы заинтересованы в этой позиции или изучаете какой-либо расширенный контент Node.js, добро пожаловать на просмотр.

Следует отметить, что эта статья не предназначена для нулевых студентов, вам необходимо иметь определенную базу JavaScript/Node.js и иметь определенный опыт работы. серверная основа.JS-программисты должны знать эту часть.

Если вы считаете, что мало знаете, вам не нужно отправлять свое резюме(Это экономит время обеих сторон), если вы думаете, что большинство из них понимают илиПросто посмотрите на схему и почувствуйте, что она очень проста, так что добро пожаловать, присылайте свое резюме на ElemeFe (fe.job@ele.me).

Управляемое чтение

Хотя цель состоит в том, чтобы пройти собеседование, в этом руководстве не просто перечислены все вопросы интервью, ноВ основном это перечисление моментов в интервью, которые вам нужно подтвердить, понимаете вы или нет., и обсудить это в какой-то степени.

В этой статье некоторые распространенные проблемы разделены на категории, и в каждой категории указаны некоторые из рассматриваемых проблем.覆盖点, и перечислите несколько常见问题, обычно эти вопросы нужно понимать или сталкиваться с 2~3 годами опыта работы.Если вас интересует определенный тип вопросов, или вы хотите узнать ответы на перечисленные в нем вопросы, вы можете пройти阅读更多Узнать больше.

В целом, перечисленная схема не очень исчерпывающая, охват деталей невелик, и многие обсуждения ведутся точно по делу, надеюсь, каждый сможет обдумать это с вопросами.

Js основная проблема

В отличие от front-end Js, back-end обращен прямо к серверу и больше склонен к памяти.

Общая проблема

  • Какой тип передается по ссылке в js и какой тип передается по значению Как передать переменную типа значения по ссылке?[more]
  • js, 0,1 + 0,2 0,3 === правда ли это?Я не знаю, как плавать в медиане и третий должен определить количество двух чисел с плавающей запятой равны?
  • Массив const средний элемент определения может быть изменен?Если да, то смысл измененного объекта const?[more]
  • Когда в JavaScript освобождается память разных типов и переменных в разных средах?[more]

Подробнее

модуль

Общая проблема

  • Будут ли два файла a.js и b.js требовать друг друга в бесконечном цикле? Могут ли обе стороны экспортировать переменные? Как избежать этой проблемы по замыслу?[more]
  • Если a.js требует b.js, то определите глобальные переменные в bt = 111Можно ли распечатать прямо в формате ?[more]
  • Как сделать горячее обновление файла js/json без перезапуска процесса node?Есть ли проблема с самим этим вопросом?[more]

Подробнее

событие/асинхронное

Общая проблема

  • В чем разница между вторым параметром .then в Promise и .catch?[more]
  • Eventemitter Emit синхронизирован или асинхронный?[more]
  • Как судить, является ли интерфейс асинхронным, асинхронным ли он, пока есть функция обратного вызова?[more]
  • В чем разница между nextTick, setTimeout и setImmediate?[more]
  • Как реализовать функцию сна?[more]
  • Как реализовать асинхронное сокращение? (Примечание: не синхронное сокращение после асинхронного)[more]

Подробнее

обработать

Общая проблема

  • Каков текущий рабочий каталог процесса и что он делает?[more]
  • В чем разница между child_process.fork и форком POSIX?[more]
  • Влияет ли смерть родительского или дочернего процесса друг на друга?[more]
  • Как кластер обеспечивает балансировку нагрузки?[more]
  • Что такое процесс демона Как реализовать процесс демона?[more]

Подробнее

IO

Общая проблема

  • Для каких данных обычно используется Buffer и может ли динамически изменяться его длина?[more]
  • Что такое highWaterMark и события стока Stream?Какова связь между ними?[more]
  • Какова функция канала Stream?Данные передаются по ссылке или путем копирования в процессе канала?[more]
  • Что такое дескриптор файла?Что такое поток ввода/вывода/поток ошибок?[more]
  • Является ли console.log синхронным или асинхронным?Как реализовать console.log?[more]
  • Как получить пользовательский ввод синхронно?[more]
  • Как реализован Readline? (Вы можете иметь представление)[more]

Подробнее

Network

Общая проблема

  • В чем разница между cookie и сеансом?Как сервер очищает cookie?[more]
  • В чем разница между POST и PUT в протоколе HTTP?[more]
  • Что такое кросс-оригинальный запрос и как разрешить кросс-оригинал?[more]
  • Разница между TCP/UDP[more]
  • TIME_WAITКакова ситуация? Слишком многоTIME_WAITЧто может быть причиной?[more]
  • Что такое ошибка ECONNRESET?Как воспроизвести эту ошибку?
  • Что означает зависание сокета и при каких обстоятельствах оно может появиться?[more]
  • Что такое файл hosts?Что такое локальное разрешение DNS?
  • Перечислите несколько способов увеличить скорость передачи по сети?

Подробнее

OS

Общая проблема

  • Что такое телетайп?Как определить, что я нахожусь в среде телетайпа?[more]
  • В чем разница между символами перевода строки (EOL) в разных операционных системах?[more]
  • Что такое понятие нагрузки на сервер, как проверить нагрузку?[more]
  • Для чего используется ulimit?[more]

Подробнее

Обработка ошибок/отладка

Общая проблема

  • Как бороться с непредвиденной ошибкой?С try/catch или каких других доменов?[more]
  • чтоuncaughtExceptionСобытие? В каких ситуациях обычно используется это событие?[more]
  • Каков принцип домена?Почему домен должен быть объявлен устаревшим?[more]
  • Что такое защитное программирование?
  • Зачем передавать ошибку в первый параметр cb?Почему первый параметр некоторых cb не является ошибкой, например http.createServer?
  • Почему некоторые исключения не могут быть обнаружены в вызове кода на основе сообщения об ошибке? Как точно определить местонахождение исключения?[more]
  • Каковы причины утечек памяти, как анализировать и локализовать утечки памяти?[more]

Подробнее

тестовое задание

Общая проблема

  • Зачем писать тесты, не замедлит ли написание тестов разработку?[more]
  • Что такое единица модульного тестирования?[more]
  • Как тест гарантирует отсутствие бесконечного цикла в бизнес-логике?[more]
  • Что такое мок Что такое мок вообще?[more]

Подробнее

util

Общая проблема

  • Как HTTP передает let arr = [1,2,3,4] на сервер с помощью метода GET (URL)?[more]
  • Реализация наследования (util.inherits) в Node.js?[more]
  • Как рекурсивно получить все имена файлов в папке?[more]

Подробнее

место хранения

Общая проблема

  • В чем разница между резервной копией базы данных и M/S, M/M и другими методами развертывания?[more]
  • В чем польза индекса, каков общий принцип, на что обратить внимание при разработке индекса?[more]
  • Проблемы соединения MongoDB (тайм-ауты / отключения и т. Д.) Что может быть причиной?[more]
  • При каких обстоятельствах данные будут выглядеть грязными и как этого избежать?[more]
  • Разница между Redis и Memcached?[more]

Подробнее

Безопасность

Общая проблема

  • Как шифрование обеспечивает безопасность паролей пользователей?[more]
  • В чем разница между TLS и SSL?[more]
  • Можно ли взломать HTTPS?[more]
  • Что такое XSS-атака и какой вред?[more]
  • Может ли фильтрация HTML-тегов предотвратить XSS? Перечислите случаи, когда это невозможно?[more]
  • Какой CSRF то?Как предотвратить?[more]
  • Как избежать атаки «человек посередине»?[more]

Подробнее

наконец

В настоящее время репо находится на строительной площадке, если вы обнаружите какие-либо проблемы, вы можетеissuesуказал в. Если у вас есть лучшие вопросы / знания / исправления, пожалуйста, отправьте PR.

Кроме того, основы Js - это относительно большая тема. В этом уроке мы не будем подробно обсуждать ее. Это больше перечислит некоторые важные или связанные с сервером места, поэтому, если вы возьмете "JavaScript Definitive Guide" для учебник A PR не может быть принят. В этом руководстве более подробно рассматривается то, что программистам Node.js необходимо знать об основах работы на стороне сервера.