转自:程序员的那些事/1 Bite
最近全球知名网站 PornHub 有面临关停的可能,其高管也可能面临追责。原因是 P 站有大量触及底线的内容,比如:而同涩情。在上次推文的评论中,读者“无为”补充指出来了。
P 站的这事引发了大量讨论,其中也有不少会员的哀嚎声。
业界有种说法,因为海量用户和流量,成人网站是各种前沿 IT 技术的试炼场。
无论你对 P 站持有哪种立场,都不可否认成人网站对于推动 Web 技术发展具有着重大影响。从提高浏览器的视频限制,到通过 WebSocket 推送广告从而绕过广告拦截器,想要在互联网的前沿进行创新,必须足够聪明和厉害才行。
肯定有童鞋想知道像 P 站这种大站在用哪些技术栈。(或工作体验之类的)别着急,往下看。
去年 David Walsh 采访了一个 P 站的 Web 开发者。我们能从中探知答案。
在 PortHub 做 Web 开发是一种什么体验?
问:成人网站需要显示大量图片。在开发过程中,你们会使用大量图片或者视频占位符吗?开发时候的内容和体验与最终产品差别有多大?
答:开发过程中,我们并不使用图片或者视频占位符。在开发的最终阶段,最重要的还是代码和功能,界面在那时已经是我们驾轻就熟的东西了。一开始肯定有学习曲线,不过很快我们就适应了。
问:当要支持视频流和三方广告脚本时,在开发过程中你们是如何模拟这些重要的动态资源的呢?
答:开发的时候,播放器被拆分为两个部分。基础播放器实现核心功能以及发出各种事件。这部分开发工作不需要对接广告商,开发很纯粹。在网页上集成的时候,我们直接让这些脚本和广告运行起来,以便及早发现问题。对于一些特殊情况,我们则会和广告商合作,手动触发那些平常随机触发的事件。
问:一个页面平均可能包含至少一个视频、一些 GIF 广告、几张主播预览图以及一些其它视频的缩略图。你们是如何衡量页面性能以及如何保持页面最佳性能的呢?可以分享一些技巧吗?
答:我们会使用一些度量系统:
问:我猜前端最重要、最复杂的功能一定是播放器。从在视频之前显示广告、到标记视频的精彩时刻、到更改播放速度再到其他功能,你们是如何维护它的性能、功能和稳定性的?
答:我们有一只专门做播放器的团队,他们的首要任务就是持续不断地监控播放器性能和效率。为此,我们几乎用上了全部能用的工具。像浏览器性能分析工具、网页测试工具、指标工具等。我们做的任何更新都会经过一个可靠的质量检测环节,从而确保了稳定性和质量。
问:这只专门的播放器团队有多少人?其中前端开发又有多少人?
答:这个我只能说也就是平均规模。
问:在成人网站工作的期间,你见证了哪些前端技术的变化?哪些 WebAPI 方便了你们的开发?
答:每个角落的改善,我都见证了。
问:展望未来,有没有你想要改变、或者改善、甚至创造的 Web API?
答:确实有一些我们想要改变或者改善;比如 Beacon、WebRTC、Service Workers 和 Fetch:
问:过去几年 WebVR 一直在发展,你认为当前 WebVR 有哪些实用之处以及成人网站要支持 VR 内容又有哪些难点?贵公司的网站是否已经在使用 WebVR?
答:我们正在调研 webVR 以及如何最好的适配新兴的空间计算,作为最大的内容分发平台,无论创作者和用户想要怎么体验我们的内容,我们都需要提供支持。当然,在新的媒体形式下内容和平台又该是什么样子,我们也还在探索。
我们是最早支持 VR、计算机视觉及虚拟演员的主要平台之一,我们会持续推动新技术发展以及互联网开放。
问:每个页面上媒体和内容的种类如此繁多,那么桌面和手机平台之间都有哪些取舍因素要考虑?
答:主要是功能会被浏览器类型和操作系统限制。iOS 与 Android 就是最好的例子,它们各自有一套完全不同的权限控制体系和功能。
举例来说,某些 iOS 设备在全屏模式下不让使用自定义视频播放器,只能用原生的 QuickTime 播放器。在开发新功能时,这个必须考虑进去。相反,Android 则完全开放控制权,我们就可以在全屏模式下实现功能。
另外一个例子是 HLS 的自适应码流,IE 和 Edge 对 HLS 码流的画质非常挑剔,在这些平台上我们不得不使用低画质,否者视频就会卡顿。
问:当前 P 站最低支持哪些浏览器?还支持 IE 吗?
答:我们兼容过 IE 很长一段时间,但最近不再支持 IE11 以前的版本,同时也放弃了 Flash。目前我们主要支持 Chrome、FireFox 和 Safari 浏览器。
问:能略微分享一下 P 站技术栈方面的信息吗?前端或者后端方面的?你们都使用哪些库?
答:我们大多数网站基本都使用下列技术:
根据情况还会用到其它技术,比如 Varnish、ElasticSearch、NodeJS、Go、Vertica。
对于前端,原生 Javascript 用的较多,我们正在慢慢放弃 jQuery 并开始使用前端框架,主要是 Vue.js。
问:在外行看来,成人网站看起来都差不多:很多视频缩略图、聚合大量视频内容、各种主播、大量广告。作为从事这项工作的人,你觉得是什么功能让成人网站与众不同?
答:我们非常努力地为每个品牌提供不同层次的独特性,比如内容库、UX 、功能集以及许多不同的算法。
问:在申请这份工作和面试之前,你是怎么看待对在成人网站工作的?你犹豫过吗?你又是如何想通的?
答:我觉得没什么,因为最后的挑战挺吸引人的。一想到数以百万计的用户会使用我开发的功能,我就备受鼓舞。很快,事实也证明的确如此,当我开发的第一个功能上线后,我感到非常的自豪,还告诉我的朋友们快去试玩。
问:终究,给别人说在成人网站工作还是有别于普通互联网公司。你会不会觉得不好意思告诉家人、朋友以及熟人你在成人网站工作?你是否犹豫过要不要告诉他们?
答:开发这类产品让我感到非常自豪,我的亲朋好友们都知道我的工作,而且对我的工作内容非常感兴趣。我的工作确实也非常有趣,还经常是非常好的谈资和笑话素材。
问:在工作氛围上,成人网站和普通互联网公司有差别吗?
答:这里的工作氛围非常轻松、友好。这里除了比我之前工作过的地方大得多外,工作文化方面我不觉得与其它公司相比有什么差别。
问:作为一名前端开发,你和哪些团队合作最紧密?你们的日常交流方式是怎样的?
答:我们和后端开发、QA 及产品经理的合作紧密程度都差不多,交流方式大多时候是走到对方办公桌面对面沟通。再就是打字聊天(MS Teams)以及 Email。
问:最后,作为一名成人网站的前端开发,你还有其它什么想分享的吗?
答:能够参与创造如此广泛被使用的产品是一件非常令人激动的事情。随着产品面市,我们通常会站在技术潮流和技术变革的最前端,这也让我们的工作充满乐趣与挑战。
最后再补充说了一下 P 站为什么可能面临关停。
在上次推文《全球最大成人网站 Pornhub 或将关停》中,我们用了新浪科技对 traffickinghub.com 的截图。可能是图片尺寸小,有些童鞋只看到了“shut down Pornhub(关闭P站)”,忽略了“追究其高管协助人口贩卖的责任”。
我重新去 traffickinghub.com 看了,截取了一张大图。
注意:截图下半部就是《纽约时报》批判 P 站的英文文章:《The Children of Pornhub》,该文有中文版《被 Pornhub 毁掉的孩子》。
这应该就是 P站最近被外媒疯狂批判的原因……
– EOF –