发现了一个令我震惊的前端面试绝杀题--移动端浏览器兼容

2017-05-08 23:19:52 +08:00
 jackon

有没有遇到过移动端的浏览器兼容问题?

最近一周,面试了 20+ 人,知道这里存在问题的,不到 4 个人。
而这四个人里,大概只有 1 个哥们实际处理过。

大部分人都是反问我:
Safari / chrome / Firefox 上没有多少兼容性问题吧?
我一直认为是一个非常基础的问题,
认真工作半年以后都会知道的基础问题。

我想,这应该是因为,
大部分的项目,
没有用户反馈/投诉机制,
前端没有监控能力,
所以,根本不知道这里有多少的体验问题。

不知道是我们公司收到的简历质量太低,
还是当前业界现状。

做为一个非专业的前端,列举几个我知道的坑

  1. 虚拟键盘引起的兼容问题。比如: http://stackoverflow.com/questions/24557780/ios-7-fixed-footer-toolbar-breaks-on-virtual-keyboard
  2. touch 事件引起的。-- 手机端需要单独处理,但手机浏览器之间是否一致,不了解。
  3. iOS 和 android 系统导致的差别。比如,微信内置浏览器。
  4. 微信浏览器,也可以列一条专门吐槽了。
  5. 安卓厂商们魔改(魔法一般的莫名其妙的修改)过的操作系统。三星手机都遇到过,大概是 input 内的元素居中有问题。至于国内厂商们魔改出来的奇葩兼容问题,罄竹难书。

不是说需要面试者回答出具体的细节,
而是,至少应该知道这里有坑吧。
即使自己的项目没有能力检测出这些 bug,
难道也没有听朋友们聊起过?
或者,看文档的过程中,就没有一篇文章提到过这类问题?
在起码,准备面试的时候,经典面试题里也可以搜到过吧。。。

有一点不太理解,为什么。

大家如果有其他浏览器兼容的坑,也可以一起吐槽一下。
我也补全一下自己的清单。
thanks :)

最后,夹带私货。
我司招前端。
硅谷创业公司,已经获得 VC 融资,主要创始人都有多次创业经验并成功退出。
核心产品是,利用大量的数据分析,帮助应聘者找到适合自己的职位,目前主要针对北美市场。
详细: https://www.v2ex.com/t/358568

如果你恰好知道这些问题,或者感觉这种问题太水,
不妨找我聊聊新的工作机会,万一我们我们一起工作会更开心呢?
我的微信: kunth002

37859 次点击
所在节点    程序员
121 条回复
nicevar
2017-05-09 15:29:19 +08:00
@paradoxs 我的意思是完全采用 html5 框架来做,用壳包起来,不少公司死在这上面,有些公司死之前技术人员还来这里寻求过解决方案。
你说的混用太常见了,偏向业务的应用很多公司都采用混合方案,毕竟有些需要灵活展现的页面用 web 来展现比较方便,我们以前的公司从 2.x 版本开始就一直用了
skylancer
2017-05-09 15:41:41 +08:00
怎么可能没有,光是微信就能洋洋洒洒讲很久了
我一个不做前端的都知道这些,你收到的是什么垃圾人的垃圾简历...
fakefish
2017-05-09 15:51:07 +08:00
不过有一些碰到过,但面试的时候可能会想不起来,比如 chrome 的 sort 和 safair 的 sort 的区别,两者 new Date 的区别,有时候很难会想到这是浏览器问题
fakefish
2017-05-09 15:53:53 +08:00
当然可能很多人没有遇到过在一些安卓手机上 margin 不生效,overflowhidden 导致高度变高,height 不生效,加点击样式导致点击事件消失种种,当然说这些东西会匪夷所思,但实际上是有这些问题
ZxBing0066
2017-05-09 15:57:22 +08:00
行业不同 经验也会有很大不同 用这个来衡量经验 实在是片面,当然如果你们想要招的人就是需要有这方面经验就另当别论了,不过个人感觉解决问题的能力和思路比这种所谓经验重要的多
tomato3
2017-05-09 16:04:43 +08:00
招实习吗?
jackon
2017-05-09 16:42:19 +08:00
@tomato3 暂时无法提供实习职位,抱歉。
sunber
2017-05-09 17:01:18 +08:00
你的初衷是找熟练工,然而这种面试题会误伤一部分人,能搜索引擎解决的问题,没必要脑子时刻记住
guangguoguo
2017-05-09 17:39:38 +08:00
程序员≠测试员,写了一行代码"以后有时间改“,事实上如果没有测试员反馈,这行代码永远都不会被修改。
Jeter
2017-05-09 19:38:34 +08:00
“我想,这应该是因为,
大部分的项目,
没有用户反馈/投诉机制,
前端没有监控能力,
所以,根本不知道这里有多少的体验问题。”
不不不,你没说到根本原因。
根本原因在于,我也许把未来的 web 标准都背得烂熟于心,然而浏览器产商才是大爷。。各类移动端产商、浏览器厂商大爷们对用户系统、浏览器的魔改( qj )导致开发们(至少我是这样)对移动端兼容这个事情已经麻木了。。。
miniwade514
2017-05-09 19:39:09 +08:00
1. 回楼上一些说兼容性不是问题的。
当前端不需要考虑兼容性,不需要考虑数据逻辑,拿到 JSON 就只知道渲染的时候,这个岗位差不多就玩完了。
别跟我说做全栈、做全端,你当人家服务端、native app 端的这些年技术是没在发展吗?你跟人家比有什么优势吗?
你连浏览器兼容性这种只需要动手不需要懂很多脑的事情都不愿意做,转到别的技术栈能深入到哪里?
我自己做了几年全职前端了,以上不是针对前端这个工种做的评价,而是说给一些没有正视前端这个岗位的人听的。毕竟这两年抱着投机心态进这个领域的人太多了。

