Entretien avec Pornhub Web Developer



Quelle que soit votre attitude vis-à-vis de la pornographie, il serait stupide de nier l'énorme impact de l'industrie des sites pour adultes sur le développement d'Internet. De l'extension des capacités des navigateurs en termes de lecture vidéo à la diffusion d'annonces via les bloqueurs WebSocket, afin de travailler à la pointe de l'innovation Internet, vous devez être extrêmement intelligent.

Récemment, j'ai eu la chance d'interviewer le développeur Web du plus grand site pour adultes au monde - Pornhub.

Objectif: en savoir plus sur les technologies et les innovations dans le domaine du travail avec les API web et, bien sûr, comment tout cela est mis en œuvre dans le cadre de Pornhub. Profitez-en!

Remarque: l'industrie du porno est un environnement hautement concurrentiel, donc pour certaines questions, je n'ai pas pu obtenir de réponse. Je respecte la nécessité pour les développeurs de protéger leurs secrets professionnels.

- Les sites pornographiques devraient afficher une énorme quantité de contenu graphique. Pendant le développement, utilisez-vous des espaces réservés au lieu d'images et de vidéos? Dans quelle mesure le contenu du site final est-il similaire à ce que vous devez gérer pendant le développement?

- Nous n'utilisons presque jamais d'espaces réservés! Pour nous, le code et la fonctionnalité sont importants. Une interface est une chose à laquelle nous sommes tous habitués. Bien sûr, tout le monde au début a une certaine période d'adaptation, mais tout le monde s'habitue assez rapidement.

- En ce qui concerne les flux ou la publicité placés par des clients externes, comment utilisez-vous ces ressources dynamiques qui sont importantes pour vous?

- Côté développement, le joueur est divisé en deux parties. Du côté de la partie principale, les principales fonctions et événements sont implémentés, c'est-à-dire que le développement est effectué selon la méthodologie de la salle blanche. Ceci est fait de sorte qu'en cas d'intégration avec le site, lorsque nous voulons exécuter des scripts et des publicités tiers, nous pouvons identifier les problèmes qui sont survenus le plus rapidement possible. Dans des cas particuliers, nous pouvons travailler avec des annonceurs en mode manuel, c'est-à-dire lancer nos propres événements, qui dans d'autres cas sont lus de manière aléatoire.

- En moyenne, comme je pense, toute page contient au moins une vidéo, de la publicité au format GIF, plusieurs aperçus de webcams et des annonces d'autres vidéos. Comment mesurez-vous les performances des pages et comment les rendez-vous aussi efficaces que possible? Parlez-nous de toute astuce que vous pouvez partager.

- Eh bien, nous utilisons plusieurs méthodes de mesure à la fois.

  • Notre lecteur nous donne des mesures des performances de lecture vidéo et de la fréquence globale d'utilisation.
  • Un système RUM tiers suit les performances globales du site.
  • Nous utilisons des instances WebpageTest privées pour tester des scripts dans les centres de données AWS. Cela se fait principalement pour voir ce qui peut arriver à un moment particulier. Il nous permet également d'évaluer le "flux" de données qui "nous tombe" sur différents points et auprès de fournisseurs.

- Je pense que la fonction la plus importante et la plus complexe de l'interface du site est un lecteur vidéo. De la publicité à la vidéo elle-même, en marquant les principaux points de l'enregistrement, en modifiant la vitesse de lecture et d'autres fonctions - comment maintenez-vous les performances, la fonctionnalité et la stabilité de l'ensemble de cette conception?

- Concrètement, une équipe dédiée travaille avec un lecteur vidéo dont les tâches incluent un suivi constant des performances et de l'efficacité. Pour ce travail, nous utilisons presque tout ce que nous pouvons: outils de navigation, tests de pages Web, diverses mesures, etc. La stabilité et la qualité sont garanties grâce à une surveillance constante de toutes les mises à jour et modifications que nous apportons au lecteur.

- Et combien de personnes sont dans cette équipe vidéo spéciale? Combien de frontends avez-vous?

- Je dirais - bien sûr, compte tenu de la taille de notre produit - que l'équipe est petite.

- Lors de votre travail sur Pornhub, quelles modifications avez-vous apportées à l'interface? Quelles API Web vous ont facilité la vie?

