Собеседовался я недавно

Собеседовался я недавно

!internet!

Собеседовался я недавно в одну компанию на программиста. Они занимаются написанием игр: браузерки и под смартфоны. И меня там очень долго и с пристрастием трое допрашивали на тему множественного наследования. Причём не для случая реализации классом интерфейсов, а именно со всем ромбовидным хардкором, переопределением и перекрытием методов и так далее.


На предыдущем месте работы один мой коллега, которого я уважал как человека и программиста, как-то сказал фразу: "Множественное наследование имеет смысл использовать либо если ты гений, либо если долбоёб." На что я и указал собеседующим, но нейтрально, в стиле: "Просто не надо так писать". Но их этот ответ, конечно же, не устроил:

— А если уже так написано?

— Посмотреть, кто так написал, и спросить зачем.

— Нет, ну, давайте абстрагируемся, вот код...


Собеседования тем хороши, что самому тоже можно задавать вопросы. Это не экзамен, на котором профессор, мысленно теребя свой анус власти, с нескрываемым неуважением визгнет: "Здесь я задаю вопросы, а ты отвечаешь!" Поэтому после демонстрации невладения непрактичными механизмами я спросил:

— А вот как бы вы стреляли из пистолета, из дула которого вылетает всегда две пули: одна как обычно, а вторая - в противоположную сторону?


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

— Зачем же его таким сделали?

— Ну, не знаю. Может, оптимизация для тех, кто хочет застрелить кого-нибудь, а потом покончить с собой. Это не имеет значения, давайте абстрагируемся, вот пистолет. Как из него стрелять, при условии, что самому бы пулю получить не хотелось?

— Ну, наверное, уклоняться.

— А целиться тогда как?

— Сначала можно прицелиться, а потом убрать голову и выстрелить.

— Но прицел ведь собьётся.

— Ну да...


Один из собеседующих, который всё это время молчал, загорелся идеей:

— А что если сзади пистолета поставить зеркало, а стрелять как бы сбоку?

— Ну, во-первых, целиться будет сложнее. Во-вторых, пуля, что вылетит сзади, разобьёт зеркало. В-третьих, вы собираетесь везде таскать зеркало? В-четвёртых, вы собираетесь стоять к опасному животному или вооружённому преступнику спиной или боком?

— Зеркало можно маленьким сделать, заведомо там, где в него не будет пуля попадать. Как вариант, можно видеокамеру с прицелом поставить...


Тот, что хотел свести к шутке, перебил:

— А можно изогнуть ствол с обеих сторон, как подкову. Получится что-то вроде двустволки, где обе пули будут лететь в одну сторону.

— Ну, я думаю, вряд ли получится изогнуть дуло. И курок нужно будет нажимать в другую сторону, изогнув руку. Да и прицела не будет.

— Ну, сделать новый прицел.

— А старый куда?

— Старый просто останется, не мешает.


Таким образом, программисты предлагали всё новые и новые варианты. В конце концов я сказал:

— А знаете как бы я поступил?

— Как же?

— Я бы не стал использовать такой пистолет вообще. Просто взял бы вместо него нормальный, обычный. И использовал его так, как его обычно используют.

— Ну-у, не, загадка ведь не в том была...

— Да нет, в том и была. Просто не нужно использовать такие вещи. Ствол не для того создан, чтобы с двух сторон стрелять. А зеркала, дополнительные мушки и гнутые стволы - это всё то говно, что вы сделаете, чтобы предыдущее говно работало. А можно было не творить говно просто в самом начале, отказавшись от его использования, не обрекая себя на замкнутный круг говна.


Да не, на самом деле я не спрашивал ничего. Я просто сфейлил по сложным вопросам, завалил собеседование, а потом плакался друзьям в личку, что все эти нюансы не нужны и говно.

Report Page