Полная запись интервью OPPO Outsourcing

опрос

Сегодня первый день собеседования.Давайте запишем.Уже давно не подавал резюме.Не знаю почему все позиции на аутсорсе.Вакансии на аутсорсе.

среда компании

Я живу в Лунхуа, что очень далеко от Хоухая, я начал около 8:50, и было уже 10:30, когда я прибыл в OPPO, расположение офиса все еще очень высокое, и у друзей в Шэньчжэне должен быть опыт.

OPPO находился на 31 этаже.Когда они поднялись наверх, они столкнулись со многими сотрудниками OPPO, которые вместе поднимались на лифте.Позже я спросил у интервьюера, будет ли OPPO работать по гибкому графику, и интервьюер сказал, что они пойдут на работу в 9:30. В основном из-за того, что вчера я работал допоздна, а те, кто допоздна, могут прийти в компанию позже.Похоже, что OPPO все еще довольно серьезно работает сверхурочно.

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

Интервьюер начал с части оптимизации производительности, которая его очень беспокоила, а затем спросил базовые знания, которые включают в себя вопросы сетевой безопасности, http, верстку css, анимацию css, основы js.

Раздел оптимизации производительности

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

面试官:你做的这些专题里面,哪些地方用到了性能优化?
我:这些电商专题有一个共同的特点,就是图片特别多,因此基本上都用到了懒加载.

面试官:还有别的性能优化吗?
我:据我的了解,就是这个了.

面试官:你觉得这些专题还有什么性能优化的手段吗?
我:我知道的就是把JS代码放到页面底部了.不过因为这些专题是跨平台的,需要在小程序和APP两端展示,
因此只有一部分JS代码能放到页面底部.

面试官:你还能想到什么性能优化的手段吗?
我:(尴尬,开始转移话题)这个...这些专题好像没有太多优化的地方可以谈,要不说说我的另外一个项目吧

于是我们接着开始聊我们另外一个项目.

面试官:可以啊,那你说说这个项目吧.
我:我这个项目是一个类似于论坛的项目,有完善的内容展示和用户信息管理.主要用到的性能优化有三点:图片懒加载,
数据分页请求配合节流防抖函数以及本地缓存.

面试官:你这个本地缓存是怎么做的?
我:用户个人中心的数据,是只有在用户有操作之后才需要重新请求接口数据的.针对这点,
我在本地缓存了一个状态叫hasUpdated,这个状态默认为false.
当用户第一次进入个人中心的时候,通过接口请求数据,并将接口返回的数据缓存,修改该状态为true.
用户下次进入个人中心的时候,由于已经更新,所以直接使用本地缓存数据,这样二次访问就不需要再请求接口数据了.
(这里的文字介绍比我面试的时候口头介绍说的好很多)

面试官:你做的这个优化给页面带来了什么变化?节约了多少页面响应时间?
我:额...嗯...这个...(嗯了半天不知道要怎么回答)这个带来的变化好像就是,秒开?
(这是后面组织的语言,实际上说的很结巴)

面试官:你这个优化会不会带来什么问题?比如跨平台访问的时候?
我:跨平台访问的时候,用户看到的个人中心的数据可能会不一样.但是实际上用户基本不会遇到这样的场景.
面试官:那这样不行吧?
我:我这个项目主要的场景是在微信内部的,用户基本不会通过PC来访问我们这个网站,只有我们内部的测试人员才会遇到这个问题.
(这个地方答得非常不好,实际上应该是用户第一次跨平台的时候不会有任何影响,
第二次跨平台访问的时候,如果只有一端用户发生了操作后进入个人中心,
和没有发生操作的个人中心显示的数据就会不一样,比如多了一个收藏或者少了一个收藏.)

面试官:那你做这个项目的时候有没有碰到什么问题?
我:有碰到一个问题,这个问题我到现在也没有很好的解决手段.
这个项目主要是在微信内部使用的,微信内置的QQ浏览器缓存非常严重.
当我多次提交代码的时候,如果用户之前已经访问过这个项目,那我提交的变化用户就不能立刻收到了.
用户只能通过多次刷新页面,才能够接受到我修改以后的代码.

面试官:那这样肯定不行,你都想了什么办法呢?
我:一个办法是在头部加上no-cache的meta标签,另一个办法是在链接后面加上参数.
这两个手段在别的平台都能奏效,但是在微信内置的浏览器中大部分时间是无效的,所以我说没有很好的解决方案.
(掘金的朋友们有什么好的解决方案吗?)

面试官:你对后端了解怎么样?
我:只用node写过增删改查的Demo.
面试官:其实可以考虑让后端提出一个解决方案.(面试官说了一个解决方案,但是我没有听懂,好像是路由相关的响应)
我:我把这个情况跟我们后端说了,他们也没有很好的解决办法.

проблемы с сетевой безопасностью

