Ray Cromwell на своём блоге закончил цикл статей о том, как использовать генераторы в GWT.
Идея отличная: зачем делать что-то в run-time, если можно сделать то же самое в compile-time? Если можно просто при компиляции сгенерить нужный код?
Мало того, идея совсем не новая - насколько я знаю. есть много "мета-языков", которые делают то же самое.
Но в GWT это интегрировано в сам компилятор: к примеру, для классов, помеченных, как имплементирующие IsSerializable создаются автоматом "стабы", в которых и происходит сериализация/десиализация. В .NET происходит практически то же самое, но в рантайме - создаётся временная сборка, которая сериализует необходимый класс.
Вроде бы то же самое, но есть одно "но" - повторить подобную процедуру достаточно сложно. В GWT с помощью генераторов можно это сделать намного легче.
Как? Вот статьи Рея и открывают "мистику" генераторов:
GWT Demystified: Generators, Part 1
GWT Demystified: Generators Part Deux
и финальная GWT Demystified: Generators Part 3, Meet the Oracle
Так же доступны через svn исходники его проекта GWT-Exporter, позволяющего помечая интерфейсом Exportable генерировать "стабы" для вызова GWT-объектов из JavaScript (без него надо было бы создавать специальные методы для "бриджинга" вызовов к GWT-объектам, так как методы последнего могут быть изменены при компиляции)
В любом случае, очень интересная статейка.
No comments:
Post a Comment