Ini adalah artikel pertama dalam seri di mana kami akan menerbitkan tentang proyek sumber terbuka utama dibuat oleh perusahaan besar seperti Facebook, Twitter, Microsoft, Google, Netflix, dll. Kami ingin pembaca kami mengetahui teknologi dan proyek yang membantu raksasa ini melakukan peningkatan berkelanjutan terlepas dari skala, keamanan, dan tantangan signifikan lainnya yang dihadapi perusahaan-perusahaan ini. setiap hari.
saya Saya memulai dengan Facebook karena saya selalu terkesan dengan semua proyek open source yang mereka miliki hingga saat ini dan bagaimana perusahaan lain termasuk fossBytes menggunakan beberapa teknologi ini. Facebook menggunakan, memelihara, dan berkontribusi pada sejumlah besar proyek besar, di berbagai bidang seperti alat seluler asli, sistem data besar, perpustakaan web sisi klien, infrastruktur back-end dan runtime, dan melalui Open Compute Project. , server dan perangkat keras penyimpanan. . Facebook akun GitHub saja, sekarang memiliki lebih dari 90 repositori yang terdiri lebih dari 40.000 komit dan yang secara kolektif telah bercabang 15.000 kali.
Kontribusi Facebook untuk open source sebagian besar dapat dikategorikan ke dalam Seluler, Web, Back-end, dan Infrastruktur. Proyek open source utama yang dilakukan dalam kategori ini adalah:
Seluler:
Dolar
Dolar adalah sistem build berperforma tinggi untuk Android yang mendorong pembuatan modul kecil yang dapat digunakan kembali yang terdiri dari kode dan sumber daya. Karena aplikasi Android sebagian besar ditulis dalam Java, Buck juga berfungsi sebagai sistem build Java.
Memantul
Origami
Origami adalah alat untuk merancang antarmuka pengguna modern. Buat prototipe dengan cepat, jalankan di iPhone atau iPad Anda, ulangi, dan ekspor cuplikan kode yang dapat digunakan teknisi Anda.
stetografi
stetografi adalah platform debug baru untuk Android. Mengaktifkan alat pengembang canggih Chrome, yang diimplementasikan menggunakan protokol klien/server yang disediakan oleh perangkat lunak Stetho untuk aplikasi Anda. Setelah aplikasi Anda terintegrasi, cukup navigasikan ke chrome://inspect dan klik «Periksa» untuk memulai.
Menyimpulkan
Facebook Menyimpulkan adalah alat analisis statis untuk mendeteksi bug di aplikasi Android dan iOS sebelum dikirim. Jika Anda memberi Infer kode Objective-C, Java, atau C, daftar kemungkinan kesalahan akan dihasilkan. Siapa pun dapat menggunakan Infer untuk mencegat bug penting sebelum dikirim ke ponsel orang dan membantu mencegah crash atau kinerja yang lambat. Menyimpulkan poin kesalahan kritis, seperti pengecualian penunjuk nol, kebocoran sumber daya, dan kebocoran memori.
Web:
bereaksi js
bereaksi js adalah pustaka JavaScript deklaratif, efisien, dan fleksibel untuk membangun antarmuka pengguna. Banyak orang menggunakan Bereaksi seperti V di MVC. Karena React tidak membuat asumsi tentang sisa tumpukan teknologinya, mudah untuk mengujinya dalam fungsi kecil di proyek yang sudah ada.
H HVM
H HVM (Hip Hop VM) adalah mesin virtual open source yang dirancang untuk menjalankan program yang ditulis dalam Hack dan PHP. HHVM menggunakan pendekatan kompilasi just-in-time (JIT) untuk mencapai kinerja yang unggul sambil mempertahankan fleksibilitas pengembangan yang disediakan PHP. Ini telah mencapai peningkatan 5x+ dalam kinerja Facebook dibandingkan dengan Zend PHP 5.2. HipHop paling sering berjalan sebagai server mandiri, menggantikan Apache dan modphp, tetapi Anda juga dapat menjalankan skrip mandiri dari baris perintah.
Mengalir
Mengalir adalah arsitektur aplikasi yang digunakan Facebook untuk membangun aplikasi web sisi klien. Ini melengkapi komponen tampilan React yang dapat dikomposisi dengan menggunakan aliran data satu arah. Ini lebih merupakan pola daripada kerangka kerja formal, dan Anda dapat langsung mulai menggunakan Flux tanpa banyak kode baru.

Mengalir
Mengalir menambahkan skrip statis ke JavaScript untuk meningkatkan produktivitas pengembang dan kualitas kode. Tujuan Flow adalah menemukan kesalahan dalam kode JavaScript dengan sedikit usaha dari programmer. Aliran sangat tergantung jenis inferensi untuk menemukan kesalahan jenis bahkan ketika program belum dianotasi: Secara akurat melacak jenis variabel saat mereka mengalir melalui program.
fb-flo
fb-flo adalah ekstensi chrome yang memungkinkan Anda untuk memodifikasi aplikasi yang sedang berjalan tanpa memuat ulang. Sangat mudah untuk diintegrasikan dengan sistem build Anda, lingkungan pengembangan, dan dapat digunakan dengan editor favorit Anda.
Candaan
Candaan adalah kerangka kerja pengujian unit untuk JavaScript. Itu dibangun di atas kerangka pengujian Jasmine, menggunakan pernyataan expect(value).toBe(other) yang sudah dikenal. Modul CommonJS yang dikembalikan oleh require() secara otomatis diejek, membuat sebagian besar kode yang ada dapat diuji.
nuklida
nuklida adalah satu set paket untuk Atom untuk menyediakan fungsionalitas seperti IDE untuk berbagai teknologi dan bahasa pemrograman. Ini dirancang untuk memberikan pengalaman pengembangan terpadu bagi para insinyur di seluruh perusahaan, apakah mereka bekerja pada aplikasi iOS asli, React dan React Native code, atau Hack untuk dijalankan di server web HHVM kami.

ujung belakang:
Presto
Presto adalah mesin kueri SQL terdistribusi open source untuk menjalankan kueri analitik interaktif pada sumber data dari semua ukuran, dari gigabyte hingga petabyte. Facebook menggunakan Presto untuk kueri interaktif terhadap berbagai penyimpanan data internal, termasuk penyimpanan data 300PB. Lebih dari 1.000 karyawan Facebook menggunakan Presto setiap hari untuk menjalankan lebih dari 30.000 kueri yang, secara total, memindai lebih dari satu petabyte per hari.
osqueria
osqueria memberi Anda antarmuka SQL untuk mencoba kueri baru dan menjelajahi sistem operasi Anda. Dengan kekuatan bahasa SQL lengkap dan lusinan tabel built-in yang berguna, osquery adalah alat yang sangat berharga saat melakukan respons insiden, mendiagnosis masalah operasi sistem, atau memecahkan masalah kinerja. Menerapkan alat keamanan yang juga memungkinkan pengembang dan administrator.
RocksDB
RocksDB dibangun di atas LevelDB agar dapat diskalakan untuk dijalankan di server dengan banyak inti CPU, untuk menggunakan penyimpanan cepat secara efisien, untuk mendukung beban kerja I/O, dalam memori, dan tulis sekali, serta fleksibel dan memungkinkan inovasi.
Bukan hanya perangkat lunak, tetapi Facebook juga telah menciptakan berbagai perangkat keras khusus yang kompeten untuk memenuhi skalanya yang terus meningkat di bawah Buka Proyek Komputasi. Tidak seperti Google dan Microsoft, Facebook tidak hanya memberikan kontribusi penelitiannya, tetapi juga implementasi akhir untuk komunitas open source. Beri tahu kami di komentar pendapat Anda tentang kontribusi sumber terbuka Facebook.
Lihat artikel kami yang lain tentang proyek sumber terbuka di sini.