- Au cours de mon travail, j'ai certainement trouvé de nombreuses améliorations à tous les aspects de l'interface du site.

  • Nous sommes passés de CSS à, enfin, LESS et Mixins, passés à un système de grille flexible avec des requêtes multimédias et des balises d'image, ce qui facilite l'adaptation à différentes résolutions d'écran.
  • jQuery et jQueryUI deviennent obsolètes, nous revenons donc à une programmation orientée objet plus efficace dans vanilla JS. Parfois, certains cadres nous aident beaucoup.
  • Nous aimons travailler avec la nouvelle API IntersectionObserver, un outil de téléchargement d'images très utile et efficace.
  • Nous avons également commencé à nous adonner petit à petit à l'API Picture-in-Picture. Nous l'utilisons pour placer des vidéos flottantes sur certaines pages. Mais nous le faisons maintenant, principalement afin de recueillir les commentaires du public sur cette entreprise.

- Si vous regardez vers l'avenir, y a-t-il des API Web que vous aimeriez changer, améliorer ou même créer à partir de zéro ?

- Nous aimerions changer certaines API. Il s'agit de Beacon, WebRTC, Service Workers et Fetch. Plus loin sur les points.

  • Beacon: Il existe certains problèmes lors de l'utilisation d'iOS lorsqu'il ne gère pas correctement les événements pageHide.
  • Récupérer: la progression du téléchargement ne s'affiche pas et vous ne pouvez pas interrompre la demande.
  • WebRTC: les couches Simulcast ont des limites lors du partage de l'écran, si la résolution n'atteint pas une certaine taille.
  • Travailleurs de service: L'appel à navigator.serviceWorker.register n'est pas intercepté par les gestionnaires d'événements Fetch.

- Au cours des dernières années, WebVR connaît une croissance rapide. Quelle est son utilité dans son état actuel et combien d'efforts les sites pornographiques mettent-ils en œuvre pour soutenir le contenu VR? Votre section WebVR prend-elle en charge le contenu Haptic? ( Apparemment, «haptique» signifie du contenu porno qui utilise non seulement des lunettes VR, mais aussi des appareils spéciaux qui se synchronisent avec la séquence vidéo et améliorent l'effet de présence - environ Per. )

«Nous explorons le thème WebXR et cherchons à nous adapter au mieux aux nouveaux scénarios de calcul spatial.» En outre, en tant que plus grande plate-forme de distribution de contenu, nous devons fournir un soutien aux créateurs de contenu et aux consommateurs. Nous sommes toujours en train de trouver la réponse à ce que devrait être ce contenu au sein de la plateforme.

Nous avons été la première plateforme à prendre en charge la réalité virtuelle, la vision par ordinateur et les artistes virtuels, et nous continuerons de promouvoir ces nouvelles technologies sur le réseau.

- Selon vous, quelle est la chose la plus importante dans le développement pour les PC et les appareils mobiles, quand vous devez gérer autant d'éléments multimédias et de contenu sur chaque page?

- En tant que tel, la fonctionnalité est limitée principalement par le système d'exploitation et le type de navigateur. La situation avec iOS contre Android est extrêmement révélatrice en termes de différences entre les ensembles de fonctionnalités et les accès.

Par exemple, certains appareils mobiles sur iOS ne nous permettent pas d'utiliser notre propre lecteur vidéo en mode plein écran et de forcer QuickTime à démarrer. Ces moments doivent être pris en compte lors de la mise en œuvre de nouvelles fonctionnalités et idées. D'un autre côté, Android nous donne un contrôle total et nous permet d'utiliser toutes nos puces en mode plein écran.

Le streaming adaptatif dans HLS en est un autre exemple. IE et Edge sont extrêmement exigeants sur la qualité de diffusion HLS. Par conséquent, nous devons exclure les paramètres de qualité d'image les plus élevés pour eux, sinon la vidéo sera constamment bégayée et dispersée avec des artefacts.

- Quelle est la période minimale de prise en charge du navigateur pour les sites pour adultes sur lesquels vous travaillez? ( Apparemment, cela ne concerne pas seulement Pornhub lui-même, mais aussi d'autres sites qui ont des adresses différentes, mais appartiennent à une ressource - environ Per. ) Avez-vous déjà arrêté de prendre en charge Internet Explorer?

- Nous avons pris en charge IE pendant très longtemps, mais récemment, nous avons cessé de prendre en charge tout ce qui est antérieur à IE11, et spécifiquement avec lui, nous avons cessé de prendre en charge Flash pour le lecteur vidéo. Nous nous concentrons principalement sur la prise en charge de Chrome, Firefox et Safari.

- Pouvez-vous nous en dire plus sur la pile d'un site porno typique? Par exemple, pour un dos et / ou un devant. Quelles bibliothèques utilisez-vous?

- La plupart de nos sites utilisent les technologies suivantes:

  • Nginx;
  • PHP
  • MySQL
  • Memcached et / ou Redis.

Si nécessaire, quelque chose d'autre est utilisé, par exemple, Vernis, ElasticSearch, NodeJS, Go, Vertica.

Pour travailler avec des interfaces, nous utilisons principalement vanilla Javascript, nous débarrassons progressivement de jQuery et essayons simplement des frameworks, par exemple, maintenant dans Vue.js.

- Du point de vue d'un étranger, tous les sites pour adultes sont très similaires: beaucoup de miniatures vidéo, de contenu vidéo agrégé, de modèles de webcam et de publicité. Et en quoi les sites pornographiques diffèrent-ils pour ceux qui les développent? Quelles fonctionnalités uniques pouvez-vous nommer en tant que développeur?

- Nous nous efforçons de donner à chacune de nos marques ses propres caractéristiques uniques à différents niveaux; bibliothèque de contenu, UX et jeux de fonctionnalités, différences dans les algorithmes.

- Avant de postuler pour un entretien avec votre employeur actuel, qu'avez-vous pensé de la possibilité de travailler dans l'industrie du porno? Avez-vous eu des doutes? Si oui, comment les avez-vous traités?

- Ces questions ne m'ont jamais dérangé, au final, les tâches étaient très attractives. La pensée que je travaillerai sur des projets avec un public de plusieurs millions de personnes, que toutes ces personnes utiliseront les fonctions que j'ai créées, m'a vraiment motivé. Et toutes mes attentes ont été satisfaites. La première fois que j'ai travaillé sur quelque chose de vraiment fier! Oui, j'ai dit à tous mes amis où je travaille maintenant! Il est également important que le porno ne meure jamais, ce qui me donne un sentiment de stabilité, ce qui est très bien.

- Quant à votre produit final, l'histoire sur laquelle vous travaillez sur des sites pornographiques peut différer de l'histoire sur le travail dans un studio Web local. Y a-t-il une sorte de stigmatisation dans le processus de dire à vos amis, parents et connaissances où vous travaillez? Avez-vous des doutes sur la pertinence de dire aux gens ce que vous faites?

- Je suis très fier de travailler sur ces produits, et ceux qui m'entourent dans la vie connaissent ma position et l'admirent. Mon travail est toujours une source de sujets incroyables pour des conversations et des blagues passionnantes.

Y a-t-il une différence entre travailler à l'intérieur et à l'extérieur de l'industrie du porno? L'ambiance y est très détendue et conviviale. Je ne constate aucune différence majeure en termes de culture de travail entre mon lieu de travail actuel et les autres entreprises. Sauf qu'ici (à Pornhub) la culture est nettement plus élevée que dans les endroits où je travaillais auparavant.

- En tant que développeur front-end, avec quelles équipes interagissez-vous le plus étroitement? Quels sont vos principaux canaux d'interaction quotidienne au sein de l'équipe?

- Nous sommes également en contact avec l'équipe back-end et les testeurs ou chefs de produit. La plupart du temps, nous nous rapprochons et discutons. Pour la communication électronique, nous utilisons principalement le chat MS Teams. Eh bien et bien sûr e-mail.

- Et enfin, y a-t-il quelque chose que vous aimeriez partager en tant que fournisseur frontal qui fonctionne sur des sites pour adultes?

- Faire partie de l'équipe qui crée un produit si populaire auprès des utilisateurs est vraiment passionnant. En règle générale, nous sommes à la pointe de la mode technologique et les premiers à rencontrer des technologies fondamentalement nouvelles. Cela rend mon travail à la fois stimulant et extrêmement intéressant.

Fin de l'entretien



De l'auteur:
Je trouve cette interview vraiment instructive. J'ai été un peu surpris que l'équipe n'utilise pas d'espaces réservés lors du développement des fonctionnalités et du design. Il est bon de voir Pornhub continuer à être à la pointe de l'Internet en termes de collaboration avec WebXR, WebRTC et Intersection Observer. J'étais également heureux qu'ils considèrent que l'ensemble actuel d'API Web soit suffisant pour lancer un rejet complet de jQuery.

Je voulais vraiment obtenir des réponses plus précises sur des questions techniques et des conseils. Par exemple, en termes d'amélioration des performances et de certaines puces. Je suis sûr que dans les sortes de Pornhub il y a une énorme quantité d'informations utiles! Quelles questions poseriez-vous?

Source: https://habr.com/ru/post/fr471034/


All Articles