
Independentemente da sua atitude em relação à pornografia, seria tolice negar o enorme impacto da indústria de sites adultos no desenvolvimento da Internet. Desde a expansão dos recursos dos navegadores em termos de reprodução de vídeo até a exibição de anúncios por meio do WebSocket, ignorando os bloqueadores, para trabalhar na vanguarda da inovação na Internet, você precisa ser extremamente inteligente.
Recentemente, tive a sorte de entrevistar o desenvolvedor web do maior site adulto do mundo - Pornhub.
Objetivo: aprender sobre tecnologias e inovações no campo do trabalho com APIs da web e, é claro, como tudo isso é implementado no âmbito do Pornhub. Aproveite!
Nota: a indústria pornô é um ambiente altamente competitivo, portanto, para algumas perguntas, não consegui resposta. Eu respeito a necessidade de desenvolvedores protegerem seus segredos profissionais.- Sites pornográficos devem exibir uma enorme quantidade de conteúdo gráfico. Durante o desenvolvimento, você usa espaços reservados em vez de imagens e vídeos? Quão semelhante é o conteúdo do site final com o que você precisa lidar durante o desenvolvimento?- Quase nunca usamos espaços reservados! Para nós, código e funcionalidade são importantes. Uma interface é algo a que estamos acostumados. Obviamente, todo mundo no começo tem algum período de adaptação, mas todo mundo se acostuma rapidamente.
- Quando se trata de fluxos ou publicidade feita por clientes externos, como você usa esses recursos dinâmicos importantes para você?- No lado do desenvolvimento, o jogador é dividido em duas partes. Na parte principal, são implementadas as principais funções e eventos, ou seja, o desenvolvimento é realizado de acordo com a metodologia da sala limpa. Isso é feito para que, nos casos de integração com o site, quando desejamos executar scripts e anúncios de terceiros, possamos identificar os problemas que surgiram o mais rápido possível. Em casos especiais, podemos trabalhar com anunciantes no modo manual, ou seja, iniciar eventos por conta própria, que em outros casos são executados aleatoriamente.
- Em média, como penso, qualquer página contém pelo menos um vídeo, publicidade em formato GIF, várias visualizações de webcams e anúncios de outros vídeos. Como você mede o desempenho da página e como o torna o mais eficaz possível? Conte-nos sobre qualquer truque que você possa compartilhar.- Bem, usamos vários métodos de medição ao mesmo tempo.
- Nosso player nos fornece métricas sobre o desempenho da reprodução de vídeo e a frequência geral de uso.
- Um sistema RUM de terceiros controla o desempenho geral do site.
- Usamos instâncias privadas do WebpageTest para testar scripts nos datacenters da AWS. Isso é feito principalmente para ver o que pode acontecer em um determinado momento. Também nos permite avaliar o "fluxo" de dados que "caem" sobre nós de vários pontos e de fornecedores.
- Acredito que a função mais importante e complexa da interface no site seja um reprodutor de vídeo. Da publicidade ao vídeo em si, marcando os principais pontos da gravação, alterando a velocidade de reprodução e outras funções - como você mantém o desempenho, a funcionalidade e a estabilidade de todo esse design?- Especificamente, uma equipe dedicada trabalha com um reprodutor de vídeo, cujas tarefas incluem monitoramento constante de desempenho e eficiência. Para este trabalho, usamos quase tudo o que podemos: ferramentas do navegador, testes de páginas da web, várias métricas e assim por diante. A estabilidade e a qualidade são garantidas graças ao monitoramento constante de quaisquer atualizações e alterações que fazemos ao jogador.
- E quantas pessoas estão nessa equipe especial de vídeo? Quantos frontendors você tem?- eu diria - é claro, dado o tamanho do nosso produto - que a equipe é pequena.
- Durante seu trabalho no Pornhub, que mudanças você fez na interface? Quais APIs da Web tornaram sua vida mais fácil?- Durante meu trabalho, eu definitivamente encontrei muitas melhorias em todos os aspectos da interface do site.
- Passamos de apenas CSS para, finalmente, LESS e Mixins, mudamos para um sistema de grade flexível com consultas de mídia e tags de imagem, o que facilita a adaptação a diferentes resoluções de tela.
- O jQuery e o jQueryUI estão gradualmente se tornando obsoletos, portanto, estamos retornando a uma programação orientada a objetos mais eficiente no vanilla JS. Às vezes, algumas estruturas nos ajudam muito.
- Gostamos de trabalhar com a nova API IntersectionObserver, uma ferramenta de upload de imagens muito útil e eficiente.
- Também começamos a entrar pouco a pouco com a API Picture-in-Picture. Usamos para colocar vídeos flutuantes em algumas páginas. Mas estamos fazendo isso agora, principalmente para coletar feedback do público sobre esse empreendimento.
- Se você olhar para o futuro, existem APIs da web que você gostaria de alterar, melhorar ou até criar do zero ?
- Gostaríamos de mudar algumas APIs. Estes são Beacon, WebRTC, Service Workers e Fetch. Mais adiante nos pontos.
- Farol: Existem alguns problemas ao trabalhar com o iOS quando ele não manipula corretamente os eventos pageHide.
- Buscar: o progresso do download não é exibido e você não pode interromper a solicitação.
- WebRTC: as camadas do Simulcast têm limitações ao compartilhar a tela, se a resolução não atingir um determinado tamanho.
- Trabalhadores de serviço: A chamada navigator.serviceWorker.register não é interceptada pelos manipuladores de eventos de busca.
- Nos últimos anos, o WebVR está crescendo rapidamente. Qual é a utilidade em seu estado atual e quanto esforço os sites pornográficos colocam no suporte ao conteúdo de RV? Sua seção WebVR suporta conteúdo Haptic? ( Aparentemente, "háptico" significa conteúdo pornô que usa não apenas óculos de realidade virtual, mas também dispositivos especiais que sincronizam com a sequência de vídeo e aumentam o efeito da presença - aprox. Por. )"Estamos explorando o tema WebXR e descobrindo como se adaptar melhor aos cenários emergentes de computação espacial". Além disso, como a maior plataforma de distribuição de conteúdo, precisamos fornecer suporte para criadores e consumidores de conteúdo. Ainda estamos no processo de encontrar a resposta para como esse conteúdo deve ser dentro da plataforma.
Fomos a primeira plataforma a oferecer suporte à realidade virtual, visão computacional e artistas virtuais, e continuaremos a promover essas novas tecnologias na rede.
- O que você acha que é a coisa mais importante no desenvolvimento para PC e dispositivos móveis, quando você precisa lidar com tantos elementos e conteúdos multimídia em cada página?- Como tal, a funcionalidade é limitada principalmente pelo sistema operacional e pelo tipo de navegador. A situação do iOS em relação ao Android é extremamente indicativa em termos de como os conjuntos de recursos e acessos podem diferir.
Por exemplo, alguns dispositivos móveis no iOS não permitem o uso de nosso próprio reprodutor de vídeo no modo de tela cheia e forçam o QuickTime a iniciar. Esses momentos devem ser levados em consideração ao implementar novos recursos e idéias. Por outro lado, o Android nos dá controle total e nos permite usar todos os nossos chips no modo de tela cheia.
O streaming adaptável no HLS é outro exemplo. O IE e o Edge são extremamente exigentes na qualidade de streaming HLS. Portanto, temos que excluir as configurações de qualidade de imagem mais alta para eles, caso contrário, o vídeo constantemente gagueja e se espalha com artefatos.
- Qual é o período mínimo de suporte do navegador para sites adultos em que você trabalha? ( Aparentemente, isso não se refere apenas ao Pornhub, mas também a outros sites que possuem endereços diferentes, mas pertencem a um recurso - aprox. Por. ) Você já parou de oferecer suporte ao Internet Explorer?- Apoiamos o IE por muito tempo, mas recentemente paramos de oferecer suporte a tudo mais antigo que o IE11 e, especificamente, deixamos de oferecer suporte ao Flash para o player de vídeo. Nosso foco principal é o suporte para Chrome, Firefox e Safari.
- Você pode nos contar mais sobre a pilha de um site pornô típico? Por exemplo, para costas e / ou frente. Quais bibliotecas você usa?- A maioria dos nossos sites usa as seguintes tecnologias:
- Nginx;
- PHP
- MySQL
- Memcached e / ou Redis.
Se necessário, outra coisa é usada, por exemplo, Varnish, ElasticSearch, NodeJS, Go, Vertica.
Para trabalhar com interfaces, usamos principalmente Javascript vanilla, nos livramos gradualmente do jQuery e apenas experimentamos frameworks, por exemplo, agora no Vue.js.
- Do ponto de vista de quem está de fora, todos os sites adultos são muito semelhantes: muitas miniaturas de vídeo, conteúdo de vídeo agregado, modelos de webcam e publicidade. E como os sites pornográficos diferem para quem os desenvolve? Quais recursos exclusivos você pode nomear como desenvolvedor?- Fazemos todos os esforços para oferecer a cada uma de nossas marcas características próprias em diferentes níveis; biblioteca de conteúdo, UX e conjuntos de recursos, diferenças de algoritmos.
- Antes de se inscrever para uma entrevista com seu atual empregador, o que você achou da possibilidade de trabalhar na indústria pornô? Você já teve alguma dúvida? Se sim, como você lidou com eles?- Essas perguntas nunca me incomodaram, no final, as tarefas eram muito atraentes. O pensamento de trabalhar em projetos com uma audiência de vários milhões, de que todas essas pessoas usarão as funções que eu criei, realmente me motivou. E todas as minhas expectativas foram atendidas. A primeira vez que trabalhei em algo verdadeiramente orgulhoso! Sim, eu disse a todos os meus amigos onde trabalho agora! Também é importante que o pornô nunca morra, o que me dá uma sensação de estabilidade, o que é muito bom.
- Quanto ao seu produto final, a história em que você trabalha em sites pornográficos pode ser diferente da história sobre como trabalhar em um estúdio da web local. Existe algum tipo de estigmatização no processo de contar a amigos, parentes e conhecidos onde você trabalha? Você tem dúvidas se vale a pena dizer às pessoas o que você está fazendo?- Tenho muito orgulho de trabalhar com esses produtos, e aqueles que me cercam na vida conhecem minha posição e a admiram. Meu trabalho é sempre uma fonte de tópicos incríveis para conversas e piadas emocionantes.
Existe alguma diferença entre trabalhar dentro e fora da indústria pornô? A atmosfera aqui é muito descontraída e amigável. Não percebo grandes diferenças em termos de cultura de trabalho entre meu local de trabalho atual e outras empresas. Só que aqui (no Pornhub) a cultura é significativamente maior do que nos lugares onde trabalhei antes.
- Como desenvolvedor front-end, com quais equipes você interage mais estreitamente? Quais são seus principais canais de interação diária dentro da equipe?- Estamos igualmente em contato com a equipe de back-end e com testadores ou gerentes de produto. Na maioria das vezes, apenas nos aproximamos e conversamos. Para comunicação eletrônica, usamos principalmente o bate-papo das equipes da MS. Bem, e claro, email.
- E, finalmente, há algo que você gostaria de compartilhar como fornecedor front-end que funciona em sites adultos?- Fazer parte da equipe que cria um produto tão popular entre os usuários é realmente emocionante. Como regra, estamos na vanguarda da moda tecnológica e os primeiros a encontrar algumas tecnologias fundamentalmente novas. Isso torna meu trabalho desafiador e extremamente interessante.
Fim da entrevista
Do autor:
Acho esta entrevista realmente instrutiva. Fiquei um pouco surpreso que a equipe não use espaços reservados durante o desenvolvimento de recursos e design. É bom ver o Pornhub continuar na vanguarda da Internet em termos de trabalho com WebXR, WebRTC e Intersection Observer. Também fiquei satisfeito por considerarem o conjunto atual de APIs da Web suficientes para iniciar uma rejeição completa do jQuery.
Eu realmente queria obter respostas mais específicas sobre perguntas técnicas e dicas. Por exemplo, em termos de melhoria de desempenho e alguns chips. Estou certo de que, no tipo Pornhub, há uma enorme quantidade de informações úteis! Que perguntas você faria?