Простые модели и кодогенераторы на clojure

топ 100 блогов metaclass06.08.2012 https://github.com/csete/gqrx/blob/master/pulseaudio/pa_device_list.h (код не мой, просто я в нем сейчас разбираюсь)
По ссылке есть класс pa_device, единственное назначение которого - хранить три поля описания pulseaudio девайсов. Занимает это дело 23+8 - 31 строку.

Когда у меня возникает надобность на обычных языках делать такие классы, у меня не хватает терпения их писать вручную и я их генерирую или из t4-шаблонов или из описания на Clojure, например, этот класс я бы описал так, сделав макрос def-gen-class:
(def-gen-class pa_device 
  "комментарий к классу"
  index uint "комментарий к полю"
  name string "..."
  description string "...")

в итоге получится переменная pa_device, внутри которой лежит описание класса в удобном для кодогенерации виде. Можно map, можно список кортежей, без разницы, благо кложурь имеет развитый механизм разборки структур данных на составляющие.

Полученное описание можно при желании расширить генерацией, например, пользовательского интерфейса или сериализации-десериализации.
Для своей опердени я таким образом генерю классы документов, которые умеют загружать-сохранять себя в JSON. Из 90 строк кода на кложури создается 1226 строк на дельфи.

Оставить комментарий

Предыдущие записи блогера :
02.08.2012 Qt
Архив записей в блогах:
Как и ожидалось, после выборов президента РФ пошло обострение обстановки. Массированные обстрелы энергосистемы Украины (8 ракет по одной только ДнепроГЭС), теракт в "Крокусе" и т.д. То ли ещё будет. Дополнение. Слова Путина на заседании коллегии ФСБ России, 19 марта 2024 года : " ...
Сегодня вытащила коробки с шарфами/шалями/коулами — погода портится — и мне в руки попал мой подзабытый любимчик. Он такой красивый, что нельзя его не показать. Вязала по описанию Alpine Frost Scarf от Amy O'Neill Houck , но набирала 93 п. Крючок 3,0. Пряжа: Lana Grossa Lace Lux , ...
Ну, что, идиоты? Боинг над бандитскими республиками сбили из российского "Бука", прибывшего из России и быстро съебавшегося туда же. Других мнений уже не ...
...
А такими я увидел Керченскую переправу и Керческий пролив в сентябре 2012 года. Ровно за полтора года до Русской весны в Крыму. Мой пост от 10 сентября 2012 года. Текст процитирован без изменений. Только что с поезда, даже толком не поел ещё. Был в восточном Крыму, а это Феодосия и ...