Программисты и хардкор гугна

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настоящий материал самостоятельно опубликован в нашем сообществе пользователем proper на основании действующей редакции Пользовательского Соглашения. Если вы считаете, что такая публикация нарушает ваши авторские и/или смежные права, вам необходимо сообщить об этом администрации сайта на EMAIL abuse@proru.org с указанием адреса (URL) страницы, содержащей спорный материал. Нарушение будет в кратчайшие сроки устранено, виновные наказаны.

Добавить комментарий