Лучшие 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 в сфере распространения проектов и наработок с открытым исходным кодом.

Источник

Creative Commons License
Статья Лучшие OpenSource проекты Facebook распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Ваше имя тоже может быть здесь. Начните писать статьи для Losst. Это просто! Смотрите подробнее как начать писать статьи - Пишите для нас

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

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

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

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

Ответить

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

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