Re[2]: Тестовое задание C++ win
От: sergey_cheban  
Дата: 04.05.10 19:08
Оценка: 1 (1) +1 :)))
Здравствуйте, Константин.

KC>В общем, побывал я в DrWeb на собеседовании и даю правильный с их точки зрения ответ:

KC>По первому заданию:
Я рад, что обсуждение недостатков Вашего первоначального ответа пошло Вам на пользу. И всё же:
1. Хочу предостеречь от использования &a[0] без проверки на наличие в векторе хоть каких-то данных. Если мы не предупредили Вас об этой проблеме на собеседовании, это не значит, что её не существует.
2. Вся строчка "func f_drWeb said:" — это Ваши личные фантазии, к которым компания DrWeb не имеет ни малейшего отношения. Пусть они остаются на Вашей совести.

KC>По второму заданию:

Ваши упражнения с локалью пригодны только для одного случая: когда консольная программа вызывается с русскими аргументами в кодировке ANSI. Для случая "консольная программа вызывается из консоли" установка локали создаёт проблемы, а не решает их. На собеседовании Ваш ответ на этот вопрос вообще не обсуждался, и поэтому Ваши утверждения о причастности компании DrWeb к этому коду я решительно отвергаю.

KC>Кроме того, можете скачать http://piterludi.com/fordeveloponbox/stlfuns.zip

KC>В этом проекте (VC++ 2008) я продемонстрировал также поведение виртуальных функций, вызываемых из конструкторов и деструкторов — вопрос,
KC>который почему-то нередко возникает на собеседованиях. Также немного побаловался с промышленным дизайном для этой же задачи.
Вот этот фрагмент особенно порадовал:
void GFuncCaller_NOSTL::clearBuff()
{
        if(!BufferA) delete[] BufferA;// Это не защита. Если BufferA==NULL, проблем с deleteA все равно нет
        BufferA = NULL;                // просто незачем вызывать delete

        if(!BufferB) delete[] BufferB;
        BufferB = NULL;
        
        gBufferSize = 0;
};

У Вас действительно есть свой стиль написания кода. Вы только с названием стиля ошиблись: это не Industrial, а Trash.

KC>Хотя по ходу собеседования я и сделал вывод, что промышленный дизайн и общепринятые подходы они считают

KC>ненужным усложнением и ретроградством.
KC>Возможно, я ошибаюсь: все-таки собеседование проходило в стиле "опусти кандидата",
KC>а при таком стиле язвительно критикуется любое высказывание.
У нас во время собеседования действительно возникли разногласия в том, какие подходы считать общепринятыми. Но не более того.
Что касается стиля "опусти кандидата" — мы честно высказывали своё мнение о Ваших высказываниях и честно давали Вам возможность отстоять свою позицию по тем вопросам, по которым мы были с Вами не согласны.
А вот, например, по второму вопросу из письменного задания мы Вас не "опускали", и вот Вы уже рассказываете, что это и есть правильный, по нашему мнению, вариант.

KC>Вероятно, предполагается, что осознавший свое ничтожество и полностью дезориентированный кандидат

KC>преисполнится безумной радости, если ему все-таки сделают предложение поработать в такой новаторской фирме.
Пожалуйста, воздержитесь от обобщений. К нам и нормальные кандидаты приходят.

KC>Просто держите в голове, что "опустить" можно любого: конкретно моих "экзаменаторов" можно было бы легко "опустить" как минимум

KC>по знаниям паттернов проектирования (особенно сoncurrency) и подходам к разработке сложных систем.
Вы говорите это после того, как сами на собеседовании продемонстрировали незнание http://en.wikipedia.org/wiki/Reactor_pattern? И Вам не стыдно?

KC>Никто не может знать всего.

Этого мы от кандидатов и не требуем.

KC>Если будете у них на собеседовании — в момент, когда от вас потребуют что-либо написать, постарайтесь не отвлекаться

KC>на вопросы "экзаменаторов", "заторапливание" и попытки вывести вас из себя. Иначе наделаете таких ляпов, что самому потом будет стыдно.
...И постарайтесь не тратить по двадцать минут на вопросы типа "Эту задачу можно решить всего тремя строчками кода, а не тридцатью, как Вы предложили. Вы можете написать эти три строчки?".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.