
Terlepas dari sikap Anda terhadap pornografi, akan sangat bodoh untuk menyangkal dampak besar dari industri situs dewasa pada pengembangan Internet. Dari memperluas kemampuan browser dalam hal pemutaran video dan untuk menampilkan iklan melalui WebSocket melewati pemblokir, untuk bekerja di garis depan inovasi Internet, Anda harus sangat pintar.
Baru-baru ini, saya cukup beruntung untuk mewawancarai pengembang web situs dewasa terbesar di dunia - Pornhub.
Tujuan: Untuk mempelajari tentang teknologi dan inovasi di bidang bekerja dengan API web dan, tentu saja, bagaimana semua ini diimplementasikan dalam kerangka kerja Pornhub. Selamat menikmati!
Catatan: industri porno adalah lingkungan yang sangat kompetitif, jadi untuk beberapa pertanyaan saya tidak bisa mendapatkan jawaban. Saya menghormati kebutuhan pengembang untuk melindungi rahasia profesional mereka.- Situs porno diharapkan untuk menampilkan sejumlah besar konten grafis. Selama pengembangan, apakah Anda menggunakan placeholder alih-alih gambar dan video? Seberapa mirip konten situs final dengan apa yang harus Anda tangani selama pengembangan?- Kami hampir tidak pernah menggunakan placeholder! Bagi kami, kode dan fungsionalitas itu penting. Antarmuka adalah sesuatu yang kita semua terbiasa. Tentu saja, semua orang di awal memiliki beberapa periode adaptasi, tetapi semua orang terbiasa dengan cukup cepat.
- Ketika datang ke stream atau iklan yang ditempatkan oleh pelanggan eksternal, bagaimana Anda menggunakan sumber daya dinamis yang begitu penting bagi Anda?- Di sisi pengembangan, pemain dibagi menjadi dua bagian. Di sisi bagian utama, fungsi dan acara utama dilaksanakan, yaitu, pengembangan dilakukan sesuai dengan metodologi cleanroom. Hal ini dilakukan agar dalam kasus integrasi dengan situs, ketika kami ingin menjalankan skrip dan iklan pihak ketiga, kami dapat mengidentifikasi masalah yang muncul secepat mungkin. Dalam kasus khusus, kami dapat bekerja dengan pengiklan dalam mode manual, yaitu, meluncurkan acara sendiri, yang dalam kasus lain diputar secara acak.
- Rata-rata, seperti yang saya kira, halaman mana pun mengandung setidaknya satu video, beriklan dalam format GIF, beberapa pratinjau dari webcam dan pengumuman video lainnya. Bagaimana Anda mengukur kinerja halaman dan bagaimana Anda membuatnya seefektif mungkin? Ceritakan tentang trik apa saja yang bisa Anda bagikan.- Ya, kami menggunakan beberapa metode pengukuran sekaligus.
- Pemain kami memberi tahu kami metrik kinerja pemutaran video dan frekuensi penggunaan secara keseluruhan.
- Sistem RUM pihak ketiga melacak kinerja keseluruhan situs.
- Kami menggunakan instance WebpageTest pribadi untuk menguji skrip di pusat data AWS. Ini dilakukan terutama untuk melihat apa yang bisa terjadi pada saat tertentu. Hal ini juga memungkinkan kami untuk mengevaluasi "aliran" data yang "jatuh" ke kami dari berbagai titik dan dari pemasok.
- Saya percaya bahwa fungsi antarmuka yang paling penting dan paling kompleks adalah pemutar video. Dari beriklan ke video itu sendiri, menandai titik utama rekaman, mengubah kecepatan pemutaran dan fungsi lainnya - bagaimana Anda mempertahankan kinerja, fungsi, dan stabilitas seluruh desain ini?- Secara khusus, tim yang berdedikasi bekerja dengan pemutar video, yang tugasnya meliputi pemantauan kinerja dan efisiensi secara konstan. Untuk pekerjaan ini, kami menggunakan hampir semua yang kami bisa: alat peramban, pengujian halaman web, berbagai metrik, dan sebagainya. Stabilitas dan kualitas dijamin berkat pemantauan terus-menerus dari setiap pembaruan dan perubahan yang kami lakukan pada pemain.
- Dan berapa banyak orang di tim video khusus ini? Berapa banyak frontendor yang Anda miliki?- Saya akan mengatakan - tentu saja, mengingat ukuran produk kami - bahwa timnya kecil.
- Selama bekerja di Pornhub, perubahan apa yang Anda buat pada antarmuka? API web apa yang membuat hidup Anda lebih mudah?- Selama bekerja, saya pasti menemukan banyak perbaikan pada setiap aspek antarmuka situs.
- Kami beralih dari hanya CSS menjadi, akhirnya, KURANG dan Mixin, beralih ke sistem kisi yang fleksibel dengan kueri media dan tag gambar, yang membuatnya lebih mudah untuk beradaptasi dengan resolusi layar yang berbeda.
- jQuery dan jQueryUI menjadi usang, jadi kami kembali ke pemrograman berorientasi objek yang lebih efisien dalam vanilla JS. Terkadang beberapa kerangka kerja banyak membantu kita.
- Kami menikmati bekerja dengan IntersectionObserver API baru, alat unggah gambar yang sangat berguna dan efisien.
- Kami juga mulai memanjakan diri sedikit demi sedikit dengan Picture-in-Picture API. Kami menggunakannya untuk menempatkan video mengambang di beberapa halaman. Tapi kami melakukannya sekarang, terutama untuk mengumpulkan umpan balik dari audiens mengenai usaha ini.
- Jika Anda melihat ke masa depan, apakah ada API web yang ingin Anda ubah, perbaiki, atau bahkan buat dari awal ?
- Kami ingin mengubah beberapa API. Ini adalah Beacon, WebRTC, Pekerja Layanan dan Ambil. Lebih lanjut tentang poin.
- Beacon: Ada beberapa masalah saat bekerja dengan iOS saat tidak menangani acara dengan benar.
- Ambil: kemajuan unduhan tidak ditampilkan dan Anda tidak dapat mengganggu permintaan.
- WebRTC: Lapisan Simulcast memiliki batasan saat berbagi layar, jika resolusi tidak mencapai ukuran tertentu.
- Pekerja Layanan: Memanggil navigator.serviceWorker.register tidak dicegat oleh Ambil penangan acara.
- Dalam beberapa tahun terakhir, WebVR berkembang pesat. Seberapa bergunanya dalam kondisi saat ini dan berapa banyak upaya yang dilakukan situs porno untuk mendukung konten VR? Apakah bagian WebVR Anda mendukung konten Haptic? ( Rupanya, "haptic" berarti konten porno yang tidak hanya menggunakan kacamata VR, tetapi juga perangkat khusus yang disinkronkan dengan urutan video dan meningkatkan efek kehadiran - kira-kira Per. )“Kami sedang mengeksplorasi tema WebXR dan mencari tahu cara terbaik untuk beradaptasi dengan skenario komputasi spasial yang muncul.” Selain itu, sebagai platform distribusi konten terbesar, kami perlu memberikan dukungan bagi pembuat konten dan konsumen. Kami masih dalam proses menemukan jawaban seperti apa konten ini seharusnya dalam platform.
Kami adalah platform pertama yang mendukung realitas virtual, visi komputer, dan seniman virtual, dan kami akan terus mempromosikan teknologi baru ini di jaringan.
- Menurut Anda apa yang paling penting dalam pengembangan untuk PC dan perangkat seluler, ketika Anda harus berurusan dengan begitu banyak elemen dan konten multimedia di setiap halaman?- Karena itu, fungsi ini dibatasi terutama oleh sistem operasi dan jenis browser. Situasi dengan iOS melawan Android sangat indikatif dalam hal perbedaan set dan akses fitur.
Misalnya, beberapa perangkat seluler di iOS tidak memungkinkan kami menggunakan pemutar video kami sendiri dalam mode layar penuh dan memaksa QuickTime untuk memulai. Momen seperti itu harus diperhitungkan saat menerapkan fitur dan ide baru. Di sisi lain, Android memberi kita kendali penuh dan memungkinkan kita untuk menggunakan semua chip kita dalam mode layar penuh.
Streaming adaptif dalam HLS adalah contoh lain. IE dan Edge sangat menuntut kualitas streaming HLS. Karena itu, kita harus mengecualikan pengaturan kualitas gambar tertinggi untuk mereka, jika tidak video akan terus-menerus tergagap dan berserakan dengan artefak.
- Berapa periode minimum untuk dukungan browser untuk situs dewasa yang Anda garap? ( Rupanya, ini bukan hanya tentang Pornhub itu sendiri, tetapi juga tentang situs lain yang memiliki alamat berbeda, tetapi milik sumber daya - kira-kira Per. ) Apakah Anda sudah berhenti mendukung Internet Explorer?- Kami mendukung IE untuk waktu yang sangat lama, tetapi baru-baru ini kami berhenti mendukung semuanya yang lebih tua dari IE11, dan khususnya dengan itu kami berhenti mendukung Flash untuk pemutar video. Kami terutama berfokus pada dukungan untuk Chrome, Firefox dan Safari.
- Bisakah Anda memberi tahu kami lebih banyak tentang tumpukan situs porno biasa? Misalnya, untuk belakang dan / atau depan. Perpustakaan apa yang Anda gunakan?- Sebagian besar situs kami menggunakan teknologi berikut:
- Nginx;
- PHP
- MySQL
- Memcached dan / atau Redis.
Jika perlu, sesuatu yang lain digunakan, misalnya, Varnish, ElasticSearch, NodeJS, Go, Vertica.
Untuk bekerja dengan antarmuka, kami terutama menggunakan Javascript vanilla, secara bertahap menyingkirkan jQuery dan hanya mencoba kerangka kerja, misalnya, sekarang di Vue.js.
- Dari sudut pandang orang luar, semua situs dewasa sangat mirip: banyak thumbnail video, konten video gabungan, model webcam dan iklan. Dan bagaimana perbedaan situs porno bagi mereka yang mengembangkannya? Fitur unik apa yang dapat Anda sebutkan sebagai pengembang?- Kami melakukan segala upaya untuk memberikan masing-masing merek kami fitur unik sendiri di tingkat yang berbeda; pustaka konten, set UX dan fitur, perbedaan dalam algoritma.
- Sebelum Anda melamar wawancara dengan majikan Anda saat ini, apa yang Anda pikirkan tentang kemungkinan bekerja di industri porno? Apakah Anda memiliki keraguan? Jika demikian, bagaimana Anda menghadapinya?- Pertanyaan-pertanyaan ini tidak pernah mengganggu saya, pada akhirnya, tugasnya sangat menarik. Pikiran bahwa saya akan mengerjakan proyek dengan jutaan penonton, bahwa semua orang ini akan menggunakan fungsi yang saya buat, benar-benar memotivasi saya. Dan semua harapan saya terpenuhi. Pertama kali saya mengerjakan sesuatu yang benar-benar bangga! Ya, saya memberi tahu semua teman saya di mana saya bekerja sekarang! Penting juga bahwa porno tidak pernah mati, yang memberi saya rasa stabilitas, yang sangat bagus.
- Adapun produk akhir Anda, kisah yang Anda kerjakan di situs porno mungkin berbeda dari cerita tentang bekerja di studio web lokal. Apakah ada stigmatisasi dalam proses memberi tahu teman, kerabat, dan kenalan di mana Anda bekerja? Apakah Anda ragu apakah perlu memberi tahu orang lain apa yang Anda lakukan?- Saya sangat bangga bahwa saya mengerjakan produk-produk ini, dan mereka yang berada di sekitar saya dalam kehidupan mengetahui posisi saya dan mengaguminya. Pekerjaan saya selalu menjadi sumber topik yang luar biasa untuk percakapan dan lelucon yang menarik.
Apakah ada perbedaan antara bekerja di dalam dan di luar industri porno? Suasana di sini sangat santai dan ramah. Saya tidak melihat adanya perbedaan besar dalam hal budaya kerja antara tempat kerja saya saat ini dan perusahaan lain. Kecuali bahwa di sini (di Pornhub) budaya secara signifikan lebih tinggi daripada di tempat-tempat saya bekerja sebelumnya.
- Sebagai pengembang front-end, dengan tim mana Anda berinteraksi paling dekat? Apa saluran utama interaksi harian Anda dalam tim?- Kami sama-sama berhubungan dengan tim backend dan penguji atau manajer produk. Sebagian besar waktu kami hanya berjalan ke satu sama lain dan berbicara. Untuk komunikasi elektronik, kami terutama menggunakan obrolan Tim MS. Yah dan tentu saja email.
- Dan akhirnya, adakah yang ingin Anda bagikan sebagai vendor front-end yang berfungsi di situs dewasa?- Menjadi bagian dari tim yang menciptakan produk yang populer di kalangan pengguna benar-benar menarik. Sebagai aturan, kami berada di garis depan mode teknologi dan yang pertama kali menemukan beberapa teknologi baru yang fundamental. Ini membuat pekerjaan saya menantang dan sangat menarik.
Akhir wawancara
Dari penulis:
Saya menemukan wawancara ini sangat instruktif. Saya sedikit terkejut bahwa tim tidak menggunakan placeholder selama pengembangan fitur dan desain. Sangat menyenangkan melihat Pornhub terus berada di garis depan Internet dalam hal bekerja dengan WebXR, WebRTC, dan Pengamat Persimpangan. Saya juga senang bahwa mereka menganggap set API web saat ini cukup untuk memulai penolakan jQuery secara lengkap.
Saya benar-benar ingin mendapatkan jawaban yang lebih spesifik tentang pertanyaan teknis dan tips apa pun. Misalnya, dalam hal meningkatkan kinerja dan beberapa chip. Saya yakin bahwa dalam jenis Pornhub ada sejumlah besar informasi berguna! Apa pertanyaan yang akan Anda tanyakan?