当前位置: 首页 > 后端技术 > PHP

成人网站Pornhub技术栈首次公开

时间:2023-03-29 17:42:46 PHP

介绍:成人网站对Web发展的推动作用是无可辩驳的。从突破浏览器视频能力的限制,到使用WebSocket推送广告(防止被广告拦截器屏蔽),你必须不断想出巧妙的方法,让自己始终走在网络技术创新的前沿。成人网站在推动网络发展方面的作用是不可否认的。从突破浏览器视频能力的限制,到使用WebSocket推送广告(防止被广告拦截器屏蔽),你必须不断想出巧妙的方法,让自己始终走在网络技术创新的前沿。最近有幸采访了大型成人网站Pornhub的一位web开发工程师,了解了相关开发技术,WebAPI的改进,以及作为一名成人网站开发工程师是怎样一种体验。注:因为成人网站这个行业竞争非常激烈,有些问题我理解他们无法回答。成人网站需要显示大量图片内容。在开发过程中,您是否使用了大量的图像和视频占位符?开发过程中的内容体验与最终产品差距大吗?事实上,我们在开发这个网站时并没有使用占位符!说到底,代码和功能才是最重要的。至于界面,这时候我们已经很熟悉了。一开始有点困难,但我们很快就习惯了。你们在开发过程中是如何模拟直播视频流和第三方广告脚本的?它们都是重要的资源。播放器分为两个组件,基础组件实现核心功能,用于触发事件。开发是单独做的,集成的时候需要用到第三方脚本和广告,这样可以及早发现问题。对于某些特殊情况,我们会与广告商合作,手动触发一些随机事件。通常页面上至少会有一个视频、一些GIF广告、一些实时预览和其他视频的缩略图。您如何衡量页面性能?以及如何最大化页面的性能?>我们使用多种评估系统。**1。播放器将视频播放性能和用户播放状态发送给我们;2、我们使用第三方RUM系统;3.我们使用WebpageTest,这样我们就可以知道在某个时间段内发生了什么。**我假设播放器是前端最重要和最复杂的功能之一。在视频前插入广告、标记视频关键部分、改变播放速度等。您如何维护播放器的性能、功能和稳定性?我们有一个专门负责球员发展的团队,他们的首要任务是持续监控球员的表现。我们使用了所有可用的工具:浏览器性能工具、WebpageTest、性能指标等。每次发布更新之前,我们都会进行一轮严格的QA以确保稳定性和质量。视频团队有多少专门的开发人员?有多少前端开发人员?我只能说,如果从整个产品的规模来看,我们的团队规模算是中等的。在您从事成人Web开发期间,您在前端看到了哪些发展?哪些新的WebAPI对您有很大帮助?我在很多方面看到了前端技术的进步。1.从使用纯CSS到使用LESS和Mixin,再到使用灵活的网格系统和图片标签来适应不同的分辨率和屏幕尺寸;2、jQuery和jQueryUI逐渐淡出了我们的视线,我们又回到了更加面向对象的PureJavaScript编程。一些框架在某些场景中也起到了非常有趣的作用;3.我们喜欢新的IntersectionObserverAPI,它对于加载图像非常高效;4.我们还使用了画中画API让视频在页面上浮动,但仍在征求用户对这个想法的反馈。展望未来,您是否希望更改和改进任何WebAPI?还是新的WebAPI?>我们希望这些API能够改变或改进:Beacon、WebRTC、ServiceWorker和Fetch。1.Beacon:在iOS上存在一些问题,pageHide事件没有很好的支持;2.Fetch:没有下载进度,无法拦截请求;3.WebRTC:直播时,如果分辨率不够大,会有一些限制;4、ServiceWorker:调用navigator.serviceWorker.register不会被ServiceWorker的Fetch事件处理器拦截。WebVR在过去几年中有所改进。到目前为止,它的效果如何?成人网站将在多大程度上支持VR内容?Pornhub的WebVR是否涉及触觉?我们正在研究如何在沉浸式空间场景中应用WebXR。作为最大的内容分发平台,我们为用户提供按照自己的方式体验网站内容的机会非常重要。但我们仍在探索使用这些新媒体时内容和平台应该是什么样子。我们是支持VR、计算机视觉和虚拟流媒体的主要平台,我们将继续推动新技术的发展。每个页面上有不同类型的媒体和内容,桌面或移动设备的首要考虑因素是什么?我们主要考虑操作系统和浏览器的功能限制。例如,iOS和Android具有非常不同的访问权限和功能。某些iOS设备不允许在全屏模式下使用自定义播放器,因此必须使用本机QuickTime播放器。另一方面,Android让我们可以完全控制全屏使用我们的广播。另一个例子是HLS视频流。IE和Edge对HLS视频流的质量非常挑剔,所以我们需要控制好视频的质量,否则在播放的时候会断断续续或者重影。Pornhub目前支持的最低浏览器版本是多少?现在还支持IE吗?我们长期以来一直支持IE,但最近停止支持IE11之前的版本。此外,我们已停止支持Flash播放器。我们目前主要支持Chrome、Firefox和Safari。**可以分享一下Pornhub的技术栈吗?从服务器端到前端,你用了哪些库?基本上,我们使用这些东西:**Nginx;PHP;数据库;内存缓存/Redis。其他技术包括Varnish、ElasticSearch、NodeJS、Go语言、Vertica。在前端,我们主要使用纯JavaScript。我们正在逐步淘汰jQuery并开始使用Vue.js等框架。在外行人看来,成人网站的页面一般充斥着各种视频缩略图、视频、直播和广告。从开发人员的角度来看,是什么让成人网站与众不同?我们试图让每个品牌在一定程度上都具有独特性,有不同的内容、界面体验和功能,并使用许多不同的算法。你在接受Pornhub采访时是怎么想的?你有没有犹豫过?如果是这样,你是如何摆脱这种情绪的?我并没有觉得这次挑战有什么不妥,毕竟它对我来说很有吸引力。想到数百万人将使用我开发的东西,我很兴奋。这个想法很快就得到了验证,当我开发的功能第一次上线时,我感到非常自豪,于是我让我的朋友也来看看!成人网站永远不会消亡,它们为我们提供了稳定的工作来源。开发成人网站可能不同于开发普通网站。当您告诉您的朋友、家人和熟人您开发了一个成人网站时,您会感到羞耻吗?你会犹豫告诉他们这个吗?我为自己开发的东西感到自豪,我周围的人都知道并喜欢它们。这也成了我们的饭后谈话,非常有趣。你在其他地方也开发过其他网站,Pornhub的工作环境有什么不同吗?这里的气氛非常轻松友好,我觉得和其他地方没有什么不同。作为前端开发者,你需要和哪些团队紧密合作?你通常使用什么沟通方式?我们需要与后端开发人员、QA和产品经理打交道。大多数时候,我们到办公桌前讨论问题,然后是聊天(MicrosoftTeams),然后是电子邮件。最后,作为成人网站的开发者,您还有什么想分享的吗?我很高兴能够参与到这个拥有如此众多用户的产品的开发中。我们处于技术发展的最前沿,这使一切都变得有趣和具有挑战性。后记这次采访很有启发性。我很惊讶他们在开发时没有使用图像。Pornhub处于网络技术的前沿——WebXR、WebRTC和IntersectionObserverAPI。我也很高兴看到他们开始逐步淘汰jQuery,因为WebAPI现在非常棒。我很想从他那里挖掘更多的技术和性能细节,我相信他们的源代码中有很多值得学习的地方。如果是你,你会想问什么问题?阅读原文,了解更多幕后技术:https://developer.aliyun.com/...