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-19 07:35 pm (UTC)(link)
Можно. Если потом код из нее сгенерить. У меня тут выходит, что это было бы удобнее, чем пихать ее целиком в код в виде атрибутов/аннотаций. Но формально метаинформация-модель и код с атрибутами изоморфны друг другу, но для первого нормальных тулсов нет, а для второго есть :)

[identity profile] volodymir-k.livejournal.com 2009-07-19 09:39 pm (UTC)(link)
Это для узкого использования (БД, др.внешние источники данных).
Для, скажем, скриптинга или сериализации, или вообще "конфигуратора" всё наоборот: сначала пишут код, а потом думают, как прикрутить фичи.

[identity profile] lionet.livejournal.com 2009-07-20 12:16 am (UTC)(link)
Модель (хотя бы на салфетке) делается перед тем, как решать очередную подзадачу. Иначе выходит очередная лапша. А уж по модели сделать метаинформацию, кодогенерацию, и автоматическое создание дескриптора веб-сервиса — это уже не задействующие мозг трансформации.

[identity profile] volodymir-k.livejournal.com 2009-07-20 07:24 am (UTC)(link)
> Иначе выходит очередная лапша.

О! Найден Адепт Единственно Работающей Методологии!
Быстрее пишите книгу, все остальные 100500 ошибались!

> А уж по модели сделать метаинформацию, кодогенерацию, и автоматическое создание дескриптора веб-сервиса — это уже не задействующие мозг трансформации.

Но их надо писать, не так ли?
Если проделать в мозгу упражнение, поняв, что рефлекшен это как раз и есть кодогенерация на рантайме, причём уже сделанная -- в чём останется возражение?


Давайте теперь отвлечёмся от абстракций, и расскажите мне, как в уже работающую программу на Си мне добавить сервер мониторинга, удалённых вызовов и скриптинг. Желательно строк в 100-200.

[identity profile] lionet.livejournal.com 2009-07-20 07:28 am (UTC)(link)
О! Найден Адепт Единственно Работающей Методологии!
Быстрее пишите книгу, все остальные 100500 ошибались!


Ты вот ёрничаешь, а книга будет к вечеру готова (в моём журнале).

Если проделать в мозгу упражнение, поняв, что рефлекшен это как раз и есть кодогенерация на рантайме, причём уже сделанная -- в чём останется возражение?

Where do I begin? Прочитаешь в книге.

Давайте теперь отвлечёмся от абстракций, и расскажите мне, как в уже работающую программу на Си мне добавить сервер мониторинга, удалённых вызовов и скриптинг. Желательно строк в 100-200.

Откуда Си взялся? Я вообще-то пропагандирую высокоуровневые решения, а не ассемблер переносимый.

[identity profile] volodymir-k.livejournal.com 2009-07-20 07:38 am (UTC)(link)
> а книга будет к вечеру готова (в моём журнале).

Я даже предскажу её будущее с 95% вероятностью. Её прочтёт человек 20 программеров с лишним временем, который они забивают всяким окамлом-хаскелом без всякой практики, они скажут: о круто!, почерпнут пару идей уровня МИТ-2000, и будут дальше заниматься полунаучной туфтой.

> Откуда Си взялся? Я вообще-то пропагандирую высокоуровневые решения

Я вообще-то ценю собеседника, который может ответить на вопрос, невзирая на мелочи. Хорошо, пусть на паскакале-эйфеле-эрланге или чём там адепты с Серебряной Пулей пишут. Как мне добавить. В работающую. В смысле готовую, отлаженную, можно даже в не запущенную.

[identity profile] lionet.livejournal.com 2009-07-20 07:58 am (UTC)(link)
Я даже предскажу её будущее с 95% вероятностью.

Нострадамус хренов.

Как мне добавить. В работающую.

На эрланге добавить RPC можно даже в работающую программу. Штатными средствами. За 20-30 строк, а не за 100-200.

Каким именно образом можно добавить, говорить не буду, потому что не ценю собеседника, который не ценит моё время.

[identity profile] volodymir-k.livejournal.com 2009-07-21 01:03 pm (UTC)(link)
> На эрланге добавить RPC можно даже в работающую программу. Штатными средствами. За 20-30 строк

- Как там со стандартами? CORBA? WS-I? DCOM?
- Как там с лоад-балансингом и мониторингом? Секурити? "Можно легко написать?"

[identity profile] lionet.livejournal.com 2009-07-21 01:14 pm (UTC)(link)
Во, пошёл конструктив. Видно, ad hominem атаки помогают иногда сменить настроение.

— Как там со стандартами? CORBA? WS-I? DCOM?

CORBA умерла и без этого, но она есть. WS-I. Нет DCOM, дюже специфичная вещь.

— Как там с лоад-балансингом и мониторингом?

pool и snmp входят в поставку. Завести SNMP респондер - строк двадцать. ASN.1 компилятор в комплекте, написан на Erlang'е же.

— Секурити? "Можно легко написать?"

Вопроса не понял. Есть ли криптоалгоритмы, работа с PKCS контейнерами? Есть. Если что-то другое подразумевается под security, поясни, постараюсь рассказать.

[identity profile] dmzlj.livejournal.com 2009-07-20 07:41 am (UTC)(link)
А зачем Вы такой нервный?

[identity profile] volodymir-k.livejournal.com 2009-07-20 07:46 am (UTC)(link)
Чтобы собеседнику было весело и страшно.

Насколько понимаю, спокойная реакция на 40-летней давности идею "сначала давайте подумаем" -- зевок и плевок.

Заранее думать каждый дурак сможет. А ты попробуй 5 фич в день для бизнеса выдай. И чтобы всё работало.

[identity profile] lionet.livejournal.com 2009-07-20 08:00 am (UTC)(link)
Я выдаю по несколько сотен строк в день для бизнеса, причём в работающую систему, обслуживающую 14 миллионов пользователей.

Причём, не останавливая запущенный серверный код.

Иди, повтори, говноед.

[identity profile] volodymir-k.livejournal.com 2009-07-21 01:04 pm (UTC)(link)
> Иди, повтори, говноед.

Не стыдно оскорблять человека ни за что?
Видимо, спокойных аргументов нету. Понимаю.