Facebook открыто взял собственная библиотека в следствии поиска чтобы машинально генерировать код Взлома. Взлом есть более масштабируемой версией PHP, созданного в Facebook.
Facebook заявил, что это – открытый поиск источников его библиотека Hack Codegen для генерации записи и кода Взлома его в файлы со знаком, которые предотвращают нежелательные модификации.Взлом есть языком программирования Facebook, созданный для его Виртуальной автомобили HipHop (HHVM), что взаимодействует с PHP. Взлом сверяет стремительный цикл разработки какое количество с дисциплиной, обеспеченной статическим контролем типов, додавая довольно много опций, в большинстве случаев находимых на вторых современных языках программирования, сообщили инженеры Facebook.Взлом снабжает мгновенный тип, проверяющий инкрементно диагностику файлов разработчика, потому, что они редактируют их.
Это в большинстве случаев трудится меньше чем в 200 миллисекундах, упрощающих для разработчиков интегрировать его в их поток операций развития, не воображая значимую задержку.HHVM есть виртуальной машиной с открытым исходным кодом, созданной для исполнения программ, записанных во Взломе и PHP.
HHVM применяет своевременный (JIT) подход подборки с целью достижения превосходящей производительности при поддержании гибкости развития, которую снабжает PHP, сообщил Facebook.С большой частью его начальной инфраструктуры, основанной на PHP, Facebook создал Взлом, чтобы оказать помощь разработчикам избежать многих ловушек разработки PHP. «Любой PHP программист знаком с ежедневными задачами, которые могут быть умными либо громоздкими», записали Жюльен Верлаге и Алок Менгрэджани в должности на блоге разработки Facebook, когда компания выпустила Взлом в прошедшем сезоне.
Верлаге есть все еще участником технического штата Facebook, трудящегося над Взломом, тогда как co-разработчик Менгрэджани с того времени покинул компанию.«Традиционно, динамически типизированные языки допускают стремительную разработку, но жертвуют свойством зафиксировать неточности рано и разбирать код скоро, в особенности на громадных кодовых базах», записал дуэт в должности с прошлого года. «Иначе статически типизированные языки снабжают больше совокупности помощи, но довольно часто за счет стремительной итерации. Мы полагали, что должна была быть территория добрейшего восприятия.
Так Взлом появился. Мы полагаем, что это предлагает лучший из и из динамически типизированных и из статически типизированных языков, и что это будет полезно к проектам всех размеров».Помимо этого, «Взлом стремился решить две ответственных проблемных области для PHP, то есть, повышая кодовое уровень качества, потому, что кодовые количества возрастают (к примеру, додавая более сильную аннотацию типа) и улучшая выполнение веб-приложений (к примеру, улучшая подборку до собственного оборудования)», сообщил Аль Хилва, аналитик из IDC, в отчете о мастерстве разработки ПО Facebook.
«’Взлом и HHVM также содействовали открытому исходному коду и оказали большое влияние на мир PHP, что исторически перемещался весьма медлительно в развитие языка программирования PHP и его базисной технологии», добавил Хилва. «Hack/HVVM есть еще одной серьёзной размерностью, где Facebook сгибал собственные технологические мускулы и совместно применял с миром плоды его инноваций. Взлом и HVVM улучшили государство PHP, и в ходе улучшил состояние в веб-разработке ПО серверной стороны».
Введите Взлом Codegen, что машинально генерирует код взлома.«Свойство генерировать код при помощи автоматизированной генерации кода разрешает программистам увеличивать уровень абстракции, делая платформы, которые декларативны и которые переводятся в отличный код Взлома», сообщил Алехандро Марку, разработчик ПО в Facebook, трудящемся над Взломом, в сообщении в блоге 20 августа. «Мы применяли Взлом Codegen в Facebook некое время. После наблюдения такого внутреннего успеха, мы открыто полученный в следствии поиска эта библиотека так, чтобы больше людей имело возможность применять в собственных заинтересованностях его».
Марку сообщил, перед тем как Facebook создал Взлом Codegen, компания генерировала код при помощи конкатенации строчков и нескольких функций ассистента. «На рабочей группе обслуживания инфраструктуры продукта в Facebook мы изучали, как улучшить одну из отечественных внутренних совокупностей для записи и чтения данных», сообщил он.«Ответ, которое мы внесли предложение, было в том, чтобы записать высокоуровневую абстракцию, схему, которая будет держать подробное описание типа объекта», записал Марку в должности. «Потом Мы имели возможность записать сценарий, что генерирует узел, мутатор, загрузчик, тесты, и т.д., из схемы, и вдобавок устанавливать устройство хранения данных (к примеру, дб MySQL)».Марку подчернул, что команда осознала рано, по которому им будет нужна добрая библиотека для генерации кода, начиная с конкатенации строчков для генерации кода вправду не масштабируются. «В то время, Мы не сделали так громадной генерации кода в FB, в основном выведя ценности в массивы, так, у нас не было добрых инструментов за исключением подписания файлов», сообщил он.
Это вынудило команду инженеров трудиться для завершения Взлома проект Codegen. За с половиной год Facebook переместил практически собственную всю кодовую базу PHP для Взламывания, и благодаря органическому принятию и благодаря многим инструментам рефакторинга собственной разработки.«После наблюдения такого внутреннего применения Взлома Codegen для разнообразных приложений это – отечественное наслаждение к открытому исходному коду эта библиотека для внешнего сообщества для применения», сообщил Марку.
Разработка возможно отыскана тут.«Примечательно, что мы возвращаемся в автоматизированную генерацию кода, которая была грандиозным предприятием в разную эру», сообщил Хилва. «Я пологаю, что Codegen есть полезным новым инструментом, что может оказать помощь производительности разработчика в верных установках. Неприятности в большинстве случаев для автоматизированной генерации кода в большинстве случаев изучали саму абстракцию, и потом свойство разместить трансформации в сгенерированном коде.
Более новые разработки всегда вводят новшества около этих неприятностей».