Интервью Tencent (3) - Заключительная глава

опрос

Скоро Рождество, заранее желаю всем счастливого 🎄! ! В этой статье автор поделится с вами пятым личным интервью автора и шестым личным интервью с техническим менеджером в Tencent, чтобы у всех было счастливое Рождество!

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

Интервью Tencent (1)

Интервью Tencent (2)

просто пообщаться

Вчера я поделился второй статьей и обнаружил, что многие партнеры просят ответы в области комментариев. Позвольте мне пояснить, что автор даст ответы только на некоторые вопросы. На некоторые открытые вопросы автор не будет давайте ответы, чтобы не ограничивать чье-либо мышление.

предисловие

В пятом интервью (интервью на месте) начальник гусиной фабрики также спросил меня об истории вопросов, связанных с моим проектом.Большинство других вопросов касаются структуры данных, алгоритмов и вопросов, связанных с безопасностью.Ниже приведено интервью подробности. !

Примечание к фону:

Проектный опыт автора в основном представляет собой систему лекций на основе среды WeChat (проектирование системы чата с функциями текста, голоса, изображений и выражений).

1. Как вы делаете эту систему, чтобы гарантировать, что сообщения отправляются в режиме реального времени?

Nodejs + websocket(socket.io)

2. Как реализована функция восстановления сообщения?

3. У Websocket иногда возникает проблема с отключением, как решить?

Присоединяйтесь к механику сердцебиения Барабаре.

var heartCheck = {
    timeout: 60000,//60ms
    timeoutObj: null,
    serverTimeoutObj: null,
    reset: function(){
        clearTimeout(this.timeoutObj);
        clearTimeout(this.serverTimeoutObj);
        this.start();
    },
    start: function(){
        var self = this;
        this.timeoutObj = setTimeout(function(){
            ws.send("HeartBeat");
            self.serverTimeoutObj = setTimeout(function(){
                ws.close();//如果onclose会执行reconnect,我们执行ws.close()就行了.如果直接执行reconnect 会触发onclose导致重连两次
            }, self.timeout)
        }, this.timeout)
    },
}

ws.onopen = function () {
   heartCheck.start();
};
ws.onmessage = function (event) {
    heartCheck.reset();
}

ws.onclose = function () {
    reconnect();
};
ws.onerror = function () {
    reconnect();
};

4. Какие алгоритмы сортировки использовались?

Украсть картинку, чтобы увидеть, 😝

5. Опишите, как реализована сортировка слиянием?

6. Вы когда-нибудь понимали, на что похож алгоритм сравнения внутри реакции? Если бы вы занимались дизайном, что бы вы спроектировали.

7. Разбираетесь ли вы в вопросах безопасности? (здесь об этом говорить не буду, тут много вопросов)

xss, csrf, SQL-инъекция

. . .

На этом пятая сторона закончилась. Интервьюер вышел на 20 минут и сказал, что вы можете вернуться. Мы сообщим вам по телефону позже! Я повторил интервьюеру, что я приехал из Гуанчжоу, а затем интервьюер сказал: подожди минутку, я поговорю с менеджером.

. . .

Минут через 15 подошел менеджер, сказал, что про технические моменты спрашивать не буду, давайте поболтаем! ! Менеджер в основном рассказал мне о текущих делах проектной команды, в основном используемом стеке технологий, а также предложил мне прочитать больше книг по структуре данных. Я также спросил, что вы думаете о сверхурочной работе! !

Вот так длинное интервью с гусиной фабрикой подошло к концу, и за ним осталось долгое ожидание! Примерно через 20 дней мне позвонили, чтобы пройти техническое собеседование, но мне все равно нужно было собеседование с HR, на тот момент я уже пришел в новую компанию, поэтому такого не было!

Эпилог

happy christmas !

@Author: Even