15 پروژه ی اپن سورس فیسبوک که باید بشناسید

سیده آمین ارمان

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2016/05/10
ارسالی ها
1,730
امتیاز واکنش
20,744
امتیاز
795
محل سکونت
البرز
فیسبوک تاکنون پروژه های بسیاری را به صورت متن باز در اختیار جهانیان و کسانی که می خواهند با ساز و کار این شبکه ی اجتماعی آشنا شوند، گذاشته است. این پروژه ها توسط بسیاری از دیگر کمپانی های کوچک تر مورد استفاده قرار می گیرند و کارمندان فیسبوک نیز به طور مداوم، در حال به روز رسانی آن ها هستند. فیسبوک از راه های گوناگون با پروژه های بزرگ در زمینه های متنوعی همانند ابزارهای موبایل، سیستم های دارای اطلاعات حجیم، کتابخانه های وب سمت کلاینت، زیرساخت های بَکِند و ... همکاری کرده و آن ها را توسعه می دهد. اکانت GitHub فیسبوک، به تنهایی دارای بیش از 90 سورس کد پروژه و بیش از 40000 نسخه است که مجموعاً بیش از 15000 بار مورد استفاده قرار گرفته اند.

فعالیت فیسبوک در پروژه های متن باز را می توان در سه بخش موبایل، وب و بَکِند و زیرساخت خلاصه کرد. برترین پروژه ها در این بخش ها، به شرح زیر هستند:

لیست پروژه های متن باز تحت پلتفرم موبایل فیسبوک
Buck: باک یک سیستم ساخت قدرتمند برای اندروید است که کاربرانش را به ساخت ماژول های کوچک و قابل استفاده ی مجدد تشویق می کند. از آنجایی که اپلیکیشن های اندروید عموماً بر پایه ی جاوا هستند، باک نیز همچون یک سیستم ساخت جاوا عمل می کند.

Rebound: ریبَوند یک کتابخانه ی جاوا است که حرکات و داینامیک فنر را مدل سازی می کند. از مدل های ریبَوند می توان برای طراحی انیمیشن هایی که به واقعیت شباهت زیادی دارند، استفاده کرد چرا که امکان ادغام فیزیک دنیای واقعی در اپلیکیشن ها با استفاده از این کتابخانه وجود دارد. ریبَوند از مفاهیم و تعریف های مشابهی با Origami استفاده می کند و بدین ترتیب می توان پروژه های طراحی شده توسط Origami را نیز به سرعت در اپلیکیشن خود تبدیل و پیاده سازی کنید.

Origami: اُریگامی ابزاری برای طراحی رابط های کاربری مدرن است. به کمک اُریگامی می توانید به سرعت یک طرح آزمایشی ایجاد کرده، آن را بر روی آیفون و یا آیپد خود اجرا کنید، آن را اصلاح کرده و سپس کدهای عملی آن را در اختیار مهندسان بگذارید.

Stetho: استثو یک پلتفرم عیب یابی کاملاً مدرن برای اندروید است. استثو می تواند با کمک یک پروتکل کلاینت/سرور، ابزار قدرتمند Chrome Developer Tools را برای اپلیکیشن شما فراهم آورد. زمانی که اپلیکیشن تان با آن ادغام شد، به راحتی به مرورگر کروم رفته و آدرس chrome://inspect را وارد کنید. سپس بر روی «Inspect» کلیک کرده و کار خود را آغاز کنید.

Infer: پروژه ی اینفِر که متعلق به فیسبوک است، در حقیقت یک ابزار استاتیک تحلیلی است که به کمک آن می توان باگ های اپلیکیشن های اندروید و iOS را پیش از عرضه شناسایی کرد. اگر بخشی از کدهای زبان های Objective-C، Java و یا C را به اینفِر بدهید، این ابزار لیستی از باگ های احتمالی را به شما نشان خواهد داد. هر کسی می تواند از اینفِر برای جلوگیری از وقوع باگ های بزرگ و حساس در اپلیکیشن ها استفاده کند تا پیش از ورود اپلیکیشن به گوشی کاربران، از توقف های ناگهانی و یا عملکرد ضعیف جلوگیری شود.

لیست پروژه های متن باز تحت وب فیسبوک
React Js: ری اَکت یک کتابخانه ی انعطاف پذیر و بهینه از جاوا اسکریپت است که از آن برای طراحی رابط های کاربری استفاده می شود. بسیاری از برنامه نویسان از ری اَکت به عنوان V در MVC استفاده می کنند. از آنجایی که ری اَکت با بخش های دیگر پروژه ی شما کاری ندارد، می توان از آن در بخشی کوچک از پروژه و یا قابلیتی جداگانه آزمایش کرد (برای آشنایی بیشتر با مفهوم MVC، به فصل هشتم از دوره ی آموزش اصول برنامه نویسی در سکان آکادمی مراجعه نمایید.)

HHVM :HHVM یا Hip Hop VM یک ماشین مجازی متن باز است که برای اجرای برنامه های زبان های Hack و PHP به کار می رود. HHVM از راهبرد کامپایل لحظه ای (JIT) استفاده می کند تا در عین حال که عملکرد بالایی دارد، انعطاف پذیری توسعه در زبان PHP را نیز حفظ کند. برای فیسبوک، استفاده از HHVM توانسته در مقایسه با Zend PHP 5.2، عملکرد خروجی را تا 5 برابر افزایش دهد. HHVM معمولاً به عنوان یک سرور جداگانه اجرا می شود که جایگزین هم Apache و هم modphp می گردد. با این حال، می توان از طریق دستورات خطی، اسکریپت های مستقل را نیز در HHVM اجرا کرد.

