
Unabhängig von Ihrer Einstellung zur Pornografie wäre es dumm, die enormen Auswirkungen der Website-Website für Erwachsene auf die Entwicklung des Internets zu leugnen. Von der Erweiterung der Funktionen von Browsern in Bezug auf die Videowiedergabe bis zur Anzeige von Anzeigen über WebSocket unter Umgehung von Blockern müssen Sie äußerst intelligent sein, um an der Spitze der Internetinnovation zu arbeiten.
Vor kurzem hatte ich das Glück, den Webentwickler der weltweit größten Website für Erwachsene - Pornhub - zu interviewen.
Zweck: Erfahren Sie mehr über Technologien und Innovationen im Bereich der Arbeit mit Web-APIs und natürlich darüber, wie all dies im Rahmen von Pornhub implementiert wird. Genieße es!
Hinweis: Die Pornoindustrie ist ein hart umkämpftes Umfeld, daher konnte ich auf einige Fragen keine Antwort bekommen. Ich respektiere die Notwendigkeit für Entwickler, ihre Geschäftsgeheimnisse zu schützen.- Von Pornoseiten wird erwartet, dass sie eine große Menge an grafischen Inhalten anzeigen. Verwenden Sie während der Entwicklung Platzhalter anstelle von Bildern und Videos? Wie ähnlich ist der Inhalt der endgültigen Website dem, mit dem Sie sich während der Entwicklung befassen müssen?- Wir verwenden fast nie Platzhalter! Code und Funktionalität sind für uns wichtig. Eine Schnittstelle ist etwas, an das wir alle gewöhnt sind. Natürlich hat jeder am Anfang eine gewisse Anpassungsphase, aber jeder gewöhnt sich ziemlich schnell daran.
- Wie nutzen Sie solche dynamischen Ressourcen, die für Sie wichtig sind, wenn es um Streams oder Werbung von externen Kunden geht?- Auf der Entwicklungsseite ist der Spieler in zwei Teile geteilt. Auf der Seite des Hauptteils werden die Hauptfunktionen und Ereignisse implementiert, dh die Entwicklung wird gemäß der Reinraummethode durchgeführt. Dies geschieht, damit wir bei der Integration in die Website, wenn wir Skripte und Anzeigen von Drittanbietern schalten möchten, die aufgetretenen Probleme so schnell wie möglich identifizieren können. In besonderen Fällen können wir mit Werbetreibenden im manuellen Modus arbeiten, dh Ereignisse selbst starten, die in anderen Fällen zufällig abgespielt werden.
- Wie ich denke, enthält jede Seite im Durchschnitt mindestens ein Video, Werbung im GIF-Format, mehrere Vorschauen von Webcams und Ankündigungen anderer Videos. Wie messen Sie die Seitenleistung und wie machen Sie sie so effektiv wie möglich? Erzählen Sie uns von jedem Trick, den Sie teilen können.- Nun, wir verwenden mehrere Messmethoden gleichzeitig.
- Unser Player gibt Auskunft über die Leistung der Videowiedergabe und die allgemeine Nutzungshäufigkeit.
- Ein RUM-System eines Drittanbieters verfolgt die Gesamtleistung der Site.
- Wir verwenden private WebpageTest-Instanzen, um Skripte in AWS-Rechenzentren zu testen. Dies geschieht hauptsächlich, um zu sehen, was zu einem bestimmten Zeitpunkt passieren kann. Es ermöglicht uns auch, den "Datenfluss" zu bewerten, der von verschiedenen Punkten und von Lieferanten auf uns "fällt".
- Ich glaube, dass die wichtigste und komplexeste Funktion der Benutzeroberfläche auf der Website ein Videoplayer ist. Von der Werbung bis zum Video selbst, Markieren der Hauptpunkte der Aufnahme, Ändern der Wiedergabegeschwindigkeit und anderer Funktionen - wie erhalten Sie die Leistung, Funktionalität und Stabilität dieses gesamten Designs?- Insbesondere arbeitet ein engagiertes Team mit einem Videoplayer, zu dessen Aufgaben die ständige Überwachung von Leistung und Effizienz gehört. Für diese Arbeit verwenden wir fast alles, was wir können: Browser-Tools, Webseitentests, verschiedene Metriken und so weiter. Stabilität und Qualität werden durch die ständige Überwachung aller Aktualisierungen und Änderungen, die wir am Player vornehmen, garantiert.
- Und wie viele Leute sind in diesem speziellen Videoteam? Wie viele Frontendors haben Sie?- Angesichts der Größe unseres Produkts würde ich natürlich sagen, dass das Team klein ist.
- Welche Änderungen haben Sie während Ihrer Arbeit an Pornhub an der Benutzeroberfläche vorgenommen? Welche Web-APIs haben Ihnen das Leben erleichtert?- Während meiner Arbeit habe ich definitiv viele Verbesserungen an jedem Aspekt der Site-Oberfläche festgestellt.
- Wir sind von CSS zu LESS und Mixins übergegangen und haben auf ein flexibles Rastersystem mit Medienabfragen und Bild-Tags umgestellt, das die Anpassung an unterschiedliche Bildschirmauflösungen erleichtert.
- jQuery und jQueryUI werden allmählich veraltet, sodass wir zu einer effizienteren objektorientierten Programmierung in Vanilla JS zurückkehren. Manchmal helfen uns einige Frameworks sehr.
- Wir arbeiten gerne mit der neuen IntersectionObserver-API, einem sehr nützlichen und effizienten Tool zum Hochladen von Bildern.
- Wir haben auch begonnen, uns nach und nach mit der Picture-in-Picture-API zu beschäftigen. Wir verwenden es, um schwebende Videos auf einigen Seiten zu platzieren. Aber wir tun es jetzt hauptsächlich, um Feedback vom Publikum zu diesem Unternehmen zu erhalten.
- Wenn Sie in die Zukunft schauen, gibt es Web-APIs, die Sie ändern, verbessern oder sogar von Grund auf neu erstellen möchten ?
- Wir möchten einige APIs ändern. Dies sind Beacon, WebRTC, Service Worker und Fetch. Weiter zu den Punkten.
- Beacon: Bei der Arbeit mit iOS treten einige Probleme auf, wenn pageHide-Ereignisse nicht korrekt verarbeitet werden.
- Abrufen: Der Download-Fortschritt wird nicht angezeigt und Sie können die Anforderung nicht unterbrechen.
- WebRTC: Simulcast-Ebenen haben Einschränkungen bei der Freigabe des Bildschirms, wenn die Auflösung eine bestimmte Größe nicht erreicht.
- Servicemitarbeiter: Das Aufrufen von navigator.serviceWorker.register wird von Fetch-Ereignishandlern nicht abgefangen.
- In den letzten Jahren ist WebVR rasant gewachsen. Wie nützlich ist es in seinem aktuellen Zustand und wie viel Aufwand investieren Pornoseiten in die Unterstützung von VR-Inhalten? Unterstützt Ihr WebVR-Bereich haptische Inhalte? ( Anscheinend bedeutet "haptisch" Pornoinhalte, bei denen nicht nur VR-Brillen verwendet werden, sondern auch spezielle Geräte, die mit der Videosequenz synchronisiert werden und den Effekt der Präsenz verstärken - ca. Per. )"Wir untersuchen das WebXR-Thema und finden heraus, wie wir uns am besten an neue räumliche Computerszenarien anpassen können." Darüber hinaus müssen wir als größte Plattform für die Verbreitung von Inhalten die Hersteller und Verbraucher von Inhalten unterstützen. Wir sind noch dabei, die Antwort darauf zu finden, wie dieser Inhalt innerhalb der Plattform aussehen soll.
Wir waren die erste Plattform, die Virtual Reality, Computer Vision und virtuelle Künstler unterstützte, und wir werden diese neuen Technologien weiterhin im Netzwerk fördern.
- Was ist Ihrer Meinung nach das Wichtigste in der Entwicklung für PC und mobile Geräte, wenn Sie auf jeder Seite mit so vielen Multimedia-Elementen und Inhalten umgehen müssen?- Daher ist die Funktionalität hauptsächlich durch das Betriebssystem und den Browsertyp eingeschränkt. Die Situation mit iOS gegen Android ist äußerst bezeichnend dafür, wie sich Funktionssätze und Zugriffe unterscheiden können.
Beispielsweise erlauben einige mobile Geräte unter iOS nicht, dass wir unseren eigenen Videoplayer im Vollbildmodus verwenden und QuickTime zum Starten zwingen. Solche Momente müssen bei der Implementierung neuer Funktionen und Ideen berücksichtigt werden. Auf der anderen Seite gibt uns Android die volle Kontrolle und ermöglicht es uns, alle unsere Chips im Vollbildmodus zu verwenden.
Adaptives Streaming in HLS ist ein weiteres Beispiel. IE und Edge stellen hohe Anforderungen an die HLS-Streaming-Qualität. Daher müssen wir die höchsten Einstellungen für die Bildqualität ausschließen, da das Video sonst ständig mit Artefakten stottert und verstreut wird.
- Was ist die Mindestdauer für die Browserunterstützung für Websites für Erwachsene, an denen Sie arbeiten? ( Anscheinend geht es hier nicht nur um Pornhub selbst, sondern auch um andere Websites, die andere Adressen haben, aber zu einer Ressource gehören - ca. Per. ) Haben Sie die Unterstützung von Internet Explorer bereits eingestellt?- Wir haben IE sehr lange unterstützt, aber kürzlich haben wir aufgehört, alles zu unterstützen, was älter als IE11 ist, und speziell damit haben wir aufgehört, Flash für den Videoplayer zu unterstützen. Wir konzentrieren uns hauptsächlich auf die Unterstützung von Chrome, Firefox und Safari.
- Kannst du uns mehr über den Stapel einer typischen Pornoseite erzählen? Zum Beispiel für eine Rückseite und / oder Vorderseite. Welche Bibliotheken verwenden Sie?- Die meisten unserer Websites verwenden die folgenden Technologien:
- Nginx;
- PHP
- MySQL
- Memcached und / oder Redis.
Bei Bedarf wird etwas anderes verwendet, z. B. Lack, ElasticSearch, NodeJS, Go, Vertica.
Um mit Schnittstellen zu arbeiten, verwenden wir hauptsächlich Vanille-Javascript, entfernen nach und nach jQuery und probieren einfach Frameworks aus, zum Beispiel jetzt in Vue.js.
- Aus der Sicht eines Außenstehenden sind alle Websites für Erwachsene sehr ähnlich: viele Video-Miniaturansichten, aggregierte Videoinhalte, Webcam-Modelle und Werbung. Und wie unterscheiden sich Pornoseiten für diejenigen, die sie entwickeln? Welche einzigartigen Funktionen können Sie als Entwickler nennen?- Wir bemühen uns, jeder unserer Marken auf verschiedenen Ebenen ihre eigenen Besonderheiten zu verleihen. Inhaltsbibliothek, UX und Funktionssätze, Unterschiede in den Algorithmen.
- Was hielten Sie von der Möglichkeit, in der Pornoindustrie zu arbeiten, bevor Sie sich für ein Vorstellungsgespräch bei Ihrem derzeitigen Arbeitgeber bewerben? Hattest du irgendwelche Zweifel? Wenn ja, wie sind Sie damit umgegangen?- Diese Fragen haben mich nie gestört, am Ende waren die Aufgaben sehr attraktiv. Der Gedanke, dass ich an Projekten mit einem Millionenpublikum arbeiten werde, dass all diese Leute die von mir erstellten Funktionen nutzen werden, hat mich wirklich motiviert. Und alle meine Erwartungen wurden erfüllt. Das erste Mal habe ich an etwas gearbeitet, das wirklich stolz war! Ja, ich habe allen meinen Freunden gesagt, wo ich jetzt arbeite! Es ist auch wichtig, dass Pornos niemals sterben, was mir ein Gefühl der Stabilität gibt, was sehr gut ist.
- Was Ihr Endprodukt betrifft, kann sich die Geschichte, die Sie auf Pornoseiten bearbeiten, von der Geschichte über die Arbeit in einem lokalen Webstudio unterscheiden. Gibt es irgendeine Art von Stigmatisierung, wenn Sie Freunden, Verwandten und Bekannten mitteilen, wo Sie arbeiten? Haben Sie Zweifel, ob es sich lohnt, den Leuten zu sagen, was Sie tun?- Ich bin sehr stolz darauf, dass ich an diesen Produkten arbeite, und diejenigen, die mich im Leben umgeben, kennen meine Position und bewundern sie. Meine Arbeit ist immer eine Quelle erstaunlicher Themen für spannende Gespräche und Witze.
Gibt es einen Unterschied zwischen der Arbeit innerhalb und außerhalb der Pornoindustrie? Die Atmosphäre hier ist sehr entspannt und freundlich. Ich bemerke keine wesentlichen Unterschiede in Bezug auf die Arbeitskultur zwischen meinem derzeitigen Arbeitsplatz und anderen Unternehmen. Abgesehen davon, dass hier (in Pornhub) die Kultur deutlich höher ist als an Orten, an denen ich zuvor gearbeitet habe.
- Mit welchen Teams interagieren Sie als Front-End-Entwickler am engsten? Was sind Ihre Hauptkanäle für die tägliche Interaktion im Team?- Wir stehen gleichermaßen mit dem Backend-Team und den Testern oder Produktmanagern in Kontakt. Die meiste Zeit gehen wir einfach aufeinander zu und reden. Für die elektronische Kommunikation verwenden wir hauptsächlich den Chat von MS Teams. Na ja und natürlich per E-Mail.
- Und schließlich, gibt es etwas, das Sie als Front-End-Anbieter teilen möchten, das auf Websites für Erwachsene funktioniert?- Es ist wirklich aufregend, Teil des Teams zu sein, das bei Anwendern ein so beliebtes Produkt entwickelt. In der Regel stehen wir an der Spitze der technologischen Mode und sind die ersten, die auf grundlegend neue Technologien stoßen. Dies macht meine Arbeit sowohl herausfordernd als auch äußerst interessant.
Ende des Interviews
Vom Autor:
Ich finde dieses Interview sehr lehrreich. Ich war ein wenig überrascht, dass das Team bei der Entwicklung von Funktionen und Design keine Platzhalter verwendet. Es ist gut zu sehen, dass Pornhub in Bezug auf die Zusammenarbeit mit WebXR, WebRTC und Intersection Observer weiterhin an der Spitze des Internets steht. Ich war auch erfreut darüber, dass die aktuellen Web-APIs als ausreichend angesehen wurden, um eine vollständige Ablehnung von jQuery zu starten.
Ich wollte unbedingt genauere Antworten auf technische Fragen und Tipps erhalten. Zum Beispiel in Bezug auf die Verbesserung der Leistung und einiger Chips. Ich bin mir sicher, dass es in Pornhub-Sorten eine Menge nützlicher Informationen gibt! Welche Fragen würden Sie stellen?