Безумие и отвага
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: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
Date: 2014-02-15 12:44 pm (UTC)Надо просто дождаться, когда придёт человек с установкой "надо всё переписывать" и другим языком, на котором он всё переписывает. К идеалу надо стремиться.
no subject
Date: 2014-02-15 12:52 pm (UTC)Если чо-то хочешь сказать, пиши прямо, а за ерничанием - к бостонскому в журнал, там такое любят.
no subject
Date: 2014-02-15 01:11 pm (UTC)Критерии - они разные бывают.
no subject
Date: 2014-02-15 01:24 pm (UTC)Никто ничего не переписывает, за исключением доработок с рефакторингом с вычищением накопившегося за десяток лет бреда. Или там например - зачем я буду использовать код 2005 года на .net 1.1, если он заменяется парой строчек на LINQ сейчас?
Если к тебе приходят менеджеры и говорят, на чем писать - у меня для тебя плохие новости :)
no subject
Date: 2014-02-15 03:30 pm (UTC)no subject
Date: 2014-02-15 04:23 pm (UTC)no subject
Date: 2014-02-15 04:35 pm (UTC)no subject
Date: 2014-02-15 04:50 pm (UTC)Кроме того, начиная с 3.5-4.0, имеются в меру полезные вещи. которых раньше не было - лямбды, LINQ, параметры по умолчанию, динамики и прочее такое.
У меня есть несколько сторонних либ в проекте, так они успешно все на 4.5 сбежали уже, впрочем для таких случаев я либо их пересобираю под свою версию, либо бэкпортирую новые фичи :)
no subject
Date: 2014-02-15 04:59 pm (UTC)no subject
Date: 2014-02-15 06:47 pm (UTC)no subject
Date: 2014-02-15 07:09 pm (UTC)Но тут-то суть в том, что даже неглядя на чёткое указание - критический проект, решили не переписывать - и неглядя на отсутствие информации, развивается проект или нет, ребе М. настаивает на переписывании. Сразу и безоговорочно. Ну фетиш такой у человека, что ли. Что странно, т.к. ребе М. признался, что сам-то он ничего не переписывает. Только другим советует.
no subject
Date: 2014-02-15 07:13 pm (UTC)no subject
Date: 2014-02-15 07:18 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2014-02-17 09:51 am (UTC)no subject
Date: 2014-02-17 10:27 am (UTC)(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)