Di dalam melihat proses pembangunan aplikasi mudah alih Facebook

Pengarang: Laura McKinney
Tarikh Penciptaan: 4 April 2021
Tarikh Kemas Kini: 1 Julai 2024
Anonim
Membangun Aplikasi Mudah Alih Dalam 30 Minit
Video.: Membangun Aplikasi Mudah Alih Dalam 30 Minit

Kandungan


Baru-baru ini, saya melawat Ibu Pejabat Facebook di London untuk mempelajari tentang proses membangun dan mengekalkan aplikasi Facebook mudah alihnya. Lebih banyak lagi di sini daripada anda mungkin menyedari: beberapa aplikasi Facebook ditangani di sini secara keseluruhannya, seperti WhatsApp untuk desktop dan aplikasi Tempat Kerja yang berorientasikan perniagaan.

Pejabat-pejabat itu adalah apa yang anda harapkan daripada imej Facebook, walaupun mungkin tidak cukup kepada Rangkaian Sosial-tahap lebihan. Ini adalah tempat kerja yang serius dilakukan, tetapi ada suasana yang bergaya, unik, dan santai. Pekerja boleh membawa komputer riba untuk bekerja di mana-mana sahaja yang mereka pilih, ada ruang percetakan untuk membuat poster (hanya kerana), kerja-kerja seni di beberapa dinding, dan Ninja Turtle gergasi - Saya tidak pernah mendapat jawaban mengapa.

Oh, dan makanan yang luar biasa. Saya berada di sana semasa Tahun Baru Cina dan saya pelbagai perut babi. Masa yang baik.


Walau bagaimanapun, saya tidak berada di sana untuk menikmati hiasan dan masakan, saya berada di sana untuk belajar tentang Facebook di telefon bimbit. Lebih khusus: bagaimanakah di bumi anda masih mengekalkan projek yang besar dan bercita-cita tinggi ini? Backend Facebook berfungsi lebih dari dua bilion orang, dan aplikasi Android sahaja melihat versi baru yang dikeluarkan setiap minggu.

Bagaimanakah cara menguruskan apl dengan sejumlah ciri yang bercita-cita tinggi?

Saya bercakap dengan Tal Kellner melalui sistem telepresence Facebook sendiri. Tal adalah pengurus program teknikal, yang bertanggungjawab ke atas Pasukan Kejuruteraan Keluaran yang berpangkalan di pejabat kejuruteraan Tel Aviv. Dia lebih gembira untuk berkongsi maklumat yang menarik.


Tal dan pasukannya memuat naik versi Lite mereka Facebook ke iOS buat kali pertama

Apa yang saya pelajari sangat menarik dari perspektif pemaju dan sebagai pengguna. Inilah yang saya dapati.

Pengurusan projek di Facebook - Mengapa Scrum> Air terjun

Apabila melihat sebarang projek besar, anda perlu mempertimbangkan pendekatan pengurusan projek anda. Satu contoh sedemikian disebut pengurusan projek "air terjun". Ini adalah pendekatan berturut-turut dan linear di mana anda bekerja pada fasa tertentu pada gilirannya, seperti pergi dari ideasi kepada pelaksanaan ke ujian untuk dibebaskan.

syarikat seperti Facebook memilih bukan untuk pendekatan yang lebih moden untuk pengurusan projek yang dipanggil "scrum"

Secara asasnya, dalam pendekatan ini anda tidak memulakan fasa seterusnya sehingga fasa sebelumnya selesai. Sistem ini berasal dari pembuatan, di mana tahap tertentu sering bergantung pada peringkat sebelumnya: anda perlu menggunakan batu bata sebelum anda dapat membina tembok!

Apabila ia datang kepada perisian, pendekatan ini adalah terhad. Dalam kes yang paling teruk, kemas kini boleh mengambil masa yang lama untuk dilancarkan, ia sudah usang pada masa ia tiba. Duke Nukem Selamanya?

Oleh itu, sesetengah syarikat perisian memilih untuk memilih pendekatan yang lebih moden yang disebut "scrum," yang merupakan metodologi tangkas. Kaedah ini mengutamakan kerja yang paling penting dan memecahnya menjadi ketulan modular. Ia bergantung kepada komunikasi antara jabatan dalaman dan juga ejen individu yang bekerja bersendirian di sudut mereka sendiri kod.

