
Independientemente de su actitud hacia la pornografía, sería una tontería negar el enorme impacto de la industria de los sitios para adultos en el desarrollo de Internet. Desde expandir las capacidades de los navegadores en términos de reproducción de video hasta mostrar anuncios a través de WebSocket sin pasar por los bloqueadores, para trabajar a la vanguardia de la innovación en Internet, debe ser extremadamente inteligente.
Recientemente tuve la suerte de entrevistar al desarrollador web del sitio para adultos más grande del mundo: Pornhub.
Propósito: aprender sobre tecnologías e innovaciones en el campo de trabajar con API web y, por supuesto, cómo se implementa todo esto en el marco de Pornhub. ¡Disfrútalo!
Nota: la industria del porno es un entorno altamente competitivo, por lo que para algunas preguntas no pude obtener una respuesta. Respeto la necesidad de que los desarrolladores protejan sus secretos profesionales.- Se espera que los sitios porno muestren una gran cantidad de contenido gráfico. Durante el desarrollo, ¿utiliza marcadores de posición en lugar de imágenes y videos? ¿Qué tan similar es el contenido del sitio final con el que tiene que lidiar durante el desarrollo?- ¡Casi nunca usamos marcadores de posición! Para nosotros, el código y la funcionalidad son importantes. Una interfaz es algo a lo que todos estamos acostumbrados. Por supuesto, todos al principio tienen un período de adaptación, pero todos se acostumbran bastante rápido.
- Cuando se trata de transmisiones o publicidad colocada por clientes externos, ¿cómo utiliza esos recursos dinámicos que son importantes para usted?- En el lado del desarrollo, el jugador se divide en dos partes. Por el lado de la parte principal, se implementan las funciones y eventos principales, es decir, el desarrollo se lleva a cabo de acuerdo con la metodología de sala limpia. Esto se hace para que, en casos de integración con el sitio, cuando queremos ejecutar scripts y anuncios de terceros, podamos identificar los problemas que han surgido lo más rápido posible. En casos especiales, podemos trabajar con anunciantes en modo manual, es decir, lanzar eventos por nuestra cuenta, que en otros casos se reproducen aleatoriamente.
- En promedio, como creo, cualquier página contiene al menos un video, publicidad en formato GIF, varias vistas previas de cámaras web y anuncios de otros videos. ¿Cómo se mide el rendimiento de la página y cómo se hace lo más eficaz posible? Cuéntanos cualquier truco que puedas compartir.- Bueno, utilizamos varios métodos de medición a la vez.
- Nuestro reproductor nos cuenta las métricas del rendimiento de reproducción de video y la frecuencia general de uso.
- Un sistema RUM de terceros rastrea el rendimiento general del sitio.
- Utilizamos instancias privadas de WebpageTest para probar scripts en los centros de datos de AWS. Esto se hace principalmente para ver qué puede suceder en un momento particular. También nos permite evaluar el "flujo" de datos que "recae" sobre nosotros desde varios puntos y desde proveedores.
- Creo que la función más importante y compleja de la interfaz en el sitio es un reproductor de video. Desde la publicidad hasta el video en sí, marcando los puntos principales de la grabación, cambiando la velocidad de reproducción y otras funciones: ¿cómo mantiene el rendimiento, la funcionalidad y la estabilidad de todo este diseño?- Específicamente, un equipo dedicado trabaja con un reproductor de video, cuyas tareas incluyen monitoreo constante del rendimiento y la eficiencia. Para este trabajo, utilizamos casi todo lo que podemos: herramientas del navegador, pruebas de páginas web, varias métricas, etc. La estabilidad y la calidad están garantizadas gracias al monitoreo constante de cualquier actualización y cambio que realicemos en el reproductor.
- ¿Y cuántas personas hay en este equipo especial de video? ¿Cuántos frontendors tienes?- Diría, por supuesto, dado el tamaño de nuestro producto, que el equipo es pequeño.
- Durante su trabajo en Pornhub, ¿qué cambios ha realizado en la interfaz? ¿Qué API web te han hecho la vida más fácil?- Durante mi trabajo, definitivamente encontré muchas mejoras en todos los aspectos de la interfaz del sitio.
- Pasamos de solo CSS a, finalmente, LESS y Mixins, cambiamos a un sistema de cuadrícula flexible con consultas de medios y etiquetas de imagen, lo que facilita la adaptación a diferentes resoluciones de pantalla.
- jQuery y jQueryUI se están volviendo obsoletos, por lo que estamos volviendo a una programación orientada a objetos más eficiente en vanilla JS. A veces algunos marcos nos ayudan mucho.
- Nos gusta trabajar con la nueva API IntersectionObserver, una herramienta de carga de imágenes muy útil y eficiente.
- También comenzamos a disfrutar poco a poco con la API Picture-in-Picture. Lo usamos para colocar videos flotantes en algunas páginas. Pero lo estamos haciendo ahora, principalmente para recopilar comentarios de la audiencia con respecto a esta empresa.
- Si mira hacia el futuro, ¿hay alguna API web que le gustaría cambiar, mejorar o incluso crear desde cero ?
- Nos gustaría cambiar algunas API. Estos son Beacon, WebRTC, Service Workers y Fetch. Más adelante en los puntos.
- Beacon: Existen algunos problemas al trabajar con iOS cuando no maneja correctamente los eventos de páginaHide.
- Recuperar: el progreso de descarga no se muestra y no puede interrumpir la solicitud.
- WebRTC: las capas de transmisión simultánea tienen limitaciones al compartir la pantalla, si la resolución no alcanza un cierto tamaño.
- Trabajadores de servicio: los controladores de eventos Fetch no interceptan las llamadas a navigator.serviceWorker.register.
- En los últimos años, WebVR está creciendo rápidamente. ¿Qué tan útil es en su estado actual y cuánto esfuerzo hacen los sitios porno para apoyar el contenido de realidad virtual? ¿Su sección de WebVR admite contenido háptico? ( Aparentemente, "háptico" significa contenido pornográfico que usa no solo gafas de realidad virtual, sino también dispositivos especiales que se sincronizan con la secuencia de video y mejoran el efecto de la presencia, aproximadamente por persona ) ."Estamos explorando el tema de WebXR y descubriendo cómo adaptarse mejor a los escenarios emergentes de computación espacial". Además, como la plataforma de distribución de contenido más grande, necesitamos brindar soporte a los creadores de contenido y a los consumidores. Todavía estamos en el proceso de encontrar la respuesta a cómo debería ser este contenido dentro de la plataforma.
Fuimos la primera plataforma en admitir la realidad virtual, la visión por computadora y los artistas virtuales, y continuaremos promoviendo estas nuevas tecnologías en la red.
- ¿Qué crees que es lo más importante en el desarrollo para PC y dispositivos móviles, cuando tienes que lidiar con tantos elementos multimedia y contenido en cada página?- Como tal, la funcionalidad está limitada principalmente por el sistema operativo y el tipo de navegador. La situación con iOS contra Android es extremadamente indicativa en términos de cómo pueden diferir los conjuntos de funciones y los accesos.
Por ejemplo, algunos dispositivos móviles en iOS no nos permiten usar nuestro propio reproductor de video en modo de pantalla completa y obligan a QuickTime a comenzar. Tales momentos deben tenerse en cuenta al implementar nuevas características e ideas. Por otro lado, Android nos da control total y nos permite usar todos nuestros chips en modo de pantalla completa.
La transmisión adaptativa en HLS es otro ejemplo. IE y Edge son extremadamente exigentes con la calidad de transmisión HLS. Por lo tanto, tenemos que excluir la configuración de calidad de imagen más alta para ellos, de lo contrario, el video tartamudeará constantemente y se dispersará con artefactos.
- ¿Cuál es el período mínimo para el soporte del navegador para los sitios para adultos en los que trabaja? ( Aparentemente, esto no se trata solo de Pornhub en sí, sino también de otros sitios que tienen direcciones diferentes, pero que pertenecen a un recurso, aproximadamente por persona ) . ¿Ya dejó de admitir Internet Explorer?- Admitimos IE durante mucho tiempo, pero recientemente dejamos de admitir todo lo anterior a IE11 y, específicamente, dejamos de admitir Flash para el reproductor de video. Estamos enfocados principalmente en el soporte para Chrome, Firefox y Safari.
- ¿Puedes contarnos más sobre la pila de un sitio porno típico? Por ejemplo, para una parte posterior y / o frontal. ¿Qué bibliotecas usas?- La mayoría de nuestros sitios utilizan las siguientes tecnologías:
- Nginx;
- PHP
- MySQL
- Memcached y / o Redis.
Si es necesario, se usa algo más, por ejemplo, Varnish, ElasticSearch, NodeJS, Go, Vertica.
Para trabajar con interfaces, utilizamos principalmente Javascript de vainilla, nos deshacemos gradualmente de jQuery y solo intentamos marcos, por ejemplo, ahora en Vue.js.
- Desde el punto de vista de un extraño, todos los sitios para adultos son muy similares: muchas miniaturas de video, contenido de video agregado, modelos de cámaras web y publicidad. ¿Y cómo difieren los sitios porno para quienes los desarrollan? ¿Qué características únicas puedes nombrar como desarrollador?- Hacemos todo lo posible para dar a cada una de nuestras marcas sus propias características únicas en diferentes niveles; biblioteca de contenido, UX y conjuntos de características, diferencias en algoritmos.
- Antes de solicitar una entrevista con su empleador actual, ¿qué le pareció la posibilidad de trabajar en la industria del porno? ¿Has tenido alguna duda? Si es así, ¿cómo lidiaste con ellos?- Estas preguntas nunca me molestaron, al final, las tareas fueron muy atractivas. La idea de que trabajaré en proyectos con una audiencia multimillonaria, que todas estas personas usarán las funciones que creé, realmente me motivó. Y se cumplieron todas mis expectativas. ¡La primera vez que trabajé en algo que estaba realmente orgulloso! ¡Sí, les dije a todos mis amigos dónde trabajo ahora! También es importante que la pornografía nunca muera, lo que me da una sensación de estabilidad, lo cual es muy bueno.
- En cuanto a su producto final, la historia de que trabaja en sitios porno puede diferir de la historia de trabajar en un estudio web local. ¿Hay algún tipo de estigmatización en el proceso de decirles a amigos, familiares y conocidos dónde trabajas? ¿Tienes alguna duda de si vale la pena decirle a la gente lo que estás haciendo?- Estoy muy orgulloso de estar trabajando en estos productos, y quienes me rodean en la vida conocen mi posición y la admiran. Mi trabajo siempre es una fuente de temas increíbles para conversaciones y chistes emocionantes.
¿Hay alguna diferencia entre trabajar dentro y fuera de la industria del porno? El ambiente aquí es muy relajado y amigable. No noto ninguna diferencia importante en términos de cultura laboral entre mi lugar de trabajo actual y otras empresas. Excepto que aquí (en Pornhub) la cultura es significativamente más alta que en los lugares donde trabajé antes.
- Como desarrollador front-end, ¿con qué equipos interactúa más estrechamente? ¿Cuáles son sus principales canales de interacción diaria dentro del equipo?- Estamos igualmente en contacto con el equipo de back-end y los probadores o gerentes de producto. La mayoría de las veces nos acercamos y hablamos. Para la comunicación electrónica utilizamos principalmente el chat de MS Teams. Bueno y por supuesto correo electrónico.
- Y, por último, ¿hay algo que le gustaría compartir como proveedor front-end que funcione en sitios para adultos?- Ser parte del equipo que crea un producto tan popular entre los usuarios es realmente emocionante. Como regla, estamos a la vanguardia de la moda tecnológica y los primeros en encontrar algunas tecnologías fundamentalmente nuevas. Esto hace que mi trabajo sea desafiante y extremadamente interesante.
Fin de la entrevista
Del autor:
Esta entrevista me parece realmente instructiva. Me sorprendió un poco que el equipo no utilice marcadores de posición durante el desarrollo de características y diseño. Es bueno ver que Pornhub sigue estando a la vanguardia de Internet en términos de trabajo con WebXR, WebRTC y Intersection Observer. También me complació que consideraran suficiente el conjunto actual de API web para comenzar un rechazo completo de jQuery.
Realmente quería obtener respuestas más específicas sobre preguntas técnicas y algún consejo. Por ejemplo, en términos de mejorar el rendimiento y algunos chips. ¡Estoy seguro de que en Pornhub hay una gran cantidad de información útil! ¿Qué preguntas harías?