Re[12]: Как я завалил собеседование
От: jazzer Россия Skype: enerjazzer
Дата: 25.01.07 19:12
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Если же вы предролагаете копировать и данные по указателю , тогда возникает вопрос , а почему там указатель а не агрегированный мембер ?


потому что там указатель на базовый класс. На интерфейс, если угодно.

подробнее здесь:
http://rsdn.ru/Forum/Message.aspx?mid=2319898&only=1
Автор: jazzer
Дата: 25.01.07


можно на ты, мы же здесь все свои
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[9]: Как я выгнал человека с собеседования
От: jazzer Россия Skype: enerjazzer
Дата: 25.01.07 19:15
Оценка: :)
Здравствуйте, LuciferMoscow, Вы писали:

LM>Здравствуйте, jazzer, Вы писали:


H>>>Или, может, Вы родились, уже зная Си++ и STL?

J>>Конечно же, нет. Я работал на part-time за $350 в месяц. И ни в какие конторы уровня Яндекса или Google не лез. Потому что отлично осознавал свой тогдашний уровень.
LM>Буржуин! Я с 200 начинал

Не волнуйся, все эти заработанные непосильным трудом деньги через пару лет превратились в тыкву
И вместо квартиры мы с женой купили холодильник — хватило в обрез
веселые времена были
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[8]: Как я выгнал человека с собеседования
От: LuciferMoscow Россия  
Дата: 25.01.07 19:24
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>Кстати, небольшой оффтоп — сейчас пишу на C# и тяжело приходится без const — приходится явно писать интерфейс вида IConstXXX и наследовать от него IXXX. Хотя, const тоже пораждает немало граблей. Так что, может оно и к лучшему.

Поподробнее о выделенном можно?
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[9]: Как я выгнал человека с собеседования
От: LuciferMoscow Россия  
Дата: 25.01.07 19:24
Оценка: :)
Здравствуйте, greenrat, Вы писали:

G>Я уж не говорю, что boost просто не смотрел (все равно начальство не даст добро ).

И не смотри. Потом без него не сможешь
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[8]: Как я завалил собеседование
От: LuciferMoscow Россия  
Дата: 25.01.07 19:32
Оценка:
Здравствуйте, Anatolix, Вы писали:

B>>http://company.yandex.ru/inside/job/music_developer.xml

A>Он кстати очень простой. Такой pre-screening ватоматический. Автор топика его прошел.
Он уже рассказал КАК его прошел
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[10]: Как я выгнал человека с собеседования
От: branco  
Дата: 25.01.07 19:40
Оценка:
Здравствуйте, LuciferMoscow, Вы писали:



G>>Я уж не говорю, что boost просто не смотрел (все равно начальство не даст добро ).

LM>И не смотри. Потом без него не сможешь

Я тоже не смотрел. Что, настолько опасно подсесть?
Re[15]: Как я завалил собеседование
От: sraider http://dvinogradov.blogspot.com
Дата: 25.01.07 19:42
Оценка:
J>Конечно, можно и тут навертеть чего-нть, нагенерить traits и специальных классов, которые будут умными указателями и при этом будут уметь с этими traits работать, но это уже будет совершенно нетривиально.

Да написать новую политику копирования — это ж несколько строк. Берешь SmartPtr из Loki, создаешь политику, которая наследуется от DeepCopy, определяешь функцию Clone как тебе угодно, подсовываешь эту политику в SmartPtr и все. Дело нескольких минут.

А головной боли с конструкторами копирования и операторами присваивания гораздо больше. При добавлении нового члена в класс нужно не забыть его добавить в КК и ОП. А если КК и ОП генерируются компилятором, то он сам все сделает — можно расслабиться и получать удовольствие. :beer:
Re[11]: Как я выгнал человека с собеседования
От: sraider http://dvinogradov.blogspot.com
Дата: 25.01.07 19:43
Оценка: :)
G>>>Я уж не говорю, что boost просто не смотрел (все равно начальство не даст добро :)) ).
LM>>И не смотри. Потом без него не сможешь:)
B>Я тоже не смотрел. Что, настолько опасно подсесть? :)
Представь: ты всю жизнь собирал велосипеды, а тут тебе подарили велосипедный завод :))
Re[12]: Как я выгнал человека с собеседования
От: branco  
Дата: 25.01.07 19:46
Оценка:
Здравствуйте, sraider, Вы писали:

