Entry tags:
Вдогонку к предыдущему посту
Самый лучший фрагмент сгенерированного кода:
#define VARIABLE_NAME_272 “BmcIpv6StaticAddressInterfaceIdentifierSourceNonVolatile”
#define ConfBmcIpv6StaticAddressInterfaceIdentifierSourceNonVolatile 0x1a38
#define VARIABLE_NAME_272 “BmcIpv6StaticAddressInterfaceIdentifierSourceNonVolatile”
#define ConfBmcIpv6StaticAddressInterfaceIdentifierSourceNonVolatile 0x1a38
Entry tags:
Духи промышленной автоматизации будут удовлетворены
Итак, после мозгового штурма, устроенного здесь, как продолжение работ, описанных здесь за минувшее время была сделана реализация. Во многом отошедшая от начального замысла.
Нам удалось воплотить эпическую денежную дихотомию “дорогие идиоты - дешёвые идиоты”. Дорогой идиот - это я, дешёвый идиот - оператор GUI.
Документация по данным системы больше не нужна. GUI отныне самодокументированная сущность (в частности мы добавили в базу безразмерное текстовое поле Description).
Следующая фаза - экспорт из GUI в PDF. С выбросом оригинальных описаний в XLS и PDF - в утиль.
Update. О начинке библитеки. Забыл напомнить.
В библиотеке внутре керосинка!:
Отложенный во времени привет миру от нагадивших мне в душу Intel UPNP SDK (ООП на Plain C), Perl (значения по умолчанию), Ruby (Reflection), MVC/QT, ASN.1/asn1c (вся идея отрыва описания от реализации).
Ад и мета-программирование в комиксах.
Нам удалось воплотить эпическую денежную дихотомию “дорогие идиоты - дешёвые идиоты”. Дорогой идиот - это я, дешёвый идиот - оператор GUI.
- (M) База данных в SQlite3 - содержит данные на систему - 321 запись в основной таблице
- (V) GUI морда на QT/C++ - редактирование данных - 1160 строк
- (С) кодогенератор C на Python по данным базы (Чеусов! Фу! В вашем AWK нет SQlite и работы с BLOB!) - 290 строк
- библиотека в Plain C - набор API по работе с данными из кодогенератора - 4693 строки, включая Doxygen и пустые строки.
- Unit-тесты, Plain C - 1200 строк
Документация по данным системы больше не нужна. GUI отныне самодокументированная сущность (в частности мы добавили в базу безразмерное текстовое поле Description).
Следующая фаза - экспорт из GUI в PDF. С выбросом оригинальных описаний в XLS и PDF - в утиль.
Update. О начинке библитеки. Забыл напомнить.
В библиотеке внутре керосинка!:
- реализация собственной системы типов с колхозанским reflection
- полиморфизм и инкапсуляция на Plain C (ООП в стиле JavaScript)
- значениями по умолчанию у каждой из переменных
- системой нотификации изменений (как слинкованных приложений, так и посторонних процессов)
- Концепция “драйвер” (как аттрибут переменной) описывает способ доступа к данным (сейчас их 6).
Отложенный во времени привет миру от нагадивших мне в душу Intel UPNP SDK (ООП на Plain C), Perl (значения по умолчанию), Ruby (Reflection), MVC/QT, ASN.1/asn1c (вся идея отрыва описания от реализации).
Ад и мета-программирование в комиксах.
Entry tags:
Обращение к духам промышленной автоматизации
Как обычно - хочется страшного.
А именно - мне надо из Excel-таблицы генерить конфигурацию для моего кодогенератора (awk).
Конфигурация - в CSV-формате. Заказчик обоссал себе пятки и уже внёс в план.
Чо делать? Куда бежать? Кому сдаваться?
Update1, Use Case:
1. Есть Excel созданный лучшими умами современности, с данными о нашем формате и большой кнопкой "Сделать мне красиво".
2.Тупой лось малобюджетный junior-разработчик открывает xls-файл и нажимает большую красную кнопку.
3.Тупому лосю малобюджетному разработчику выдают диалог "Куда, сохранить сгенерированную конфигурацию, хозяин?"
4. Конфигурация сохранена и используется в компиляции.
Как мне представляется - тут чтото вроде VBA, но я областью не владею, потому спрашиваю.
Update2:Excel в роли GUI в котором рисуют конфигурацию на вход кодогенератора.
А именно - мне надо из Excel-таблицы генерить конфигурацию для моего кодогенератора (awk).
Конфигурация - в CSV-формате. Заказчик обоссал себе пятки и уже внёс в план.
Чо делать? Куда бежать? Кому сдаваться?
Update1, Use Case:
1. Есть Excel созданный лучшими умами современности, с данными о нашем формате и большой кнопкой "Сделать мне красиво".
2.
3.
4. Конфигурация сохранена и используется в компиляции.
Как мне представляется - тут чтото вроде VBA, но я областью не владею, потому спрашиваю.
Update2:Excel в роли GUI в котором рисуют конфигурацию на вход кодогенератора.
Entry tags:
Хреновые будни прикладника
Под бодрящие звуки Steppennwolf с воодушевлением, обострённым близким дедлайном, ломаю первую, вылизанную и оттестированную версию своего кустарного кодогенератора.
В настоящий момент дикий мужчина делает полиморфизм и reflection на Plain C + AWK + С Preprocessor.
Да содрогнется любой заказчик от недо-функциональщика на бреющем полёте метапрограммирования.
Cрезающего сосны под корень. Потом верхний слой почвы. Следом гранит. Но в итоге выходящий на около-земную орбиту.
BORN TO BE WIILD! Пусть сдохнут все кто нас не любит.
( гнусные подробности )
( особо гнусные подробности )
В настоящий момент дикий мужчина делает полиморфизм и reflection на Plain C + AWK + С Preprocessor.
Да содрогнется любой заказчик от недо-функциональщика на бреющем полёте метапрограммирования.
Cрезающего сосны под корень. Потом верхний слой почвы. Следом гранит. Но в итоге выходящий на около-земную орбиту.
BORN TO BE WIILD! Пусть сдохнут все кто нас не любит.
( гнусные подробности )
( особо гнусные подробности )
Entry tags:
Кодогенерация как высшая форма copy/paste
В целлюлозе вышла очередная нетленка, порадовал журналЪ "Сетевые решения", №8/2008
Статья посвящена событиям давно минувших дней: командировке в Индию, во Flextronics Software Systems (now Aricent).
CMMI-5 (для тех кто в теме).
Написана в 2005 году, по горячим следам, но не утратила актуальности и теперь.
Статья посвящена событиям давно минувших дней: командировке в Индию, во Flextronics Software Systems (now Aricent).
CMMI-5 (для тех кто в теме).
"Когда я работал программистом в маленькой индийской корпорации .... (Читать)
Написана в 2005 году, по горячим следам, но не утратила актуальности и теперь.