Безумие и отвага
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)
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)
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)
From:(no subject)
From: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)
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-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)
From:(no subject)
From:no subject
Date: 2014-02-15 03:27 pm (UTC)no subject
Date: 2014-02-15 11:43 am (UTC)http://www.olegsych.com/2010/04/understanding-t4-msbuild-integration/
no subject
Date: 2014-02-15 11:48 am (UTC)no subject
Date: 2014-02-15 11:48 am (UTC)no subject
Date: 2014-02-15 02:05 pm (UTC)gmake умеет --always-make или .PHONY targets для вещей, которые надо пересобрать не смотря на таймштампы
no subject
Date: 2014-02-15 10:42 pm (UTC)no subject
Date: 2014-02-15 03:18 pm (UTC)no subject
Date: 2014-02-15 03:22 pm (UTC)no subject
Date: 2014-02-15 03:38 pm (UTC)no subject
Date: 2014-02-16 08:46 am (UTC)Хотя find..touch конечно было бы проще