Hasilnya, dalam teori, adalah semua orang boleh bekerja pada apa yang paling mendesak untuk mereka sepanjang masa, dan setiap bahagian perniagaan lain tahu apa yang mereka lakukan. Terdapat tahap pemilikan yang tinggi untuk setiap jurutera, dan setiap orang bertanggungjawab atas kerja mereka sendiri. Bukan sahaja ini menjadikan syarikat lebih tangkas, tetapi juga diharapkan dapat meningkatkan kepuasan kerja. Tiada siapa yang cog di dalam mesin itu.

sesiapa sahaja dari mana-mana di dalam organisasi boleh mencadangkan idea untuk ciri baru

Saya sangat kagum mendengar sesiapa sahaja dari mana-mana di dalam organisasi boleh mencadangkan idea untuk ciri baru, dan kemudian dapat bekerja dengan itu jika diberikan pergi ke hadapan. Kadang-kadang ini mungkin menjadi aplikasi berasingan sendiri! Facebook adalah lebih banyak projek kolaboratif daripada penglihatan terbawah ke atas beberapa orang (atau satu orang) yang sering digambarkan sebagai.

Ini membolehkan Facebook untuk melaksanakan kitaran pembangunan yang sangat pesat, membolehkan kemas kini mudah alih baru setiap minggu, dan beribu-ribu komited (perubahan kod yang dicadangkan) antara masa itu. Sekiranya anda fikir itu mengesankan, versi web (backend yang juga menghidupkan aplikasi mudah alih) mengemas kini sekali setiap dua hingga tiga jam!

Facebook pada umumnya sangat menyokong idea-idea baru dan permulaan. Ia juga mempunyai inisiatif yang dipanggil LDN LAB yang ditujukan untuk menyokong idea dan perniagaan baru.

Mencari baki

Diambil dari slaid Tal sendiri

Sudah tentu, masih ada batas ketika datang ke apa yang dapat ditangani oleh sebuah syarikat. Dengan banyak kod ini sentiasa ada ruang untuk penambahbaikan, tetapi perlu datang masa ketika versi dianggap "cukup baik."

Itulah di mana "segitiga emas" dimainkan. Tiga mata segitiga ini mewakili ciri, kualiti, dan masa. Setiap syarikat mempunyai pilihan untuk dibuat di sini: apabila ia datang kepada masa rehat, adakah anda mengutamakan ciri-ciri baru dengan mengorbankan sedikit masa lagi? Adakah anda membenarkan bug sedia ada kecil untuk menyelinap melalui internet jika ia bermakna anda boleh menambah lebih banyak ciri? Apabila anda tidak dapat melakukan segala-galanya, anda terpaksa mengutamakan.

Di Facebook, keutamaan adalah kualiti dan masa. Sekiranya kemas kini jatuh di belakang tetingkap yang diperuntukkan, satu ciri mungkin akan ditolak; bukannya sudut yang dipotong atau kemas kini yang ditangguhkan.

Kawalan versi dan perubahan juggling

Untuk mengendalikan kemas kini dan perubahan pada kod itu, Facebook menggunakan versi Mercurial yang diubahsuai sendiri. Ini bukannya Git yang sangat banyak digunakan, yang nampaknya tidak berskala untuk tujuan syarikat. Phabricator adalah sama dengan GitHub, dan menggunakan banyak plugin untuk membantu menyelaraskan aliran kerja dan kadang-kadang hanya untuk membuat perkara yang lebih menyeronokkan (Facebook suka memesnya nampaknya).

Bagi bukan pengaturcara di luar sana, Mercurial, seperti Git, adalah sistem kawalan versi. Ia membolehkan sejumlah besar orang untuk bekerja di sekeping perisian, dan membuat perubahan dan perbaikan tanpa menjejaskan versi aplikasi utama, yang dipanggil "cabang induk." Alat ini membantu mencegah konflik kod dan membenarkan eksperimen. Hanya sekali perubahan telah diluluskan sepenuhnya pada cawangan ujian maka ia akan komited kepada tuan.

Bayangkan jika sesetengah programmer miskin membuat kesilapan menaip yang memecahkan keseluruhan kod dan hanya terdapat satu versi! Itu akan menjadi hari yang buruk untuk semua orang.

Alat seperti Mercurial memungkinkan untuk melaksanakan pendekatan scrum dengan mudah, membiarkan semua orang mengerjakan ciri-ciri tertentu dan serentak serentak sebelum menggabungkannya bersama-sama dalam satu periuk besar.

Sekali seminggu, calon pelepas akan dipotong dari tuan dan ini akan melalui fasa ujian. Coders yang telah menghabiskan sepanjang minggu bekerja pada perbaikan bug atau ciri-ciri baru pada masa ini akan menyeberang jari mereka dengan harapan kerja mereka membuatnya menjadi kemas kini baru.

Sebarang perbaikan minit atau perubahan yang dibuat oleh ahli pasukan akan memerlukan "cherry picked" untuk dimasukkan ke dalam cawangan baru oleh mereka yang bertanggungjawab. Dikabarkan, mereka telah diketahui menggunakan rasuah dalam bentuk coklat dan alkohol yang diberikan kepada para pembuat keputusan.

Untuk mengkompilasi, Facebook menggunakan alat lain yang dipanggil Buck. Alat binaan tunggal ini boleh membina apa sahaja apabila ia membungkus aplikasinya. Tidak perlu pilihan berasingan seperti Gradle atau Semut ketika menargetkan platform yang berbeza.

Menangkap pepijat dalam masa

Dengan semua orang yang bekerja pada pelbagai perkara, dan begitu banyak kemas kini yang keluar secara teratur, sangat penting bahawa syarikat memastikan perisian mereka berfungsi dan tidak mempunyai sebarang bug serius. Untuk sebahagian besar, Facebook mempunyai rekod prestasi yang baik untuk memastikan perkara berjalan.

Untuk itu, pasukan membahagikan ujian perisian ke peringkat, yang disebut sebagai C1, C2, dan C3.

C1 adalah ujian dalaman dan semua pekerja akan menjalankan versi itu. Semasa C2, versi ini dijalankan melalui 2 peratus daripada orang awam, dan C3 adalah pengeluaran. Sekiranya sesuatu yang benar-benar serius ditemui, setiap pekerja akan dapat mengakses butang berhenti kecemasan untuk membawa pengeluaran ke arah pengisaran.

Para sukarelawan yang memajukan diri untuk memelihara tingkatan yang berjalan dengan menggunakan nama "penyumbat pokok" (kerana cawangan), dan melakukan ini di atas pekerjaan tetap mereka.

Di Bergerak, tahap serupa dipanggil alpha, beta, dan prod. Alpha bermakna ujian dalaman, yang mana semua pekerja akan dijalankan. Proses mana-mana syarikat yang menggunakan produk sendiri dengan cara ini disebut "dogfooding" - dari "makan makanan anjing anda sendiri."

Penguji juga mempunyai beberapa alat yang unik dan menarik di pelupusan mereka dengan cepat melaporkan bug. Yang pertama adalah "Rageshake," di mana hanya menggegarkan peranti dalam kekecewaan akan membolehkan laporan pepijat, seperti dengan Peta Google.

Penguji juga mempunyai beberapa alat yang unik dan menarik di pelupusan mereka dengan cepat melaporkan bug

Semasa alfa - yang secara efektif merujuk kepada sebarang ujian dalaman - Facebook juga menggunakan ujian automatik untuk menjalankan aplikasinya. Sebagai contoh, satu perisian baru yang dipanggil "Sapienz" pada dasarnya berfungsi dengan mengklik setiap butang dan menggunakan setiap ciri dalam serangan rawak sehingga ia mencetuskan kemalangan. Ia kemudiannya mencatat jejak tindanan, merekodkan tindakan itu, dan melaporkan semula.

Aplikasi beta (versi yang diuji oleh orang awam) melalui subseksyen kecil (~ 2 peratus) orang awam. Coretan kecil ini akan menerima kemas kini lebih awal dari masa ke masa, menyediakan Facebook dengan maklum balas dunia nyata. Jika segala-galanya kelihatan baik, kemas kini akan berlaku kepada seluruh penduduk, dan prosesnya akan bermula semula.

Alat yang kuat untuk automasi dan penggandaan daya

Untuk memastikan keseluruhan proses ini cepat dan lancar, Facebook menggunakan sejumlah besar alat yang berbeza. Kami telah melihat bagaimana syarikat menggunakan Phabricator dan Sapienz, tetapi ia mempunyai alat dan plugin lain untuk peringkat lain.

Alat yang dipanggil piknik mengumpulkan semua permintaan tarik (perubahan yang dibuat oleh pekerja) di satu tempat untuk semakan cepat dan mudah.

