Здравствуйте, kaa.python, Вы писали:
KP>Здравствуйте, зиг, Вы писали:
зиг>>а чего ты к коллекциям-то прицепился? ну да, коллекции плохой пример, их и так все знают, просто без них опять таки никогда не обходится ни в одном интервью поэтому я их и упомянула.
KP>Кстати, а на кой черт их спрашивать? В случае с плюсами никто не идет дальше различий между std::list и std::vector. Неужели трудно заглянуть в документацию по той или иной функции?
не знаю, спрашивают. на самом начальном этапе, чтоб убедиться что человек их знает
зиг>>но а остальное-то, что, тоже базовые знания? рефлекшн, многопоточность? ну ка приведи пример где они могут быть нужны чтоб формы делать KP>Многопоточность — это критичное базовое знание. Без него вечно такие монстры выходит, что хоть стой хоть падай.
ну не скажите. это в каких-то областях оно критичное. а в формошлепстве — нет
Здравствуйте, mik1, Вы писали:
M>Здравствуйте, зиг, Вы писали:
зиг>>вопрос был не о том нужно или не нужно, а встречаются ли такие вакансии, или не встречаются. зиг>>Тебе не встречались — ну и отлично. А мне встречались. И там действительно нужно это все знать до тонкостей.
M>А если не секрет, сколько там предлагали денег?
Здравствуйте, abibok, Вы писали:
зиг>>а чего ты к коллекциям-то прицепился?
A>Исключительно потому, что их привели в качестве примера знаний, определяющих сильного программиста. Не умение строить архитектуру приложения, не опыт поддержки и рефакторинга крупных проектов, не написание масштабируемых многозвенных приложений, а какое-то примитивное знание коллекций. Как же тогда называть того, кто силен в том, что описал я? Мега-гуру или Senior Lead Architect III?
ну вычеркни коллекции, станет легче?
иногда надо просто качественно кодить. и мега архитекты со знанием рефакторинга при этом пишут такой тупой код... поэтому правильно проверять вначале именно эти основы, как ты пишешь базовые. куча архитектов отсеется
зиг>>просто без них опять таки никогда не обходится ни в одном интервью поэтому я их и упомянула. A>Интервью, где на позицию сильного джависта, спрашивают про коллекции — идиотское, и проводящие его специалисты — тоже идиоты, и работать в этой конторе не стоит.
ты не прав. про это спрашивают везде, в т.ч. в top-10 компаниях, часто просто чтобы отсеять таких вот недо-архитектов.
зиг>>но а остальное-то, что, тоже базовые знания? рефлекшн, многопоточность? A>А что такого сакрального в многопоточности? Знание примитивов синхронизации? Общее представление о процессах, потоках и нитях?
и общее представление и весьма конкретное, о том как все реализовано именно в джаве.
могу дать ссылку на джава-конкарренси вопросы, была в джава форуме как-то выставлена — мега-вещь
отнюдь не все, очень опытные джависты, смогли со всеми ними справиться
зиг>>ну ка приведи пример где они могут быть нужны чтоб формы делать A>А кроме рисования форм в вашей работе есть что-то еще от программирования? Вот прямо так вся компания изо дня в день только и делает, что создает новые формы?
а причем тут моя работа? я какбе не говорила что а) я всего этого не знаю б) мне в моей работе этого не требуется
Здравствуйте, Alexey Sudachen, Вы писали:
AS>Очень правильная точка зрения. Ведь на самом то деле, чтобы эффективно писать на С++, нефигово бы так пощупать на практике ассемблер, лисп и жабу/шарп. AS>Таки Ци даже у просто хорошего специалиста по двум плюсам получается должен быть просто эпической силы.
А на практике С++снику plain С трогать очень не хочется, ибо колво ручной работы вырастает в разы.
AS>>Таки Ци даже у просто хорошего специалиста по двум плюсам получается должен быть просто эпической силы. Т>А на практике С++снику plain С трогать очень не хочется, ибо колво ручной работы вырастает в разы.
Это лишь от неумения его 'трогать'. Вот сколько, к примеру, есть книжек по тому как писать на С? Не про синтаксис и стандартную библиотеку, а именно о том как писать?! Писать то надо по другому. А уж как в массе своей колбасит плюсовиков от языков с полной динамикой.... а вроде и ручной работы совсем нет. Такие вот пироги с котятами. )
Здравствуйте, Alexey Sudachen, Вы писали:
AS>>>Таки Ци даже у просто хорошего специалиста по двум плюсам получается должен быть просто эпической силы. Т>>А на практике С++снику plain С трогать очень не хочется, ибо колво ручной работы вырастает в разы.
AS>Это лишь от неумения его 'трогать'. AS>Писать то надо по другому.
Писать надо больше, писать надо многое вручную каждый раз. Автоматизации минимум.
AS>>Это лишь от неумения его 'трогать'. AS>>Писать то надо по другому. Т>Писать надо больше, писать надо многое вручную каждый раз. Автоматизации минимум.
Вот на практике оказалось, что несмотря на то что кое-что в плюсах генерируется автоматом, писать таки на С нужно меньше ) Можешь мне конечно не верить, но вот так вот получается. Возможно что С++11 это дело чуть улучшает, тут точно сказать не могу. Таки С++ чрезвычайно многословен и извилист.
Собственно, а что нужно писать каждый раз и где не хватает автоматизации? Оно как бы реально нужно, или просто привычка давит?
AS>>>Это лишь от неумения его 'трогать'. AS>>>Писать то надо по другому. Т>>Писать надо больше, писать надо многое вручную каждый раз. Автоматизации минимум.
AS>Вот на практике оказалось, что несмотря на то что кое-что в плюсах генерируется автоматом, писать таки на С нужно меньше ) Можешь мне конечно не верить, но вот так вот получается.
С другой стороны, вот функция которую я пишу сейчас, укажи мне где тут это самое.
int Idnty_Of(YO_XNODE *Q, char *email, char *first, char *last)
{
char *hex;
int i = 0;
YO_XNODE *q;
YO_MD5 *md5 = Md5_Init();
email = Str_Utf8_Lower(email);
first = Str_Utf8_Upper(first);
last = Str_Utf8_Upper(last);
Md5_Update(md5,email,strlen(email));
Md5_Update(md5,first,strlen(first));
Md5_Update(md5,last,strlen(last));
hex = Str_Hex_Encode(Md5_Finish(md5,0),16);
q = Xnode_Down_If(Q,"idnty");
if ( q )
{
__Raise_If( Xnode_Value_Get_Int(q,"no",-1) != i, "identity index is broken" );
if ( !strcmp( hex, Xnode_Value_Get_Str(q,"@","") ) )
{
return i;
}
++i;
q = Xnode_Next_If(q,"idnty");
}
q = Xnode_Append(Q,"idnty");
Xnode_Value_Set_Str(q,"email",email);
Xnode_Value_Set_Str(q,"first",first);
Xnode_Value_Set_Str(q,"last",last);
Xnode_Value_Set_Str(q,"@",hex);
Xnode_Value_Set_Int(q,"no",i);
return i;
}
Если что, здесь нет ни одной утечки, всё почистится автоматом. Вот только никаких извратов со смартами здесь нет. Удивительно, да? Ну, блин, попробуй хоть раз подумать за пределами коробки в которую себя запер, ага?
какая разница сколько, я вопрос вроде чётко задал.
AS>С другой стороны, вот функция которую я пишу сейчас, укажи мне где тут это самое.
а теперь возвращаемся к
AS>Вот на практике оказалось, что несмотря на то что кое-что в плюсах генерируется автоматом, писать таки на С нужно меньше ) Можешь мне конечно не верить, но вот так вот получается.
AS>>Смешно, да. Сколько из них пишут на С? P>какая разница сколько, я вопрос вроде чётко задал.
Ну я вот возьму приду к программерам на дельфи и спрошу что они думают про БЮСТ. Я думаю ответ ты сам знаешь. Или ты таки серьёзно считаешь что С и C++ одно и тоже?
И опять же. Неудобно как-то получается. Угробить минимум пять лет, научиться писать мега конструкции для контроля всего и вся, а тут оказывается один макрос и в сё в ажуре. Обидно, да. ))))
AS>>Вот на практике оказалось, что несмотря на то что кое-что в плюсах генерируется автоматом, писать таки на С нужно меньше ) Можешь мне конечно не верить, но вот так вот получается. P>и где тут меньше?
Ну, как минимум на С++ нужно будет разруливать RAII с буфером и обьектом. Или делать объект хеша автоматическим, но буфер всёравно надо будет как-то гардить. Однако точно не больше. А с учётом что те люди что голосовали идейно верным способом ещё и пишут в основном так же идейно верно, (что хорошо видно по форуму).... тот же std::string ну очень популярен. Да, меньше получается. Даже на очень простом коде. Если же взять функцию где идёт активная работа с динамическими объектами, там вообще глаза на этих unique/shared сломаешь.
AS>>>Смешно, да. Сколько из них пишут на С? P>>какая разница сколько, я вопрос вроде чётко задал. AS>Ну я вот возьму приду к программерам на дельфи и спрошу что они думают про БЮСТ. Я думаю ответ ты сам знаешь. Или ты таки серьёзно считаешь что С и C++ одно и тоже?
я вообще не об этом. под вопросом имел ввиду выделенное, а не голосование
AS>И опять же. Неудобно как-то получается. Угробить минимум пять лет, научиться писать мега конструкции для контроля всего и вся, а тут оказывается один макрос и в сё в ажуре. Обидно, да. ))))
"показывайте вашего друга"
AS>>>Вот на практике оказалось, что несмотря на то что кое-что в плюсах генерируется автоматом, писать таки на С нужно меньше ) Можешь мне конечно не верить, но вот так вот получается. P>>и где тут меньше?
AS>Ну, как минимум на С++ нужно будет разруливать RAII с буфером и обьектом. Или делать объект хеша автоматическим, но буфер всёравно надо будет как-то гардить.
AS>Однако точно не больше. А с учётом что те люди что голосовали идейно верным способом ещё и пишут в основном так же идейно верно, (что хорошо видно по форуму).... тот же std::string ну очень популярен. Да, меньше получается. Даже на очень простом коде. Если же взять функцию где идёт активная работа с динамическими объектами, там вообще глаза на этих unique/shared сломаешь.
Здравствуйте, Alexéy Sudachén, Вы писали:
AS>И что тебя там так возбудило? Ты скажи, может там что улучшить есть.
оставим не надолго все субъективные момент.
объективно: а тебя не смущает факт, что такой конкретный объект как MD5, фактически имеет виртуальную таблицу (заполняемую вручную) и живёт в куче? хоть капельку, а?
P>оставим не надолго все субъективные момент. P>объективно: а тебя не смущает факт, что такой конкретный объект как MD5, фактически имеет виртуальную таблицу (заполняемую вручную) и живёт в куче? хоть капельку, а?
Здесь нет. На скорость это не влияет а использовать удобно. Надо понимать что этот 'конкретный' объект имеет абстракный протокол позволяющий использовать его много где. Например для подсчёта хеш-суммы абстрактного потока данных. Oj_Digest_Update_OjMID — это оно и есть.
Там где нужны скорость и отсутствие хипа я напишу так:
byte_t digest[16];
YO_MD5 md5 = YO_MD5_INITIALIZER;
Md5_Update(&md5,data,len);
Md5_Finish(&md5,digest);
или ещё короче, что ровно то же самое
byte_t digest[16];
Md5_Digest(data,len,digest);
Не знаю на сколько у тебя старая версия, но думаю там это всё есть. С перманентной же оптимизацией всего что движется это тебе к идейно верным C++ программерам, а не ко мне.
Здравствуйте, Alexéy Sudachén, Вы писали:
AS>Ну, как минимум на С++ нужно будет разруливать RAII с буфером и обьектом.
как-то "разруливать RAII" звучит не убедительно на фоне возюконья вручную с vtable, поддержки стэка в tls и всего прочего.
AS>Или делать объект хеша автоматическим, но буфер всёравно надо будет как-то гардить.
Что конкретно ты имеешь ввиду? какой буфер гародить?
AS>>>>Смешно, да. Сколько из них пишут на С? P>>>какая разница сколько, я вопрос вроде чётко задал. AS>>Ну я вот возьму приду к программерам на дельфи и спрошу что они думают про БЮСТ. Я думаю ответ ты сам знаешь. Или ты таки серьёзно считаешь что С и C++ одно и тоже?
P>я вообще не об этом. под вопросом имел ввиду выделенное, а не голосование
Мой ответ ты знаешь, а чей ещё тебе нужен, зависит от того у кого спрашивать. Если спрашивать на форуме C++ программеров, то ответ очевиден. Этот код нарушет многие догматы С++ и вообще к C++ не применим. Он там просто не будет работать.
Задавать вопрос в пустоту, предполагая ответ или на группу очевидной принадлежности — это демагогия. Уважаемый, вы что демагог?!
Здравствуйте, Alexéy Sudachén, Вы писали:
P>>я вообще не об этом. под вопросом имел ввиду выделенное, а не голосование AS>Мой ответ ты знаешь, а чей ещё тебе нужен, зависит от того у кого спрашивать. Если спрашивать на форуме C++ программеров, то ответ очевиден.
так, ты опять про голосование?
Ну давай сходим на форум C программистов, и зададим точно такой же вопрос там, ок? Организуешь?
AS>Этот код нарушет многие догматы С++ и вообще к C++ не применим. Он там просто не будет работать.
напрямую может и нет — но что-то близкой вполне можно соорудить. но вопрос, зачем?
AS>Задавать вопрос в пустоту, предполагая ответ или на группу очевидной принадлежности — это демагогия. Уважаемый, вы что демагог?!
ну вод давай зададим вопрос в группе с другой очевидной принадлежностью, ок?