Я, наконец, прошел часть оптимизации производительности, а затем начал спрашивать об основах. Первое, что я спросил, это сетевая безопасность. Поскольку я практически никогда не сталкивался с проблемами сетевой безопасности, я действительно не знаю, как ответить на этот вопрос. часть (неловко)

面试官:有了解前端部分的网络安全问题吗?
我:我只知道XSS攻击.具体好像是攻击者通过JS代码注入.然后是在什么场景使用,我就没有接触过了.
(所以XSS攻击的场景到底是啥?)

css макет

Эта часть также является частью, на которой сосредотачивается интервьюер, и я не отвечаю на нее хорошо.

面试官:平时会用到哪些布局?
我:flex布局用的比较多.

面试官:除了flex布局呢?
我:grid布局算吗?

面试官:grid布局也算,但我想问的不是这个.
我:你指的是双翼布局之类的吗?

面试官:就是你平时经常用到的布局.
我:(实在没明白什么意思)可能css布局写的比较少,你可以说一下具体的场景吗?

Эта тема, похоже, здесь пропущена, и следующая часть — это часть CSS-анимации.

css анимация

Трудно сказать, что эта часть ответа удовлетворительна...

面试官:有用过CSS动画相关的属性吗?
我:用过transition和animation.

面试官:它们的区别是什么?
我:transition的变化是在JS中进行的,animation需要指定初始帧和结束帧.

面试官:transition的变化是在JS中进行的?
我:就是...这个要怎么说呢,就是(我也忘了自己是怎么忽悠过去的,汗)

междоменная проблема

Этот ответ, кажется, в порядке

面试官:知道哪些跨域解决方案?
我:一个是后端指定access-control-allow-origin,一个是jsonp.

面试官:jsonp的原理是什么?
我:jsonp是通过向服务器请求一个script标签,在script标签加载完成之后,自动执行js指定的回调函数.

面试官:为什么会自动执行?
我:它不是使用xhr进行请求,有点类似于AMD加载.script标签在加载完成后内部的代码会自动执行,这个是浏览器决定的.

перерисовать

Эта часть пришла мне в голову внезапно, я добавлю ее позже

http связанные

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

面试官: 了解http协议吗?
我:知道http的底层是TCP链接.

面试官:讲一下http的强缓存和协商缓存.
我:(一脸蒙蔽,完全没有听过)这个好像没有听过.

После интервью я быстро проверил и обнаружил, что три атрибута заголовка cache-control, expires и if-modified-since были действительно заданы, пот!!!

вопрос, который я задал

На самом деле, я думал о многих вопросах раньше, и я так нервничал в то время, что не задал их, что очень жаль.

我:你觉得我的面试过程中,你对我最满意的一点是什么?最不满意的是什么?方便说一下吗?
面试官:最满意的是你做过专题(汗...),我们这个组是做OPPO手机内置的浏览器,应用商店里面的活动的,所以如果经常做专题活动会比较好.不太满意的地方是你对性能优化,http协议和css动画不够深入.(终于知道为什么一直揪着性能优化部分不放了)

我:你们组前端有多少人?后端有多少人?前端和后端是在同一个组里面吗?
(问这个是怕后期跟后端是跨部门沟通.如果是的话会很麻烦)
面试官:我们组前端大概7,8个人,后端10来个,前端是一个组,后端也算是一个部门的,但是是另外一个组.

我:接口是后端组那边做吗?前端组这边会不会涉及到后端接口的工作?
面试官:是后端做,前端不会涉及接口工作.

我:那前端这块也不需要用node做中间层吧?
面试官:目前暂时没有用node做中间层,后面可能会用.但是前端的工程工作需要使用到node.

我:你是你们组组长吗?(纯粹是好奇)
面试官:不是.

我:这个岗位是外包,后期是一直在OPPO这边吗?还是说会被派到别的公司?
面试官:后期是一直在OPPO这边.另外,如果很优秀的话,这边工作2年以后会转为正式工.

我:假如我有幸进了你们部分,那我主要要做什么呢?
面试官:主要就是做H5页面.如果特别优秀的话,那也会让参与组件开发.


我:我问完了.
面试官:那今天面试就到这里吧,你先回去等消息.

После интервью самое большое ощущение, что многие вещи не были заданы.Я должен спросить некоторые сценарии использования и навыки, связанные с оптимизацией производительности H5, сделанные этой командой проекта.Кроме того, я быстро проверил сильный кеш и кеш переговоров.Знания , в то время у меня было черное перед глазами...

результат

Первое ощущение после собеседования было то, что было холодно.Кто знал, что мне позвонили днем ​​и сказали, что я прошел!Я сказал невероятно, и действительно, требования к аутсорсингу относительно низкие, верно?

Это первое интервью в этом году и первое предложение, которое я получил (оно еще не оформлено официально, Кхан!)