mend0za: (Default)
Самый лучший фрагмент сгенерированного кода:


#define VARIABLE_NAME_272 “BmcIpv6StaticAddressInterfaceIdentifierSourceNonVolatile”
#define ConfBmcIpv6StaticAddressInterfaceIdentifierSourceNonVolatile 0x1a38
mend0za: (Default)
Итак, после мозгового штурма, устроенного здесь, как продолжение работ, описанных здесь за минувшее время была сделана реализация. Во многом отошедшая от начального замысла.

Нам удалось воплотить эпическую денежную дихотомию “дорогие идиоты - дешёвые идиоты”. Дорогой идиот - это я, дешёвый идиот - оператор 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 (вся идея отрыва описания от реализации).

Ад и мета-программирование в комиксах.
mend0za: (Default)
Как обычно - хочется страшного.

А именно - мне надо из Excel-таблицы генерить конфигурацию для моего кодогенератора (awk).
Конфигурация - в CSV-формате. Заказчик обоссал себе пятки и уже внёс в план.

Чо делать? Куда бежать? Кому сдаваться?

Update1, Use Case:
1. Есть Excel созданный лучшими умами современности, с данными о нашем формате и большой кнопкой "Сделать мне красиво".
2. Тупой лось малобюджетный junior-разработчик открывает xls-файл и нажимает большую красную кнопку.
3. Тупому лосю малобюджетному разработчику выдают диалог "Куда, сохранить сгенерированную конфигурацию, хозяин?"
4. Конфигурация сохранена и используется в компиляции.

Как мне представляется - тут чтото вроде VBA, но я областью не владею, потому спрашиваю.

Update2:Excel в роли GUI в котором рисуют конфигурацию на вход кодогенератора.
mend0za: (karate)
Под бодрящие звуки Steppennwolf с воодушевлением, обострённым близким дедлайном, ломаю первую, вылизанную и оттестированную версию своего кустарного кодогенератора.

В настоящий момент дикий мужчина делает полиморфизм и reflection на Plain C + AWK + С Preprocessor.

Да содрогнется любой заказчик от недо-функциональщика на бреющем полёте метапрограммирования.
Cрезающего сосны под корень. Потом верхний слой почвы. Следом гранит. Но в итоге выходящий на около-земную орбиту.

BORN TO BE WIILD! Пусть сдохнут все кто нас не любит.

гнусные подробности )

особо гнусные подробности )
mend0za: (Default)
В целлюлозе вышла очередная нетленка, порадовал журналЪ "Сетевые решения", №8/2008

Статья посвящена событиям давно минувших дней: командировке в Индию, во Flextronics Software Systems (now Aricent).
CMMI-5 (для тех кто в теме).


"Когда я работал программистом в маленькой индийской корпорации .... (Читать)



Написана в 2005 году, по горячим следам, но не утратила актуальности и теперь.

Profile

mend0za: (Default)
mend0za

June 2023

S M T W T F S
    123
45678910
11 121314151617
18192021222324
252627282930 

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 9th, 2025 03:51 am
Powered by Dreamwidth Studios