Компания Facebook выложила в свободный доступ библиотеку Hack Codegen, которая автоматически генерирует исходный код на языке программирования Hack для виртуальной машины HipHop (HHVM). Она позволяет создавать схемы с фрагментами повторяющегося кода и автоматической реализацией всей сопутствующей функциональности. Библиотека сама генерирует необходимые классы, переменные, методы, функции, интерфейсы, файлы и другие стандартные блоки кода.

Hack — PHP-подобный язык программирования общего назначения со статической типизацией, представленный Facebook в марте 2014 года. Целью создания языка стало совмещение быстрого цикла разработки PHP с надежностью и производительностью, которые обеспечивает статическая типизация. К настоящему моменту Hack и HHVM поддерживают многие фреймворки.

Кроме статической типизации, в Hack внедрено множество фич из современных языков программирования, которых не хватало в PHP: это обобщенное программирование, псевдонимы типов, обнуляемые типы и ограничения на параметры типов, коллекции, лямбды, а также проверка возвращаемых типов и типов параметров во время выполнения.

Библиотека Hack Codegen упрощает работу при создании сложных веб-сайтов и больших проектов.

Пример реализации схемы в Hack Codegen

codegen_class('HelloWorld')
  ->addMethod(
    codegen_method('sayHi') 
      ->setBody('echo "hello world\n";') 
  );

Эта схема генерирует такой класс.

class HelloWorld {
  public function sayHi() {
    echo "hello world\n";
  }
}

Исходный код Hack Codegen опубликован на Github.

«Возможность генерировать код с помощью инструмента автоматической генерации позволяет разработчикам увеличить уровень абстракции, создавая декларативные фреймворки, которые транслируются в высококачественный код Hack. Мы некоторое время уже используем библиотеку Hack Codegen в компании Facebook. Наблюдая столь значительный эффект от ее применения внутри компании, мы открываем исходный код, чтобы больше людей могли воспользоваться ее преимуществами», — пишет программист Алехандро Марку (Alejandro Marcu) в официальном блоге Facebook.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии