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 и молиться, что остальные команды разработчиков код сохранения не поломают, и что имена будут одинаковые.

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

jedem das seine

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

Re: jedem das seine

[identity profile] metaclass.livejournal.com 2009-07-19 01:10 pm (UTC)(link)
А, ну логично. Он как раз оные метаданные вместе с данными и обрабатывает своим sql-движком, они для него на другом уровне живут совсем. А для меня они часть дизайна системы.

Re: jedem das seine

[personal profile] alll 2009-07-19 01:56 pm (UTC)(link)
Ну вот на самом деле это прикол, которого никто отчего-то не замечает: термин "программист" перестал обозначать более-менее чётко очерченную профессию, в лучшем случае он относится к роду занятий.

Re: jedem das seine

[personal profile] alll 2009-07-19 02:13 pm (UTC)(link)
Но что касается меня, то чрезмерное завязывание на рефлекшены заставляет вспомнить поговорку "чем круче джип, тем дальше идти за трактором". Ну то-есть проект сможет всосать в себя ещё больше бессмысленных индусов и развиться чуть дальше, прежде чем окончательно станет неподдерживаемым. Заодно заказчики привыкнут, что сроки исполнения капризов - не дни, а часы, и дедлайны станут куда жёстче.

Re: jedem das seine

[identity profile] lionet.livejournal.com 2009-07-20 12:14 am (UTC)(link)
У индусов сроки разработки — недели только на то, чтобы цвет фона поправить.

Эффективность джаваиндусской разработки сильно преувеличена. Быстрее [livejournal.com profile] zabivator выучит Swing, чем очередной индус очередную кнопку добавит.

И стоит это дороже, чем своих программистов держать.

P.S. Информация от крупного и постоянного американского заказчика аутсорса в известной идусской конторе.

Re: jedem das seine

[identity profile] volodymir-k.livejournal.com 2009-07-20 07:20 am (UTC)(link)
Ну а у меня другие данные.

У индусов проблема авторитета и процесса. Сначала им надо показать, что запрос от кошеного ребе, и тогда они моментом.

Re: jedem das seine

[identity profile] lionet.livejournal.com 2009-07-20 07:25 am (UTC)(link)
Наши данные не конфликтуют друг с другом.