Безумие и отвага
Feb. 15th, 2014 01:59 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Вопрос на собеседование:
Вам дается 100 проектов, содержащих t4 шаблоны, написанные старообрядческими псоглавцами.
Ваша задача написать MSBuild скрипт, который перегенерирует весь код, созданный из этих шаблонов.
Смех тут в том, что студия перегенерирует код только если зайти в t4 шаблон и пересохранить его, чтобы время изменилось. А изменение файлов, включенных через include не вызывает перегенерацию.
Вам дается 100 проектов, содержащих t4 шаблоны, написанные старообрядческими псоглавцами.
Ваша задача написать MSBuild скрипт, который перегенерирует весь код, созданный из этих шаблонов.
Смех тут в том, что студия перегенерирует код только если зайти в t4 шаблон и пересохранить его, чтобы время изменилось. А изменение файлов, включенных через include не вызывает перегенерацию.
no subject
Date: 2014-02-15 11:11 am (UTC)no subject
Date: 2014-02-15 11:47 am (UTC)no subject
Date: 2014-02-15 11:54 am (UTC)no subject
Date: 2014-02-15 12:01 pm (UTC)Я не знаю, может у вас на лавке запасных сидит сотня мидлов с джуниорами и всем похер, будут они код писать один день или неделю. А у меня сокращение трудозатрат на фигню вида "как сымитировать на дотнете лисп" сильно упрощает жизнь.
no subject
Date: 2014-02-15 12:06 pm (UTC)Да просто странные задачи в вашей предметной области. Обычно нужно что-то вроде "написать сайт". Из требований обычно сроки и затраты, "функции высшего порядка" в требованиях не встречал. Особенно после 10 лет разработки и при наличии 100 проектов.
no subject
Date: 2014-02-15 12:16 pm (UTC)Причем сделать так, чтобы при этом не сломались основанные на этом же коде еще пару десятков проектов, полученный код могли использовать коллеги, а в идеале - новая функция появилась сразу во всех проектах и чтобы это можно было поддерживать на много лет вперед.
Ну, опять же - если тебе непонятно, что дают функции высшего порядка и метапрограммирование при разработке - ты или тролль типа ждевелопа или работа в ненормальных условиях подломила тебе мозги. Любой адекватный программист даже если не использует все это, то по крайней мере знает, для чего оно и где ее хорошо применить.
no subject
Date: 2014-02-15 12:29 pm (UTC)Я так понимаю, для этого обычно все эти десятки проектов и переписываются на функциях высшего порядка.
no subject
Date: 2014-02-15 12:41 pm (UTC)А вообще - если я вижу что одной лямбда функцией можно заменить интерфейс+реализацию (до какого-то там дотнета не было лямбд и вывода типов нормального), то я так и делаю - меньше кода, меньше в голове держать.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-02-16 05:26 am (UTC)no subject
Date: 2014-02-16 07:53 am (UTC)no subject
Date: 2014-02-16 09:27 am (UTC)no subject
Date: 2014-02-16 09:58 am (UTC)no subject
Date: 2014-02-15 02:23 pm (UTC)А позиция "я буду херачить дрова на яве, а эти дебилы пусть дальше изобретают бензопилу, пойду обосру их" - она глупо выглядит банально. Со скудоумием можно уметь жить достойно, и трудоустраивать скудоумных - тоже хорошая тема. Но возводить скудоумие в идеал - это уже смешно выглядит.
no subject
Date: 2014-02-15 03:23 pm (UTC)no subject
Date: 2014-02-15 03:35 pm (UTC)Во-вторых 10 миллионов строк кода на C++, которые еще и продаются, определенно стоит если не переписать, то потихоньку переписывать. Вынимать high-level логику в более приспособленный язык. Этот путь уже прошли даже игры, где производительность и память в абсолюте. Если у вас какой-нибудь QT на плюсах для UI - вы просто слоупоки.
no subject
Date: 2014-02-15 03:38 pm (UTC)no subject
Date: 2014-02-15 03:42 pm (UTC)no subject
Date: 2014-02-15 03:47 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-02-15 03:56 pm (UTC)no subject
Date: 2014-02-15 03:58 pm (UTC)no subject
Date: 2014-02-15 04:21 pm (UTC)Но может оказаться, что трудозатраты на поддержку и доработку некоторых подсистем можно сократить, втащив лямбды и прочую чернягу, тогда нужно будет сравнивать - то ли лучше долго, медленно, но без потрясений писать на С++, то ли втянуть одноразово что-нибудь более вменяемое, с учетом потенциальных затрат на поддержку в будущем.
no subject
Date: 2014-02-17 07:02 am (UTC)no subject
Date: 2014-02-17 07:30 am (UTC)no subject
Date: 2014-02-17 09:59 am (UTC)no subject
Date: 2014-02-15 03:27 pm (UTC)