философски-созерцательно об абстракциях...
От: Klatu  
Дата: 13.07.11 08:37
Оценка: +5
Ковыряю тут библиотеку, которую нужно проверить на предмет ее полезности.
Так вот, задача была такая: есть веб-сервис с парой десятков методов, и стример обновлений через постоянно открытый поток. Нужна клиентская обертка, чтобы использовать это из C#.
Решение: около 10 сборок, ~400 классов, ~1 мегабайт кода. Это только клиент.
Мне одному кажется, что они там совсем долбанулись?
Re: философски-созерцательно об абстракциях...
От: MxMsk Россия  
Дата: 13.07.11 09:27
Оценка:
Здравствуйте, Klatu, Вы писали:

K>Ковыряю тут библиотеку, которую нужно проверить на предмет ее полезности.

K>Так вот, задача была такая: есть веб-сервис с парой десятков методов, и стример обновлений через постоянно открытый поток. Нужна клиентская обертка, чтобы использовать это из C#.
А что такое "стример обновлений"?

K>Решение: около 10 сборок, ~400 классов, ~1 мегабайт кода. Это только клиент.

K>Мне одному кажется, что они там совсем долбанулись?
Скажи это DevExpress и прочим GUI-либам. Мне порой кажется, что у них классов больше, чем во всем .Net FW
А всё же, хотелось бы узнать требования. Для чего писали обертку? Например, если сервис решает несколько разных задач, то такие задачи можно разносить по сборкам, предоставляя клиенту только те, за которые уплачены денежки.
Re[2]: философски-созерцательно об абстракциях...
От: Klatu  
Дата: 13.07.11 11:26
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>А что такое "стример обновлений"?


Просто пишет в поток, когда есть обновления данных у сервера.

MM>Для чего писали обертку?


А черт его знает. Предполагалось, что они будут поддерживать существующую либу. А они полностью новую написали

MM>Например, если сервис решает несколько разных задач, то такие задачи можно разносить по сборкам, предоставляя клиенту только те, за которые уплачены денежки.


Такого нет.
Re: философски-созерцательно об абстракциях...
От: Pavel Dvorkin Россия  
Дата: 13.07.11 11:43
Оценка: +1
Здравствуйте, Klatu, Вы писали:

K>Ковыряю тут библиотеку, которую нужно проверить на предмет ее полезности.

K>Так вот, задача была такая: есть веб-сервис с парой десятков методов, и стример обновлений через постоянно открытый поток. Нужна клиентская обертка, чтобы использовать это из C#.
K>Решение: около 10 сборок, ~400 классов, ~1 мегабайт кода. Это только клиент.

Да не классов . А просто бывших структур , трансформировавшихся в классы, обвешанных из-за этого сеттерами и геттерами, пропертями и ивентами, из-за чего бывшая структура С, занимавшая 10-20 строк, теперь имеет размер в несколько Кбайт.

Ну и еще всякие иерархии типа AbstractImpl — BaseImpl — XYZImpl- WorkingClass ... Легкое касание пункта меню — и вот вам новый наследник с теми же методами и свойствами, и сразу кода в 2 раза больше.

Подели на 4-5,а то и на 10 и все будет нормально.

With best regards
Pavel Dvorkin
Re[2]: философски-созерцательно об абстракциях...
От: Klatu  
Дата: 13.07.11 11:59
Оценка: :))) :)))
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Да не классов . А просто бывших структур , трансформировавшихся в классы, обвешанных из-за этого сеттерами и геттерами, пропертями и ивентами, из-за чего бывшая структура С, занимавшая 10-20 строк, теперь имеет размер в несколько Кбайт.


Нееее.
Всякие там request-response для каждого метода, это очевидно, это даже на самом деле нужно. Но это крохи, классов 40 максимум в данном случае.

Но ты себе не представляешь, до чего может дойти фантазия!
Вот как тебе идея сделать для каждого веб-метода отдельный класс, единственная функция которого — вызов этого метода? А сделать каждому такому классу отдельный интерфейс и создавать исключительно через абстрактную фабрику?
А сделать 3 уровня абстракции и на каждом продублировать все эти классы-вызывальщики, классы-реквесты и ответы, и из одного в другое перекладывать?
Re[3]: философски-созерцательно об абстракциях...
От: Mamut Швеция http://dmitriid.com
Дата: 13.07.11 14:31
Оценка: 50 (5) +1 :))) :))) :))) :)))
PD>>Да не классов . А просто бывших структур , трансформировавшихся в классы, обвешанных из-за этого сеттерами и геттерами, пропертями и ивентами, из-за чего бывшая структура С, занимавшая 10-20 строк, теперь имеет размер в несколько Кбайт.

K>Нееее.

K>Всякие там request-response для каждого метода, это очевидно, это даже на самом деле нужно. Но это крохи, классов 40 максимум в данном случае.

K>Но ты себе не представляешь, до чего может дойти фантазия!

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

пусть и не про C#, но...

You have a problem and decide to use Java.
Now you have a ProblemFactory

© avva


Ну и классическое

http://ptrthomas.wordpress.com/files/2006/06/jtrac-callstack1.png


dmitriid.comGitHubLinkedIn
Re[3]: философски-созерцательно об абстракциях...
От: Dufrenite Дания  
Дата: 15.08.11 11:12
Оценка:
Здравствуйте, Klatu, Вы писали:

K>Нееее.

K>Всякие там request-response для каждого метода, это очевидно, это даже на самом деле нужно. Но это крохи, классов 40 максимум в данном случае.

K>Но ты себе не представляешь, до чего может дойти фантазия!

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

Вот прямо сейчас ковыряю абсолютно такой-же код. Блин, надо запрещать программистам работать по выходным и если пишут больше 300 строчек кода в день, то бить палкой. При этом ставить жёсткие сроки. Это чтобы времени на всякую *** не было.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.