Pornhub Web开发人员访谈



不管您对色情的态度如何,否认成人产业对互联网发展的巨大影响都是愚蠢的。 从扩展浏览器的视频播放功能到通过WebSocket绕过阻止程序显示广告,要在Internet创新的前沿发挥作用,您必须非常聪明。

最近,我很幸运地采访了世界上最大的成人网站-Pornhub的Web开发人员。

目的:了解使用Web API领域的技术和创新,当然,以及如何在Pornhub框架内实现所有这些功能。 好好享受

注意:色情行业是一个竞争激烈的环境,因此对于某些问题我无法获得答案。 我尊重开发人员保护其专业秘密的需要。

-色情网站有望显示大量的图形内容。 在开发过程中,您是否使用占位符而不是图像和视频? 最终站点的内容与您在开发过程中要处理的内容有何相似之处?

-我们几乎从不使用占位符! 对于我们来说,代码和功能很重要。 接口是我们都习惯的东西。 当然,开始时每个人都有一定的适应期,但是每个人都很快习惯了。

-对于外部客户放置的流或广告,您如何使用对您来说很重要的动态资源?

-在开发方面,播放器分为两个部分。 在主体部分,实现了主要功能和事件,即根据洁净室方法进行开发。 这样做是为了在与网站集成的情况下,当我们要运行第三方脚本和广告时,我们可以尽快识别出出现的问题。 在特殊情况下,我们可以以手动模式与广告商合作,即,我们自己启动事件,在其他情况下,事件是随机播放的。

-我认为,平均而言,任何页面至少包含一个视频,GIF格式的广告,网络摄像头的多个预览以及其他视频的公告。 您如何衡量网页效果以及如何使其尽可能有效? 告诉我们您可以分享的任何技巧。

-好吧,我们一次使用几种测量方法。

  • 播放器告诉我们视频播放性能和总体使用频率的指标。
  • 第三方RUM系统跟踪站点的整体性能。
  • 我们使用私有WebpageTest实例来测试AWS数据中心中的脚本。 这样做主要是为了查看在特定时刻可能发生的情况。 它还使我们能够评估从各个角度和供应商“落在”我们身上的数据“流”。

-我相信网站界面上最重要,最复杂的功能是视频播放器。 从广告到视频本身,标记录制的要点,更改播放速度和其他功能-如何保持整个设计的性能,功能和稳定性?

-具体来说,一个专门的团队与视频播放器一起工作,其任务包括不断监视性能和效率。 对于这项工作,我们几乎会使用所有可能的东西:浏览器工具,网页测试,各种指标等等。 不断监控我们对播放器所做的任何更新和更改,从而确保了稳定性和质量。

-这个特殊的视频团队有多少人? 你有几个前端?

-我要说-当然,鉴于我们产品的大小-团队很小。

-在研究Pornhub的过程中,您对界面进行了哪些更改? 哪些Web API使您的生活更轻松?

-在工作期间,我确实发现站点界面的各个方面都有很多改进。

  • 从最初的CSS到最后的LESS和Mixins,我们切换到了带有媒体查询和图像标签的灵活网格系统,这使得更容易适应不同的屏幕分辨率。
  • jQuery和jQueryUI逐渐变得过时,因此我们将返回香草JS中更高效的面向对象编程。 有时某些框架对我们有很大帮助。
  • 我们喜欢使用新的IntersectionObserver API,这是一个非常有用和高效的图像上传工具。
  • 我们也开始一点一点地沉迷于画中画API。 我们用它在某些页面上放置浮动视频。 但是我们现在正在这样做,主要是为了收集听众对该项目的反馈。

-如果您展望未来,是否有任何Web API想要更改,改进甚至从头开始创建

-我们想更改一些API。 这些是信标,WebRTC,服务工作者和提取。 在要点上。

  • 信标:如果iOS无法正确处理pageHide事件,则在使用iOS时会出现一些问题。
  • 提取:不显示下载进度,您不能中断请求。
  • WebRTC:如果分辨率未达到特定大小,则Simulcast图层在共享屏幕时会有限制。
  • 服务人员:Fetch事件处理程序不会拦截对navigator.serviceWorker.register的调用。

-在过去的几年中,WebVR迅速发展。 它在目前的状态下有多大用处,色情网站在支持VR内容方面付出了多大的努力? 您的WebVR部分是否支持触觉内容? 显然,“触觉”是指不仅使用VR眼镜而且还使用与视频序列同步并增强呈现效果的特殊设备的色情内容-大约每秒钟)。

“我们正在探索WebXR主题,并弄清楚如何最好地适应新兴的空间计算方案。” 此外,作为最大的内容分发平台,我们需要为内容制作者和消费者提供支持。 我们仍在寻找有关该内容在平台中的样子的答案。

我们是第一个支持虚拟现实,计算机视觉和虚拟艺术家的平台,我们将继续在网络上推广这些新技术。

-当您必须处理每个页面上如此众多的多媒体元素和内容时,您认为对于PC和移动设备而言,最重要的开发是什么?

-因此,功能主要受操作系统和浏览器类型的限制。 就功能集和访问方式的不同而言,iOS与Android的关系非常具有指示性。

例如,iOS上的某些移动设备不允许我们在全屏模式下使用自己的视频播放器,并强制QuickTime启动。 实施新功能和新想法时必须考虑这些时刻。 另一方面,Android为我们提供了完全控制权,并允许我们在全屏模式下使用所有芯片。

HLS中的自适应流式传输是另一个示例。 IE和Edge对HLS流质量要求极高。 因此,我们必须排除它们的最高图像质量设置,否则视频将不断出现口吃和散落的伪影。

-对您工作的成人网站的浏览器支持的最短期限是什么? 显然,这不仅与Pornhub本身有关,而且还与具有不同地址但属于某个资源的其他站点有关-大约每秒钟。 )您是否已停止支持Internet Explorer?

-我们很长时间以来一直支持IE,但是最近我们不再支持所有比IE11更早的版本,特别是我们不再支持视频播放器的Flash。 我们主要专注于对Chrome,Firefox和Safari的支持。

-您能告诉我们更多有关典型色情网站的信息吗? 例如,用于背面和/或正面。 您使用什么图书馆?

-我们的大多数网站都使用以下技术:

  • Nginx;
  • 的PHP
  • 的MySQL
  • Memcached和/或Redis。

如有必要,可以使用其他东西,例如Varnish,ElasticSearch,NodeJS,Go,Vertica。

为了使用接口,我们主要使用香草Javascript,逐渐摆脱jQuery,而现在尝试使用框架,例如现在在Vue.js中。

-从局外人的角度来看,所有成人网站都非常相似:很多视频缩略图,汇总的视频内容,网络摄像头模型和广告。 色情网站与开发色情网站的人有何不同? 作为开发人员,您可以命名哪些独特功能?

-我们竭尽全力为我们每个品牌提供不同层次的独特功能; 内容库,用户体验和功能集,算法差异。

-在您申请当前雇主的面试之前,您对在色情行业工作的可能性有何看法? 你有什么疑问吗? 如果是这样,您如何处理它们?

-这些问题从来没有打扰过我,最后,任务非常吸引人。 我想到我将从事具有数百万观众的项目,所有这些人都将使用我创建的功能,这确实激励了我。 我的所有期望都得到了满足。 我第一次从事真正引以为傲的工作! 是的,我告诉所有朋友我现在在哪里工作! 色情片永不消亡也很重要,这给了我一种稳定的感觉,这非常好。

-至于最终产品,您在色情网站上工作的故事可能与有关在本地网络工作室工作的故事有所不同。 在告诉朋友,亲戚和熟人的工作过程中是否存在任何污名化? 您是否有疑问是否值得告诉别人您在做什么?

-我为自己正在开发这些产品而感到自豪,而那些生活在我身边的人知道我的位置并钦佩它。 我的作品始终是令人兴奋的对话和笑话的精彩话题来源。

在色情行业内部和外部工作之间有区别吗? 这里的气氛非常轻松友好。 我目前的工作地点和其他公司之间在工作文化方面没有发现任何重大差异。 除了这里(在Pornhub中)以外,这里的文化比我以前工作过的地方要高得多。

-作为前端开发人员,您与哪些团队互动最紧密? 您在团队内部日常互动的主要渠道是什么?

-我们与后端团队以及测试人员或产品经理保持同等联系。 在大多数情况下,我们只是互相交谈。 对于电子通讯,我们主要使用MS Teams聊天。 好吧,当然还有电子邮件。

-最后,作为在成人网站上工作的前端供应商,您想分享什么吗?

-成为在用户中创造如此受欢迎的产品的团队的一员,真是令人兴奋。 通常,我们站在技术时尚的最前沿,并且率先遇到一些根本性的新技术。 这使我的工作既充满挑战又非常有趣。

面试结束



来自作者:
我发现这次采访真的很有启发性。 我对团队在功能和设计的开发过程中不使用占位符感到惊讶。 很高兴看到Pornhub在与WebXR,WebRTC和Intersection Observer的合作中继续处于互联网的最前沿。 我也很高兴他们认为当前的Web API集足以开始完全拒绝jQuery。

我真的想获得有关技术问题和任何提示的更具体的答案。 例如,在提高性能和某些芯片方面。 我敢肯定,在Pornhub中,有大量有用的信息! 您会问什么问题?

Source: https://habr.com/ru/post/zh-CN471034/


All Articles