2. 回楼上一些说会用搜索解决问题就行的。
移动端的很多兼容问题,可以用鬼畜来形容。而且移动端的兼容问题不同于 PC 端,PC 上的代码你复制粘贴了马上就能看到效果,或者解决你的问题,而移动端的问题是设备、系统、浏览器多个因素同时作用的结果,你没那么容易复用别人的答案。姑且假设所有问题都能搜到解决方案,这种方式所花费的时间是很不可控的。而一个有经验的开发,解决问题的时间可以减少很多。时间对于企业而言就是成本,就是钱。
alexapollo
2017-05-09 19:53:23 +08:00
@jackon 为啥是完全不一样的问题?

* 前端适配浏览器内核 - 后端适配服务器内核

区别大吗?我指的是思考问题从这个角度思考,还觉得成功“筛选”掉很多人有点不可取吧……
在我看来,懂前端适配只能加点小分,证明是个前端适配的熟练工,没别的用处了
test4zhou
2017-05-09 20:44:31 +08:00
@paradoxs 我意思是一些公司想要用 html5 取代原生开发节省开发成本,例如实现什么语音,视频功能之类功能,还要求跟原生一样流畅,,,
spacewander
2017-05-09 20:55:57 +08:00
@alexapollo
后端没有适配不同的内核的需求呢……除非你是在写库或者写开源项目。
indooorsman
2017-05-09 20:58:05 +08:00
还是找专业前端来面试前端比较好
alexapollo
2017-05-09 21:32:47 +08:00
@spacewander 那按楼主的论点,你的经验是明显不够的

1. 写个 push 服务,如果想要达到 C1M,那至少要调六个以上的内核参数
2. 使用 docker,你也得明白 docker 下的 FS 机制,怎么运用才能高效
3. 很多公司定制的 kernel 都把所有的 module 隐藏化了,但性能调优往往是需要把 module 暴露出来,那又得怎么做?

但你看了一眼答案,也会明白这些问题都很经验,未免强人所难。
更何况,你的逻辑“写库或者写开源项目”来抽象出前端逻辑,确保合适的人做合适的事,不也是一个道理吗?
syyy
2017-05-09 21:44:36 +08:00
第二个问题,已经被折磨挂了,经常被提问题,然后转到前端那边去。有时候就那么安安静静地,没有任何现象,自己手机无法重现,查半天日志才发现没有日志,再半天才能大概找到原因是前端。
codermagefox
2017-05-09 21:56:42 +08:00
刚工作没多久的新手,只知道一个 300MS 的问题和一点样式问题,估计被问了也扑街。。。
jackon
2017-05-09 23:42:09 +08:00
@miniwade514 赞知己,解释的比我清楚。

解决大多数问题都依赖 Google,
这其实不只是时间成本的问题,
最关键的,如果踩坑太少,那根本做不了复杂系统的设计。

踩坑太少的,讨论闭包、原型链等概念的时候,明显更缺乏深度。
闭包问题,根本上升不到编程范式的高度,
原型链,也讨论不到继承范式的高度上。

脾气大于技术实力。
jackon
2017-05-09 23:53:32 +08:00
@alexapollo 兄弟,最后的这条回答,看得出你在后端处理过比较有复杂度的性能调优问题,至少关注过。赞技术。

这跟前端的浏览器兼容,出发点完全不一样。
前端不做,就会有一定比例的用户,体验很差,甚至根本用不了。
根本没有其他的补救措施。
除非是少数 to B 产品,只要用户量过万,就会遇到。

后端的内核级适配,不做也影响不到用户。
性能问题通过 scale out 可以解决大部分。
用户量到了必须要考虑内核级优化实现 scale up 的,国内屈指可数。
这些公司,也不会搞出杂七杂八的一堆操作系统或者内核来适配。
最多两三个操作版本而已。
至于 vagrant / virtualbox / docker 这些虚拟化工具,那是特定产品的特殊需求。

所以说,这是基本不具有类比性的需求。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/359985

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX