Здравствуйте, Sheridan, Вы писали:
S>Mamut wrote:
>> Это ты действительно не понимаешь, о чем речь. Ты прочитал ту тсатью, ссылку на которую я тебе >> дал? S>Да. Я как раз против этого метода.
То есть ты против того, чтобы иметь легкий и эффективный способ сохранять и восстанавливать объекты любой сложности?
Ты за то, чтобы на каждый чих городить тонны велосипедов и ненужного кода?
Ты за то, чтобы эти велосипеды и ненужный код переписывать заново как только структуры объектов изменились или усложнились?
>>> Это ты действительно не понимаешь, о чем речь. Ты прочитал ту тсатью, ссылку на которую я тебе >>> дал? S>>Да. Я как раз против этого метода.
M>То есть ты против того, чтобы иметь легкий и эффективный способ сохранять и восстанавливать объекты любой сложности? M>Ты за то, чтобы на каждый чих городить тонны велосипедов и ненужного кода? M>Ты за то, чтобы эти велосипеды и ненужный код переписывать заново как только структуры объектов изменились или усложнились?
Чтобы далеко не ходить. Ты заманаешься писать грамотный, достаточно общий код для вот такого:
#include <boost/serialization/list.hpp>
class bus_route
{
friend class boost::serialization::access;
// внимание! здесь — шаблонный класс, содержащий ссылки на объекты
// для того, чтобы этот список правильно сохранить
// надо сохранить не только список, но и каждый из этих объектов
std::list<bus_stop *> stops;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
// опаньки, магия
ar & stops;
}
public:
bus_route(){}
};
gandjustas wrote:
> Ты уже почти слил, напиши код чтобы это всем понятно было. Тебе ведь нужно явное указание типа > при десериализации, чтобы вызвать нужный load.
Я просто не буду писать так, чтобы было непонятно что куда как откуда читать.
> Кстати, как твой код отработает при циклических ссылках,
Встретится такое — придумаю что прикрутить.
> как будут сериализовываться строки?
Ты действительно не знаешь или притворяешся?
> И вообще это не обобщенный код, для каждого класса писать такое никто не станет.
Все верно. Как я и говорил — никто такое писать не будет. Все будут тупо сливать в файл грамм полезной информации, перемешанной с
десятком килограмм мусора. Потому что всем положить на производительность и потребление ресурсов. тьфу.
Здравствуйте, Sheridan, Вы писали:
S>Все верно. Как я и говорил — никто такое писать не будет. Все будут тупо сливать в файл грамм полезной информации, перемешанной с S>десятком килограмм мусора. Потому что всем положить на производительность и потребление ресурсов. тьфу.
Видимо, ресурсы, потреблённые тобой при разработке и поддержке кода, не в счёт
anton_t wrote:
> a *c2 = new a(); // соответственно и при загрузке не знаем реальный тип c2.
Напомни, я чтото говорил про чисто виртуальные функции или нет?
>> Ты уже почти слил, напиши код чтобы это всем понятно было. Тебе ведь нужно явное указание типа >> при десериализации, чтобы вызвать нужный load. S>Я просто не буду писать так, чтобы было непонятно что куда как откуда читать.
>> Кстати, как твой код отработает при циклических ссылках, S>Встретится такое — придумаю что прикрутить.
Об этом надо думать до того, как писать кучи велосипедов
>> как будут сериализовываться строки? S>Ты действительно не знаешь или притворяешся?
Расскажи мне, как ты будешь сериализовать какой-нибудь std::wstring
>> И вообще это не обобщенный код, для каждого класса писать такое никто не станет. S>Все верно. Как я и говорил — никто такое писать не будет. Все будут тупо сливать в файл грамм полезной информации, перемешанной с S>десятком килограмм мусора. Потому что всем положить на производительность и потребление ресурсов. тьфу.
Твой велосипед, написаный на коленке, раздувающий любой класс на десятки (а то и сотни) строк будет менее производительный и более ресурсоемкий, чем грамотно спроектированая библиотека.
Здравствуйте, WFrag, Вы писали:
WF> S>Все верно. Как я и говорил — никто такое писать не будет. Все будут тупо сливать в файл грамм полезной информации, перемешанной с WF> S>десятком килограмм мусора. Потому что всем положить на производительность и потребление ресурсов. тьфу.
WF> Видимо, ресурсы, потреблённые тобой при разработке и поддержке кода, не в счёт
Жопа начнется, когда этот код нчнт поддерживать другие. Когда окажется, что любое маленькое изменение в любом классе требует десятка изменений в других файлах.
Шеридану, правда, на это наплевать. Он о таких мелочах не думает
WFrag wrote:
> Видимо, ресурсы, потреблённые тобой при разработке и поддержке кода, не в счёт
Конечно не в счет. Это мои ресурсы, а не ресурсы пользовательского компутера.
Здравствуйте, Sheridan, Вы писали:
>> Видимо, ресурсы, потреблённые тобой при разработке и поддержке кода, не в счёт S>Конечно не в счет. Это мои ресурсы, а не ресурсы пользовательского компутера.
Забавно. Наверное, меня так не волнуют ресурсы моего трехлетнего ноута, как тебя волнуют ресурсы чужих компьютеров (или под пользователем ты имел исключительно себя?) Меня гораздо больше беспокоят баги в моём рабочем окружении.
Здравствуйте, Sheridan, Вы писали:
>> Видимо, ресурсы, потреблённые тобой при разработке и поддержке кода, не в счёт S>Конечно не в счет. Это мои ресурсы, а не ресурсы пользовательского компутера.
P.S. Сэкономив пару дней своих ресурсов, ты мог бы их потратить на какие-нибудь осмысленные оптимизации. Или на исправление ошибок — пользователи тебе спасибо скажут.
Здравствуйте, Sheridan, Вы писали:
S>gandjustas wrote:
>> Ты уже почти слил, напиши код чтобы это всем понятно было. Тебе ведь нужно явное указание типа >> при десериализации, чтобы вызвать нужный load. S>Я просто не буду писать так, чтобы было непонятно что куда как откуда читать.
Не надо жопой играть, код покажи.
>> Кстати, как твой код отработает при циклических ссылках, S>Встретится такое — придумаю что прикрутить.
Не надо так откровенно сливать.
Ты ведь показываешь свое непонимание проблемы.
>> как будут сериализовываться строки? S>Ты действительно не знаешь или притворяешся?
Код в студию.
>> И вообще это не обобщенный код, для каждого класса писать такое никто не станет. S>Все верно. Как я и говорил — никто такое писать не будет. Все будут тупо сливать в файл грамм полезной информации, перемешанной с S>десятком килограмм мусора. Потому что всем положить на производительность и потребление ресурсов. тьфу.
Так покажи что это мусор в общем случае.
Демонстрация частного (очень частного) случая ничего не доказывает. Хотя даже в частном случае ты не можешь десериализацию написать.
WFrag wrote:
> Забавно. Наверное, меня так не волнуют ресурсы моего трехлетнего ноута, как тебя волнуют ресурсы чужих компьютеров
Очень жаль, что программистов сейчас абсолютно не волнует как работает их программа. Лишь бы без багов — а там хоть трава не
расти.
> или под пользователем ты имел исключительно себя?
Увы тебе — нет.
> Меня гораздо больше беспокоят баги в моём рабочем окружении.
Ну так исправляй, раз беспокоят.
WFrag wrote:
> P.S. Сэкономив пару дней своих ресурсов, ты мог бы их потратить на какие-нибудь осмысленные оптимизации. Или на
исправление ошибок — пользователи тебе спасибо скажут.
М... А зачем свои ресурсы экономить? Лучше будет и туда и туда выделить не по паре дней а по неделе.
Здравствуйте, Sheridan, Вы писали:
>> Забавно. Наверное, меня так не волнуют ресурсы моего трехлетнего ноута, как тебя волнуют ресурсы чужих компьютеров S>Очень жаль, что программистов сейчас абсолютно не волнует как работает их программа. Лишь бы без багов — а там хоть трава не S>расти.
Малая производительность (с точки зрения пользователя, а не с точки зрения абстрактного идеала) — это тоже баг.
>> Меня гораздо больше беспокоят баги в моём рабочем окружении. S>Ну так исправляй, раз беспокоят.
У меня жизни не хватит их все исправить. В одном только FF разобраться надо несколько месяцев, наверное. И главное — никакого желания копаться в этой помойке.
>> Забавно. Наверное, меня так не волнуют ресурсы моего трехлетнего ноута, как тебя волнуют ресурсы чужих компьютеров S>Очень жаль, что программистов сейчас абсолютно не волнует как работает их программа. Лишь бы без багов — а там хоть трава не S>расти.
Здравствуйте, Sheridan, Вы писали:
>> P.S. Сэкономив пару дней своих ресурсов, ты мог бы их потратить на какие-нибудь осмысленные оптимизации. Или на S>исправление ошибок — пользователи тебе спасибо скажут. S>М... А зачем свои ресурсы экономить? Лучше будет и туда и туда выделить не по паре дней а по неделе.
Тогда чем-то ещё придётся жертвовать. Если, конечно, речь не идёт о клоне /bin/false.
>> P.S. Сэкономив пару дней своих ресурсов, ты мог бы их потратить на какие-нибудь осмысленные оптимизации. Или на S>исправление ошибок — пользователи тебе спасибо скажут. S>М... А зачем свои ресурсы экономить? Лучше будет и туда и туда выделить не по паре дней а по неделе.
С экономической точки зрения:
— две недели * на зарплату на ветер... Ты уволен
С программистской точки зрения:
— две недели на то, чтобы сделать достаточно общую библиотеку, покрывающую приемлемый объем пограничных случаев, задача достаточно нереальная. Вместо того, чтобы заниматься действительно задачей, например, написанием игрушки, GIS-навигатора, новой системы GUI, нового сервера и т.п., приходится озиться с тривиальной задачей, на которую даже не стоит тратить время. В топку такую задачу
Здравствуйте, Sheridan, Вы писали:
S>anton_t wrote:
>> a *c2 = new a(); // соответственно и при загрузке не знаем реальный тип c2. S>Напомни, я чтото говорил про чисто виртуальные функции или нет?
Как связаны чисто виртуальные функции с этим примером, сдесь же ни одного абстрактного класса нет? И как они тебе помогут, даже если будут?
Здравствуйте, Sheridan, Вы писали:
S>WFrag wrote:
>> P.S. Сэкономив пару дней своих ресурсов, ты мог бы их потратить на какие-нибудь осмысленные оптимизации. Или на S>исправление ошибок — пользователи тебе спасибо скажут. S>М... А зачем свои ресурсы экономить? Лучше будет и туда и туда выделить не по паре дней а по неделе.
gandjustas wrote:
>>> Ты уже почти слил, напиши код чтобы это всем понятно было. Тебе ведь нужно явное указание типа >>> при десериализации, чтобы вызвать нужный load. > S>Я просто не буду писать так, чтобы было непонятно что куда как откуда читать. > Не надо жопой играть, код покажи.
И не подумаю. Раз сам не понимаешь, о чем речь, то тебе и код не поможет.
>>> Кстати, как твой код отработает при циклических ссылках, > S>Встретится такое — придумаю что прикрутить. > Не надо так откровенно сливать. > Ты ведь показываешь свое непонимание проблемы.
Я то проблему прекрасно понимаю. Это ты не понимаеш что проблема в том, что дохрена мусора после сериализации вашим методом.
>>> как будут сериализовываться строки? > S>Ты действительно не знаешь или притворяешся? > Код в студию.
Ох уж эти дотнетчики... Пишешь количество символов, следом строку. Читаешь количество символов, читаешь строку.
> Так покажи что это мусор в общем случае.
Мда... Почитай то что мамут давал http://wiki.shelek.ru/index.php/C%2B%2B_сериализация_данных и обрати внимание что там в файл
сохраняется.
> Хотя даже в частном случае ты не можешь десериализацию написать.
Я написал по минимуму. Да не бойся, писал я такое лет 7 назад, когда делал для себя каталогизатор CD.