Apabila ujian melemparkan kesilapan, bot yang dipanggil Nagbot memaklumkan mereka yang bertanggungjawab dan perlahan-lahan mendorong mereka untuk mendapatkan kerja yang dilakukan. Menggunakan AI asas untuk mengendalikan proses ini bukan sahaja memastikan kerja itu dapat dilakukan, tetapi juga membolehkan pengurus untuk mengelakkan diri menjadi "lelaki yang buruk" dengan sentiasa merungut!

apabila ujian melemparkan kesilapan untuk seseorang membetulkan, bot yang dipanggil Nagbot memaklumkan mereka yang bertanggungjawab dan perlahan-lahan mendorong mereka untuk mendapatkan kerja yang dilakukan

Crashbot adalah bot lain yang bertanggungjawab untuk melaporkan kesalahan tersebut apabila ia berlaku, dan lebih baik untuk metrik dari Google Console, dalam laporannya dalam masa nyata. Crashbot akan menimbulkan isu apabila masalah melebihi "ambang kemalangan yang boleh diterima." Ini boleh disebabkan oleh bilangan orang yang mengalami ralat, atau bilangan kali pengguna tunggal mengalami ralat yang sama. Sama ada cara, Facebook juga akan mempunyai metrik yang menunjukkan bilangan pengguna sedih.

Untuk komunikasi dalaman, Facebook menggunakan sesuatu yang disebut Tempat Kerja. Ini secara efektif merupakan versi Facebook yang dimaksudkan untuk perniagaan, yang memberikan cara yang berguna untuk mendapatkan maklumat tentang ahli pasukan, dan berkomunikasi dengan cepat dengan mereka yang duduk di sisi lain dari pejabat yang luas. Facebook juga menjual perisian ini kepada pihak ketiga.

Sudah tentu Facebook tidak akan membuang masa mengunggah setiap versi baru aplinya ke Play Store, App Store, Amazon, dan semua yang lain. Terdapat juga aplikasi untuk itu yang dikenali sebagai Mobile Push Train.

Menutup pemikiran

Mengekalkan aplikasinya seperti Facebook terkini adalah usaha yang besar, dan syarikat itu masih perlu meyakinkan pengguna untuk benar-benar memasang kemas kini tersebut. Ini amat sukar di negara-negara di mana sambungan tidak dijamin. Di Kanada, hanya satu peratus pengguna masih menjalankan versi Facebook lebih setahun. Di Ethiopia, jumlah itu lebih hampir 50 peratus!

Pasukan di Facebook jelas berfungsi dengan sangat keras dan menggunakan satu tan alat dan proses untuk memastikan segala sesuatu dapat disederhanakan mungkin. Pada penghujung hari, pasukan pembangunan bertujuan untuk mematuhi lima prinsip yang memerintah:

  • Pastikan tuan bersih.
  • Mempunyai satu pasukan yang mempunyai kepakaran dalam bidang kejuruteraan keluaran.
  • Lepaskan masa yang kerap.
  • Produk anjing.
  • Baik kepada pengguna.

Ia kedengaran mudah, tetapi kerana anda dapat melihat ia melibatkan banyak plat berputar. Walaupun mengekalkan semua alat yang digunakan dalam proses itu adalah projek sendiri!

Bagi pihaknya, Facebook mengekalkan suasana mesra dan ramah di pejabat di London. Pasukan pertukaran GIF dan memes melalui plugin, mereka menamakan bilik berdasarkan "perkara benci British" dan Shakespearean puns, dan mereka mengambil banyak kebanggaan dalam kerja mereka. Di Facebook, mereka bekerja keras dan bermain keras, dan nampaknya sebahagian besarnya, sistem berfungsi.

Di masa hadapan, kemas kini baru akan dilancarkan untuk salah satu aplikasi anda yang lebih besar, ganti pemikiran untuk semua kerja dan organisasi yang diperlukan untuk mendapatkannya di sana.

Aplikai Google Gbo veri iO dan Android biaanya diegerakkan, tetapi kadang-kadang eeorang akan melompat ke depan yang lain ketika datang ke ciri-ciri dan fungi baru. Dengan itu, ia kelihatan eperti ver...

Garmin vívofit 4 ulasan

Laura McKinney

Julai 2024

Garmin telah melakukan pekerjaan yang cukup baik untuk membuat vívofit 4 kelihatan eperti pelacak kecergaan pricier yarikat, eperti vívomart 3 atau vívoport. The vívofit 4 adalah l...

Menarik