DSL на русском языке в Groovy
Примеры кода
Post image
Выбор Groovy и библиотек для Domain specific language (DSL) на русском. Особенности Closure, стратегии делегирования, command chain, иерархия делегатов с аннотацией @Delegate. Русскоязычная альтернатива def через Binding, AST-трансформации и метки. Разница между методами и свойствами, включение скриптов друг в друга, поиск аналога assert. Локализация через метапрограммирование.
Контрактное программирование в Groovy 4
Примеры кода
Появление GContracts в Groovy 4. Пример использования контрактов, влияние на AST-трансформации, особенности устройства. Попытка усилить и ослабить условия, обойти через особенности языка и рефлексию. Более подробное их определение, пересечение накладываемых ограничений с утверждениями, интерфейсами-типами и абстрактными классами. Возможные преимущества и недостатки, конкуренция с валидацией, возможные места для применения.
Самый простой маппер для базы данных знаков зодиака
Примеры кода
Post image
Простая база данных знаков зодиака, объединение Groovy и JavaFX, отображение множеств, виды маппинга. Маппинг, основанный на ассоциации. Классы-универсалы для работы с запросами и соединением, валидация, класс маппинга для отображения типов и отношений, менеджер сущностей, примитивная кодогенерация.
Влияние трейтов на архитектуру
Примеры кода
Моделирование захвата трейтом иерархии классов. Использование трейтов для функционала, не связанного с предметной областью, цепочки ответственности, SAM-трейты, наследование от набора компонентов во фреймворке. КотоПёс и его реализация на трейтах и без.
Реализация сайта (Groovy-генератор)
Примеры кода
Выбор Groovy как языка для статического генератора. Структура генератора: информационная и инфраструктурная составляющие, краткий их обзор. Шаблоны, инклюдинг, логика вывода, вспомогательные функции в шаблонах. Заключение, напоминание об экспериментальном характере генератора и влияния его изменений на блог.