S>Представь: ты всю жизнь собирал велосипеды, а тут тебе подарили велосипедный завод


Ну, про boost::AntiСopiable уже наслышан. Попробуем продвинуться дальше.
Re[13]: Как я выгнал человека с собеседования
От: LuciferMoscow Россия  
Дата: 25.01.07 19:52
Оценка:
Здравствуйте, branco, Вы писали:

S>>Представь: ты всю жизнь собирал велосипеды, а тут тебе подарили велосипедный завод

B>Ну, про boost::AntiСopiable уже наслышан. Попробуем продвинуться дальше.
Вообще-то он noncopyable.
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[14]: Как я выгнал человека с собеседования
От: branco  
Дата: 25.01.07 19:57
Оценка:
Здравствуйте, LuciferMoscow, Вы писали:

B>>Ну, про boost::AntiСopiable уже наслышан. Попробуем продвинуться дальше.

LM>Вообще-то он noncopyable.

Тем более.
Re[11]: Как я выгнал человека с собеседования
От: LuciferMoscow Россия  
Дата: 25.01.07 20:01
Оценка:
Здравствуйте, branco, Вы писали:

G>>>Я уж не говорю, что boost просто не смотрел (все равно начальство не даст добро ).

LM>>И не смотри. Потом без него не сможешь
B>Я тоже не смотрел. Что, настолько опасно подсесть?
Посмотри boost::bind и пойми насколько просто стело делать callback-и и threadfunc(если использовать boost::thread)
class A
{
public:
 long ID_;
 ....
};

std::vector<A> x;

Найди в этом векторе элемент с Id равным 15
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[16]: Как я завалил собеседование
От: jazzer Россия Skype: enerjazzer
Дата: 25.01.07 20:02
Оценка:
Здравствуйте, sraider, Вы писали:

J>>Конечно, можно и тут навертеть чего-нть, нагенерить traits и специальных классов, которые будут умными указателями и при этом будут уметь с этими traits работать, но это уже будет совершенно нетривиально.


S>Да написать новую политику копирования — это ж несколько строк. Берешь SmartPtr из Loki, создаешь политику, которая наследуется от DeepCopy, определяешь функцию Clone как тебе угодно, подсовываешь эту политику в SmartPtr и все. Дело нескольких минут.


Ну Локи — да, а вот в бусте — нет

В принципе, по этому поводу Александреску с бустовцами грызся в довольно грубой форме.
Он очень оскорбился, что shared_ptr вставят в новый стандарт, а про него ни словом не упомянут.
На что ему вежливо ответили, что с его стороны, к сожалению, не видно оформленного по всем правилам пропозла для стандарта.
А жаль, мне его подход больше нравится.

S>А головной боли с конструкторами копирования и операторами присваивания гораздо больше. При добавлении нового члена в класс нужно не забыть его добавить в КК и ОП. А если КК и ОП генерируются компилятором, то он сам все сделает — можно расслабиться и получать удовольствие.


Если есть Локи — то да. Если нет — то нет, зачастую проще написать конструктор самому. Ты же не будешь утверждать, что SmartPtr из Локи тривиален.

Ну и, кстати, оператор присваивания по умолчанию даже с такими клёвыми умными членами не обеспечивает сильной гарантии безопасности.
Т.е. если у тебя два клонирующихся члена и клонирование второго возбуждает исключение — главный объект оказывается в интересном состоянии.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[17]: Как я завалил собеседование
От: LuciferMoscow Россия  
Дата: 25.01.07 20:39
Оценка:
Здравствуйте, jazzer, Вы писали:

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

J>Т.е. если у тебя два клонирующихся члена и клонирование второго возбуждает исключение — главный объект оказывается в интересном состоянии.
Это почему?
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[9]: Как я выгнал человека с собеседования
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 25.01.07 21:13
Оценка: -1
Здравствуйте, LuciferMoscow, Вы писали:

K>>Кстати, небольшой оффтоп — сейчас пишу на C# и тяжело приходится без const — приходится явно писать интерфейс вида IConstXXX и наследовать от него IXXX. Хотя, const тоже пораждает немало граблей. Так что, может оно и к лучшему.

LM>Поподробнее о выделенном можно?

Это вообще тема отдельная. Как то на форуме обсуждали множественно наследование. Вероятно, разработчики Java/C# решили, что обилие в программе const/mutable может сделать код нечитабельным и запутанным, как и в случае с множественным наследованием. А с интерфейсам всё проще — передали методу объект, реализующий такой-то интерфейс, а метод только согласно этому интерфейсу действовать и может, всё просто и понятно. В язык можно понатащить чего угодно, упрощающего жизнь, только порой такая неумеренность может жизнь усложнить. Думаю, тут нужно соблюдать меру и не ударяться в одну из крайностей (слишком просто, слишком сложно). Вот, например, в C++ есть const, зато нет паттерн-матчинга и алгебраических типов. В одних задачах приходится материться на разработчиков C++, в других случаях на разработчиков Немерле. Правда как показала моя практика (насчёт всеобщей не знаю), на разработчиков Nemerle (да и C#) мне приходилось материться гораздо меньше.

Мне бы было интересно узнать, что по этому поводу говорят сами разработчики. Правда, скорее всего, они говорят как раз о простоте языка. Ну не знаю, это вопрос спорный.
... << RSDN@Home 1.2.0 alpha rev. 672>>
Re[18]: Как я завалил собеседование
От: jazzer Россия Skype: enerjazzer
Дата: 26.01.07 03:18
Оценка:
Здравствуйте, LuciferMoscow, Вы писали:

LM>Здравствуйте, jazzer, Вы писали:


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

J>>Т.е. если у тебя два клонирующихся члена и клонирование второго возбуждает исключение — главный объект оказывается в интересном состоянии.
LM>Это почему?

Потому что первый член уже успешно скопировался.
В результате ты получаешь объект, у которого один член новый, а другой — старый.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[11]: Как я завалил собеседование
От: minorlogic Украина  
Дата: 26.01.07 05:47
Оценка:
Здравствуйте, AndrewJD, Вы писали:

AJD>Здравствуйте, minorlogic, Вы писали:


M>>Очень здравая мысль. Я считаю что такие весчи необходимо делать только в очень маленьком к-ве случаев , например смартпоинтер.

M>>Для тривиальных , небиблиотечных классов — это дурной тон.

AJD>Аргументы?


Банальнейший пример из жизни.

Я написал конструктор копирования , а некто потом добавил новый мембер в класс... И теперь раз когда такое происходит , надо не забыть вставить копирование мембера в констрктор копирования и т.д.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[4]: Как я завалил собеседование
От: minorlogic Украина  
Дата: 26.01.07 05:52
Оценка:
Здравствуйте, Kemsky, Вы писали:

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


Последний рекорд , я слышал что С++ можно за 2 недели выучить , а вы за несколько дней !
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[12]: Как я выгнал человека с собеседования
От: SkyDance Земля  
Дата: 26.01.07 06:17
Оценка: :)
LM>Посмотри boost::bind и пойми насколько просто стело делать callback-и и threadfunc(если использовать boost::thread)

Ну для callback'ов лучше все-таки boost::function.
bind для другого предназначен.

ЗЫ: в boost::lambda лучше вообще не смотри. Сначала крыша съедет, а потом придется посылать лесом все конторы, где boost запрещён по т.н. "административным" причинам (в переводе на русский — это когда тим лид не знает буста).
Re[17]: Как я завалил собеседование
От: SkyDance Земля  
Дата: 26.01.07 06:19
Оценка:
J>В принципе, по этому поводу Александреску с бустовцами грызся в довольно грубой форме.
J>Он очень оскорбился, что shared_ptr вставят в новый стандарт, а про него ни словом не упомянут.
J>На что ему вежливо ответили, что с его стороны, к сожалению, не видно оформленного по всем правилам пропозла для стандарта.
J>А жаль, мне его подход больше нравится.

А мне не жаль, нет ничего хуже, чем разбираться в плохо оформленном коде, без грамотных описаний. Стандарт сделан так, что его даже дуболом должен уметь понять.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.