不管你对色情的立场如何,都不可能否认成人网站行业对推动网络向前发展所产生的巨大影响。从挑战浏览器的视频限制,到通过WebSocket推送广告,这样广告拦截器就不会发现它们,你必须聪明才能在网络的前沿进行创新。
最近,我有幸采访了网络上最大的成人网站PornHub的一位网络开发人员。我想了解一下这项技术,WebAPI可以如何改进,以及在成人网站上工作是什么感觉。好好享受吧!
注:中国成人玩具行业竞争非常激烈,所以有几个他们无法回答的问题,我尊重他们的需要,让他们的小把戏离背心更近了很近的时间。(注:我尊重他们的需求,不能让他们的小把戏紧贴着背心。
成人网站显然展示了大量的图形内容,在开发过程中,您是否使用了大量的占位符图片和视频,开发内容和体验距离最终产品有多远?
我们在开发网站时实际上不使用占位符!最后,重要的是代码和功能,接口是我们在这一点上非常习惯的东西。一开始肯定会有一点学习曲线,但我们很快就习惯了。
当涉及到CAM流和第三方广告脚本时,您如何在站点和功能开发过程中模仿这些重要的、动态的资源?
对于开发,播放器被分成两个组件。基本播放器实现核心功能并触发事件。开发在无尘室中完成。对于网站上的集成,我们希望运行那些第三方脚本和广告,这样我们就可以在过程中尽早发现问题。对于特殊情况,我们将与广告商合作,允许我们手动触发通常可能是随机的事件。
一个普通的页面可能至少有一个视频,GIF广告,几个CAM执行者预览,以及其他视频的缩略图。你如何衡量页面性能,如何尽可能保持页面的性能?你有什么小窍门可以分享吗?
WebPagetest私有实例用于为可用的AWS数据中心中的测试编写脚本。“我们主要使用它来查看在给定时间可能发生的情况。它还允许我们从不同的位置和供应商查看“瀑布”。
我不得不假设前端最重要和最复杂的功能是视频播放器,除了在视频之前加入广告、标记视频的高光时刻、改变视频速度等功能外,如何保持这一资产的性能、功能和稳定性?
我们有一个专门的团队严格控制视频播放器,他们的首要任务是不断监控性能和效率。为了做到这一点,我们使用了几乎所有可用的工具:浏览器、性能工具、网页测试、指标等等。我们所做的任何更新都有坚实的QA轮来保证稳定性和质量。
专属视频团队有多少人,团队前端开发者有多少人?
我要说的是,考虑到产品的规模,团队规模接近平均水平。
在从事成人网站工作期间,您看到了前端的风貌发生了怎样的变化?有哪些新的Web API让您的生活变得更轻松?
我确实看到了前端世界的每一个方面都有了很大的改进;
从纯CSS到最终使用LESS和Mixin,再到具有媒体查询和图片标签以适应不同分辨率和屏幕大小的灵活网格系统
JQuery和jQueryUI正在慢慢消失,因此我们将回到普通JS中更高效的面向对象编程。在某些情况下,这些框架也非常有趣。
我们喜欢新的IntersectionViewer API,它对于以更高效的方式加载图像非常有用。
我们也开始使用画中画API,在我们的一些页面上有浮动的视频,主要是为了获得用户对这个想法的反馈。
展望未来,是否有您希望更改、改进或甚至创建的WebAPI?
其中一些我们希望更改或改进:Beacon、WebRTC、Service Workers和Fetch:
WebRTC:如果分辨率不够大,即使对于屏幕共享,连播层也是有限的。
服务工作人员:调用Navigator.serviceWorker.register不会被任何服务工作人员的获取事件处理程序截获。
WebVR IS在过去几年一直在改进--WebVR目前的状态有多大用处,成人网站在支持VR内容方面投入了多少努力?触觉在你们网站的WebVR中有什么作用?
我们正在研究webXR以及如何最好地适应新兴的空间计算使用案例,作为最大的分发平台,我们需要支持创建者和用户想要体验我们的内容。但我们仍在探索这些新媒体的内容和平台应该是什么样子。
我们是第一个支持虚拟现实、计算机视觉和虚拟表演者的主要平台,并将继续推动新技术和开放网络。
在每个页面上都有这么多不同类型的媒体和内容,如果有的话,当谈到桌面与移动时,最大的考虑因素是什么?
功能主要受操作系统和浏览器类型的限制。当涉及到一套完全不同的访问和功能时,iOS和Android是一个完美的例子。
例如,一些iOS移动设备不允许我们在FullScreen中拥有自定义视频播放器,它们强制使用原生QuickTime播放器。当我们开发新想法时,必须考虑到这一点。另一方面,Android给了我们完全的控制权,我们可以将我们的功能推到全屏模式。
HLS中的自适应流也是另一个例子,IE和Edge在HLS流质量方面很挑剔,因为我们需要防止某些较高的质量,否则视频会不断卡顿和有伪影。
您目前使用的成人网站对浏览器的最低支持是多少?Internet Explorer会被逐步淘汰吗?
我们支持IE有很长一段时间了,但最近放弃了对任何早于IE11的支持。有了它,我们也不再使用Flash作为视频播放器。我们主要关注Chrome、Firefox和Safari。
更广泛地说,你能分享一些关于典型成人网站的堆栈吗?服务器和/或前端?您使用的是哪些库?
对于前端,我们主要运行普通的Javascript,我们正在慢慢摆脱jQuery,我们才刚刚开始使用框架,主要是Vue.js。
从局外人的角度来看,成人网站通常看起来非常相似:有很多视频缩略图,聚合的视频内容,摄像头表演者,广告。作为一个在这些网站上工作的人,成人网站的独特之处是什么?
我们非常努力地在不同的层次赋予每个品牌一些独特性;内容库、用户体验和功能集,以及许多不同的算法。
在申请和面试你现在的雇主之前,你对将来在成人网站工作有什么想法?你有没有犹豫过?如果是这样的话,你的恐惧是如何平息的呢?
它从来没有真正困扰过我,最终挑战是如此吸引人。数百万人潜在地与我从事的功能交互的想法真的很鼓舞人心。这很快就被证明是正确的,当我第一次做的东西上线时,我感到超级自豪,我确实告诉我所有的朋友去看看!色情永远不会消亡的事实也让人安心,工作稳定了!
就最终产品而言,分享你在成人网站工作可能不同于在当地的网站工作。告诉朋友、家人和熟人你在成人网站工作有什么耻辱吗?告诉别人你在成人网站工作有什么犹豫吗?
我为能在这些产品上工作而感到非常自豪,那些与我关系密切的人都知道并为之着迷。它总是一个令人惊叹的谈话、笑话和真正有趣的来源。
在成人行业以外的机构工作过,在成人网站工作的氛围有没有不同?
这里的气氛非常轻松友好。我没有注意到其他机构的工作文化有什么大的不同,除了这里的文化比我以前工作过的任何地方都要大得多。
作为一名前端开发人员,您与哪些团队合作最紧密,日常沟通方式最常见的有哪些?
我们与后端开发人员、QA测试人员和产品经理平等工作--大多数情况下,我们只是走到彼此的办公桌前交谈。如果没有,聊天(MS团队)是非常常见的。然后是电子邮件。
最后,作为一个在成人网站上工作的前端开发人员,您有什么想要分享的吗?
作为创建用户体验如此广泛使用的产品的一部分,这真的是令人兴奋的一部分。当技术推出时,我们通常处于趋势和重大变化的前沿,这让它保持了趣味性和挑战性。
我觉得我们的采访真的很有启发性。我有点惊讶他们在开发功能和设计时没有使用图片。看到PornHub继续通过WebXR、WebRTC和交叉点观察者推动网络的前沿发展,这是令人兴奋的。我也很高兴地看到,他们认为目前的WebAPI足以开始放弃jQuery。
我真希望我能从它们身上得到更具体的技术提示,特别是性能和巧妙的黑客技巧。我确信他们的源代码背后有丰富的知识需要学习!你会问什么问题?