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] raydac.livejournal.com 2009-07-19 12:49 pm (UTC)(link)
я так понимаю что тут скорее "трудности перевода"

[identity profile] alexott.livejournal.com 2009-07-19 01:03 pm (UTC)(link)
мир реального программирования у всех разный - у тебя он тесно связан с пользователями, у других с БД, у третьих с ОС или безопасностью...
я вот смотрю на наших жабистов, и от их решений у меня на голове волосы дыбом становятся. а тоже ведь реальная разработка :-)

jedem das seine

[personal profile] alll 2009-07-19 01:07 pm (UTC)(link)
У [livejournal.com profile] zabivator'а афаик очень специфическая задача, именно для него держать метаданные непосредственно в коде (а часть и вообще в голове) может оказаться до определённой степени оправданным. Ну а ежели в руках молоток, то всё окружающее начинаешь воспринимать как немножко гвозди.

[identity profile] dmzlj.livejournal.com 2009-07-19 01:31 pm (UTC)(link)
Да вроде кодогенерацией из какой-нить статической метаинформации решается, разве нет? по крайней мере я видел довольно большие проекты, где это было сделано. Есть же даже ормы для статических языков. Что-то то ли я от жары туплю, но не понимаю, о чем базар-вокзал вообще. Есть рефлексия - можно делать и так и сяк, нет рефлексии - можно делать автоматической кодогенерацией из какой-нить метаинформации или DSL.

С конфигом вроде еще проще - забил грамматику, оно тебе разобрало в какую надо структуру.
Рефлексия вообще не вперлась, если структура конфига в рантайме не меняется. Какой еще свич-кейс?

[identity profile] gds.livejournal.com 2009-07-19 02:56 pm (UTC)(link)
рефлекшн противоестественнен, если есть строгая типиздация и кодогенерация. Лучше ловить всякие разные миленькие приколюшечки в compile time. РОЗАВЕНЬКИМ!1111