Собеседовался я недавно в одну компанию на программиста. Они занимаются написанием игр: браузерки и под смартфоны. И меня там очень долго и с пристрастием трое допрашивали на тему множественного наследования. Причём не для случая реализации классом интерфейсов, а именно со всем ромбовидным хардкором, переопределением и перекрытием методов и так далее.На предыдущем месте работы один мой коллега, которого я уважал как человека и программиста, как-то сказал фразу: "Множественное наследование имеет смысл использовать либо если ты гений, либо если долбоёб." На что я и указал собеседующим, но нейтрально, в стиле: "Просто не надо так писать". Но их этот ответ, конечно же, не устроил:— А если уже так написано?— Посмотреть, кто так написал, и спросить зачем.— Нет, ну, давайте абстрагируемся, вот код...Собеседования тем хороши, что самому тоже можно задавать вопросы. Это не экзамен, на котором профессор, мысленно теребя свой анус власти, с нескрываемым неуважением визгнет: "Здесь я задаю вопросы, а ты отвечаешь!" Поэтому после демонстрации невладения непрактичными механизмами я спросил:— А вот как бы вы стреляли из пистолета, из дула которого вылетает всегда две пули: одна как обычно, а вторая - в противоположную сторону?Повисла пауза. По глазам одного собеседующего было видно, что ему захотелось свести это к шутке, но я совершенно не был на это настроен.— Зачем же его таким сделали?— Ну, не знаю. Может, оптимизация для тех, кто хочет застрелить кого-нибудь, а потом покончить с собой. Это не имеет значения, давайте абстрагируемся, вот пистолет. Как из него стрелять, при условии, что самому бы пулю получить не хотелось?— Ну, наверное, уклоняться.— А целиться тогда как?— Сначала можно прицелиться, а потом убрать голову и выстрелить.— Но прицел ведь собьётся.— Ну да...Один из собеседующих, который всё это время молчал, загорелся идеей:— А что если сзади пистолета поставить зеркало, а стрелять как бы сбоку?— Ну, во-первых, целиться будет сложнее. Во-вторых, пуля, что вылетит сзади, разобьёт зеркало. В-третьих, вы собираетесь везде таскать зеркало? В-четвёртых, вы собираетесь стоять к опасному животному или вооружённому преступнику спиной или боком?— Зеркало можно маленьким сделать, заведомо там, где в него не будет пуля попадать. Как вариант, можно видеокамеру с прицелом поставить...Тот, что хотел свести к шутке, перебил:— А можно изогнуть ствол с обеих сторон, как подкову. Получится что-то вроде двустволки, где обе пули будут лететь в одну сторону.— Ну, я думаю, вряд ли получится изогнуть дуло. И курок нужно будет нажимать в другую сторону, изогнув руку. Да и прицела не будет.— Ну, сделать новый прицел.— А старый куда?— Старый просто останется, не мешает.Таким образом, программисты предлагали всё новые и новые варианты. В конце концов я сказал:— А знаете как бы я поступил?— Как же?— Я бы не стал использовать такой пистолет вообще. Просто взял бы вместо него нормальный, обычный. И использовал его так, как его обычно используют.— Ну-у, не, загадка ведь не в том была...— Да нет, в том и была. Просто не нужно использовать такие вещи. Ствол не для того создан, чтобы с двух сторон стрелять. А зеркала, дополнительные мушки и гнутые стволы - это всё то говно, что вы сделаете, чтобы предыдущее говно работало. А можно было не творить говно просто в самом начале, отказавшись от его использования, не обрекая себя на замкнутный круг говна.Да не, на самом деле я не спрашивал ничего. Я просто сфейлил по сложным вопросам, завалил собеседование, а потом плакался друзьям в личку, что все эти нюансы не нужны и говно.
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев