Простые модели и кодогенераторы на 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
Архив записей в блогах:
Межзвёздный астероид Оумуамуа, похоже, покрыт "одеялом" из органики, а внутри него может находиться лёд. О таком открытии сообщила команда астрономов во главе с Аланом Фитцсиммонсом ( Alan Fitzsimmons ) из Университета Квинс в Белфасте в статье , опубликованной в журнале ...
Вчера решила завести себе Инста. По принципу - у всех есть, одна я как дура. Выложила старых фоток - понравилось. Сердечки, капли подписчиков и, что самое главное - тишина. Никакого срачика, никаких тролей, никакой политики. Полночи ловила дзен и пребывала в блаженой нирване. Смотришь фотк ...
Альтернативная экскурсия в Ельцин-центр. #Choose_or_Lose Идея, в принципе, правильная: Не можешь победить - возглавь! Но исполнение, как обычно, нифпизду не в Красную Армию, еп. В связи с чем у нас возникает ряд закономерных вопросов: Перехват инициативы - тактика верная. Как ...
В Париже вчера шел дождь. Присутствующие на месте король Испании Фелипе и королева Летиция. Первое фото ниже, предполагаю, может служить иллюстрацией глобального недоумения по поводу вчерашней церемонии, задуманной французами. И также фото номер 6, с королем и королевой Бельгии. ...
Ни слова о трагедии в Москве.Молчит его патрон Путин-и вассал помалкивает. Найдётся ли смелый журналист на прессконференциях который задаст вопрос Путину,как главе-гаранту-прочая-прочая, и Кадырову ,как самому муслимистому из муслимов. Обычно они высказываются.Особенно самый патриотичны ...