Лучшие OpenSource проекты Facebook

Это первая статья из серии, в которой мы будем публиковать  лучшие проекты с открытым исходным кодом, которые создают такие большие компании, как Facebook, Twitter, Microsoft, Google, Netflix и т. д. Мы хотим, чтобы наши читатели, были в курсе технологий и проектов, которые помогают этим гигантам делать непрерывные улучшения, независимо от масштаба, как в безопасности, так относительно других важных проблем, с которыми компании сталкиваются каждый день.

Facebook использует, поддерживает и способствует значительному ряду крупных проектов в различных областях, таких как нативные мобильные инструменты, большие системы данных, клиентские веб-библиотеки, серверные среды и инфраструктуры, а также, через Open Compute Project, поддержка серверов и устройств хранения данных. Один лишь аккаунт Facebook на github, в настоящее время имеет более чем 90 репозиториев. Вклад Facebook в проекты с открытым исходным кодом может быть в основном разделен на мобильные и веб-приложения, серверную инфраструктуру.

Лучшие проекты с открытым исходным кодом, созданные в эти категории:

Мобильные приложения

Buck

Buck – это высокопроизводительная система сборки для Android, которая поощряет создание малых, многоразовых модулей, состоящих из кода и ресурсов. Поскольку приложения для Android преимущественно написаны на языке Java, Buck также функционирует и как система сборки для java.

Rebound

Rebound — это java-библиотека, которая моделирует spring-динамику. Spring-модели Rebound могут быть использованы для создания анимации, которые естественным путем внедряют мир реальной физики в ваше приложение. Rebound использует те же самые spring-константы, что и проект Origami, делая более легким процесс конвертации макетов взаимодействия, созданных в Origami, прямо в ваше Android-приложение.

Origami

Origami — это инструмент для разработки современных пользовательских интерфейсов. Здесь вы можете быстро создать прототип, запустить его на своем iPhone или iPad, пересобрать его, и экспортировать фрагменты кода, которые ваши инженеры смогут в дальнейшем использовать.

Stetho

Stetho — это новая платформа для отладки в Android. Она включает мощные инструменты разработчика Chrome, которые реализуются с помощью клиент-серверного протокола, который программа Stetho предоставляет для вашего приложения. Как только ваша заявка будет интегрирована, просто откройте chrome://inspect и нажмите кнопку “проверить” (Inspect), чтобы начать отладку!

Infer

Facebook Infer — это инструмент статического анализа для обнаружения багов в Андроид и iOS приложениях, прежде чем они будут представлены широкой аудитории. Если Вы предоставите Infer код Objective-C, java, или C код, он выдаст список возможных ошибок. Вы можете использовать вывод для перехвата критических ошибок, прежде чем они будут отправлены на телефоны пользователей, и предотвратить падения приложений или снижение производительности. Infer выявляет критические ошибки, такие как попытка использовать не инициированный объект (NEP), утечки ресурсов и утечки памяти.

Веб-приложения

React JS

React JS — это эффективная и гибкая JavaScript библиотека для построения пользовательского интерфейса. Много людей используют React как V в MVC. React не делает никаких предположений об остальной части стека ваших технологий, но его довольно легко опробовать на небольшой функции в существующем проекте.

HHVM

HHVM (Хип-Хоп VМ) — виртуальная машина c открытым исходным кодом, предназначенная для выполнения программ, написанных в Hack и PHP. HHVM использует «just-in-time» (jit) подход для компиляции, чтобы добиться высокой производительности при сохранении гибкости девелопмента, которую дает PHP. Она дает более чем 5-кратное увеличение пропускной способности для Facebook по сравнению с Zend в PHP 5.2. Хип-хоп чаще всего работает как автономный сервер, заменяя Apache и modphp, но он может также запускать скрипты из командной строки.

Flux

Flux — это архитектура приложения, которую Facebook использует для построения клиентской части веб-приложений. Она дополняет компоненты React, используя однонаправленный поток данных. Это скорее шаблон, нежели формальный фреймворк, и вы можете начать использовать немедленно Flux даже с малым количеством нового кода.

 

flux-1024x511

 

Flow

Flow добавляет статическую типизацию в JavaScript, чтобы улучшить производительность труда разработчиков и качество кода. Цель Flow — найти ошибки в коде JavaScript с минимальными усилиями программиста. Flow в значительной степени зависит от типа вывода, может найти ошибки, даже когда программа не была аннотирована – он точно отслеживает типы переменных, проходящих через программу.

fb-flo

fb-flo – расширение Chrome, которое позволяет изменять запущенные приложений без перезагрузки. Его можно легко интегрировать в вашу систему разработки, притом вы можете пользоваться вашим любимым редактором.

Jest

Jest — это платформа модульного тестирования для JavaScript. Она построена на топовой части тестового фреймворка Jasmine, используя его знакомые значения и утверждения. Она автоматически обрабатывает на commonjs модули, подготавливая большинство существующего кода для тестирования.

Nuclide

Nuclide — это набор пакетов для Atom, чтобы обеспечить IDE-like функциональные возможности различных языков программирования и технологий. Он cконструирован для того, чтобы обеспечить унифицированный опыт для инженеров в компании — работают ли они на родных iOS приложениях, на React и React нативном коде, или на Hack, чтобы работать на HHVM веб-серверах.

Серверная инфраструктура (Back-end)

Presto

Presto — SQL-движок запросов с открытым исходным кодом для запуска интерактивных аналитических запросов к источникам данных различных объемов, от гигабайтов до петабайтов. Facebook использует Presto для интерактивных запросов в отношении нескольких внутренних хранилищ данных, включая хранилища данных 300PB. Более 1000 сотрудников Facebook используют Presto ежедневно для работы над более чем 30 000 запросами, в общей сложности Presto сканирует 1 петабайт каждый день.

Osquery

Osquery дает вам SQL-интерфейс для опробации новых запросов и изучения операционной системы. Имея в своем арсенале всю силу языка SQL и десятки интегрированных, полезных таблиц, Osquery — бесценный инструмент для реагирования на инциденты, диагностики проблем системных операций или устранении проблем, связанных с производительностью. Также можно развернуть полезный инструмент безопасности, который доступен разработчикам и администраторам.

RocksDB

RocksDB базируется на LevelDB для масштабируемой работы на серверах со многими CPU-ядрами. Инструмент создан чтобы эффективно использовать высокопроизводительные системы хранения, поддерживать IO-связи, операции в памяти и write-once нагрузки, быть гибким, давая место для развития и инноваций.

Заключение

Facebook создает не только программное обеспечение, но и различные аппаратные средства, чтобы удовлетворять свои постоянно возрастающие нужды в рамках Open Compute Project. В отличие от Google и Microsoft, Facebook не только способствует научно-исследовательской работе, но и окончательной реализации новых идей для сообщества, связанного с открытым исходным кодом.

Расскажите нам в комментариях о том, что вы думаете о вкладе Facebook в сфере распространения проектов и наработок с открытым исходным кодом.

Источник

Оцените статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (4 оценок, среднее: 5,00 из 5)
Загрузка...

2 комментария

  1. Citrus Ноябрь 18, 2016 Ответить
  2. Ильдар Ноябрь 18, 2016 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: