metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2014-02-15 01:59 pm

Безумие и отвага

Вопрос на собеседование:
Вам дается 100 проектов, содержащих t4 шаблоны, написанные старообрядческими псоглавцами.
Ваша задача написать MSBuild скрипт, который перегенерирует весь код, созданный из этих шаблонов.

Смех тут в том, что студия перегенерирует код только если зайти в t4 шаблон и пересохранить его, чтобы время изменилось. А изменение файлов, включенных через include не вызывает перегенерацию.

[identity profile] bydlorus.livejournal.com 2014-02-15 11:11 am (UTC)(link)
Из того, что я успел заметить в этом вашем чятике, решение очевидно - переписать всё на кложуре. Ну или на руби. Но обязательно переписать!

[identity profile] cottidianus.livejournal.com 2014-02-15 02:05 pm (UTC)(link)
> Смех тут в том, что студия перегенерирует код только если зайти в t4 шаблон и пересохранить его, чтобы время изменилось.
gmake умеет --always-make или .PHONY targets для вещей, которые надо пересобрать не смотря на таймштампы

[identity profile] anonim-legion.livejournal.com 2014-02-15 03:18 pm (UTC)(link)
А вы вроде с F# работали, у него есть мощнейшая система макросов. На ней кодогенерацию не делали?

[identity profile] nikon-nlg.livejournal.com 2014-02-16 08:46 am (UTC)(link)
Говорят, powershell (ls your-file-name-here).LastWriteTime = Get-Date помогает
Хотя find..touch конечно было бы проще