Flux: فلاکس، ساختار اپلیکیشنی است که فیسبوک از آن برای ساخت وب اپلیکیشن های سمت کاربر استفاده می کند. فلاکس به نوعی مکمل کامپونت های قابل تفکیک ری اَکت بوده و جریان داده را به یک سو هدایت می کند. در حقیقت، فلاکس بیشتر یک الگو است تا یک فریمورک رسمی و شما می توانید بلافاصله و بدون اضافه کردن کد چندانی، از آن در پروژه ی خود استفاده کنید.

Flow: فِلو قابلیت استاتیک تایپ را در زبان جاوا اسکریپت فراهم می کند تا بدین شکل، بهره وری و کیفیت کد برنامه نویس را افزایش دهد. هدف اصلی فِلو آن است که با کمترین تلاش از سوی برنامه نویس، مشکلات و ایرادات در کد جاوا اسکریپت را بیابد. حتی اگر کد شما دارای توضیحات نباشد، فِلو می تواند با دقت، تمامی انواع متغیرها در سراسر برنامه را دنبال کرده و ایرادات را به شما نشان دهد.

fb-flo :اف بی فلو یک افزونه برای مرورگر کروم است که به شما امکان ویرایش برنامه های در حال اجرا، بدون نیاز به راه اندازی مجدد آن ها را می دهد. ادغام این افزونه با سیستم ساخت و محیط توسعه شما بسیار آسان بوده و می توانید از آن در ادیتور مورد علاقه ی خود نیز استفاده کنید.

Jest: ژِست یک فریمورک آزمایش کد برای جاوا اسکریپت است. ژِست بر روی فریمورک تست Jasmine ساخته شده و از همان دستورات (expect(value).toBe(other استفاده می کند. ژِست به طور اتوماتیک، ماژول های CommonJS که توسط ()require برگردانده می شوند را بازسازی کرده و اکثر آن ها را به حالت قابل آزمایش تبدیل می کند.

Nuclide: نوکلاید مجموعه ای از نرم افزارها برای ادیتور Atom است تا به کمک آن بتوان عملکردی شبیه یک IDE برای زبان های برنامه نویسی و تکنولوژی ها متنوع ایجاد کرد. نوکلاید بدین منظور طراحی شده تا بتواند یک تجربه ی توسعه ی یکسان برای مهندسان در سراسر کمپانی ایجاد کند (چه آن ها بر روی اپلیکیشن های iOS و React فعالیت داشته باشند و چه از Hack برای اجرا روی وب سرورهای HHVM استفاده کنند.)

لیست پروژه های متن باز بَکِند فیسبوک
Presto: پِرِستو یک موتور کوئری SQL توزیع شده و متن باز است که به منظور اجرای کوئری های تحلیلی و تعاملی بر روی دیتا سورس های مختلف با حجم های متفاوت، از گیگابایت گرفته تا پتابایت، طراحی شده است. فیسبوک از پِرِستو برای اجرای کوئری های تعاملی بر روی سورس های داده ای داخلی، از جمله دیتا سورس 300 پتابایتی اش، استفاده می کند. بیش از 1000 کارمند فیسبوک، روزانه از پِرِستو برای اجرای بیش از 30000 کوئری استفاده می کنند که به طور روزانه، یک پتابایت اطلاعات را مرور می کند.

Osquery: آسکوئری، یک رابط کاربری SQL را در اختیار شما قرار می دهد تا کوئری های جدید را امتحان کرده و سیستم عامل خود را کاوش کنید. با در اختیار داشتن قدرت یک زبان کامل SQL و چندین جدول کارآمد، آسکوئری ابزاری بسیار ارزشمند در زمان کنترل بحران ها، عیب یابی مشکلات عملیات سیستمی و یا بررسی ایرادات عملکردی خواهد بود.

RocksDB : RocksDB نسخه ای بهبود یافته از LevelDB است که می تواند بر روی سرورهایی با تعداد بالای هسته های پردازنده کار کند؛ به طور بهینه از حافظه های پرسرعت استفاده کند؛ از حجم های کاری وابسته به سیستم های ورودی/خروجی، درون حافظه ای و یک باره پشتیبانی کند و همچنین، به قدری انعطاف پذیر باشد که امکان نوآوری و افزودن قابلیت های جدید به آن نیز وجود داشته باشد.

نه تنها در بخش نرم افزار، بلکه در بخش سخت افزار نیز فیسبوک قطعات اختصاصی متعددی را تولید کرده تا بتواند به تقاضای روزافزون کاربران خود پاسخ دهد. بر خلاف گوگل و مایکروسافت، فیسبوک نه تنها پروژه های تحقیقاتی خود را به اشتراک می گذارد بلکه نتیجه ی نهایی را نیز در اختیار جامعه ی متن باز قرار می دهد. شاید گوگل و دیگران نیز باید از فیسبوک یاد گرفته و ابزار مورد استفاده ی خود را به کاربرانی که در مورد چگونگی عملکرد کمپانی های عظیم سؤال دارند، معرفی کنند
 

برخی موضوعات مشابه

بالا