metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-07-19 03:24 pm

Адский холивар

На тему "зачем нужен reflection и метаданные, если все можно писать вручную в коде".
Это пиздец, граждане. Я подозревал, что есть люди абстрагированные от мира реальной разработки и его проблем, но не подозревал, что настолько.

ссылко 1
ссылко 2

[livejournal.com profile] zabivator и второй персонаж оттуда усиленно убеждают, что ничего этого не нужно, а потом комментом ниже предлагают решения, которые являются ничем иным, как закатом солнца реализацией рефлекшена и метаданных вручную.

Я тут сижу, думаю, как бы это вообще всю эту метаданную жопу вынести на уровень модели и генерить из нее код, затем мержить с написанной вручную нетривиальностью и таким образом избавится от 1000-кратного писания одного и того же кода "база данных->sqlreader->поле объекта->веб-сервис->поле объекта на клиенте->элемент гуя->поле объекта->веб-сервис->поле объекта->sqlparameter->база данных". Потому что у меня за пару дней может база на 3-5 таблиц увеличится, в каждой по 10-20 полей, и это все надо выставить юзеру на редактирование, да еще красиво, с подписями на трех разных языках и чтобы работать можно было и с мыши и с клавиатуры и чтобы не тормозило, и чтобы неправильных данных при всем желании запилить нельзя было.

А народу пофег, как я посмотрю. Нужно конфиг руками читать - читают. Понадобится изменения сделать - будут дописывать case в switch или там if/else и молиться, что остальные команды разработчиков код сохранения не поломают, и что имена будут одинаковые.

Видимо, я что-то в современной софторазработке и принятой в ней эффективности работы отдельных разработчиков не понимаю.

[identity profile] metaclass.livejournal.com 2009-07-20 07:59 am (UTC)(link)
Самодельные DSL это таки идея бродящая в массах усиленно, особенно с всяким метапрограммированием и вычислениями на системах типов, где их делать проще.

[identity profile] dmzlj.livejournal.com 2009-07-20 09:36 am (UTC)(link)
Я первый раз их увидел в промышленных масштабах в инвест. банке. В системе, где часть исходников содержала таймстемпы 94-го года, около 1 гигабайта негенереных исходников (генеренных даже затрудняюсь сказать сколько) для гуя и базы. На C++. Генерился эпических размеров апп. сервер на несколько нод, с совершенно сотонинским по развесистости гуем на Motif. Где на отдельные виджеты нужна были свои лицензии, и если лицензии во время не проплатить и не проаапдейтить сервер лицензий, то вместо виджетов рисовались разноцветные прямоугольники. Сила была. Сейчас так не умеют :)

[identity profile] dmzlj.livejournal.com 2009-07-20 09:38 am (UTC)(link)
и да, DSL был написан на обычном перле

[identity profile] volodymir-k.livejournal.com 2009-07-21 01:09 pm (UTC)(link)
Иногда это оправданно -- когда рефлекшен-код на хост-языке начинает раздуваться до тысяч строк. Однако отлаживать проблемы в DSL -- это ад.