Безумие и отвага
Вопрос на собеседование:
Вам дается 100 проектов, содержащих t4 шаблоны, написанные старообрядческими псоглавцами.
Ваша задача написать MSBuild скрипт, который перегенерирует весь код, созданный из этих шаблонов.
Смех тут в том, что студия перегенерирует код только если зайти в t4 шаблон и пересохранить его, чтобы время изменилось. А изменение файлов, включенных через include не вызывает перегенерацию.
Вам дается 100 проектов, содержащих t4 шаблоны, написанные старообрядческими псоглавцами.
Ваша задача написать MSBuild скрипт, который перегенерирует весь код, созданный из этих шаблонов.
Смех тут в том, что студия перегенерирует код только если зайти в t4 шаблон и пересохранить его, чтобы время изменилось. А изменение файлов, включенных через include не вызывает перегенерацию.
no subject
no subject
no subject
no subject
Да ну! Где? И что же вы такое пишете на 10 миллионов строк высокопроизводительное?
no subject
Но для этого в проекте есть два своих встроенных языка. Собственно, проект заключается в написании платформы для построения других приложений. Также, хочу заметить, что 10 миллионов строк кода - это только сама основа. Ещё туева хуча кода на встроенных языках, кода клиентов (тонкий на js, мобильные клиенты и т.п.), кода тестов, кода сторонних приложений (всякие сервера поиска), кода сервисов (в т.ч. на жабе, например). Не сомневаюсь, что и это всё тоже надо переписать на руби.
no subject
no subject
no subject
Зачастую при переписывании на функциональном языке проявляются алгоритмические проёбы, которые никаким с++ не компенсируются.
no subject
- С++ неадекватный язык - несмотря на то, что на нём уже написан огромный проект и он приносит прибыль, так что непонятны ваши критерии адекватности
- система не разбита на подсистемы - а она разбита, и весьма грамотно
- существуют "адекватные" и "неадекватные" языки в вакууме, т.е. сами по себе, без конкретной ситуации
- сами по себе языки (а именно функциональные) позволяют выявить какие-то там проёбы, видимо, они и есть серебряная пуля
В общем, мне даже непонятно, как тут можно спорить, вы совершенно во всём правы.
http://www.joelonsoftware.com/articles/fog0000000069.html
The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and they've been fixed.
no subject
В подавляющем большинстве случаев.
"несмотря на то, что на нём уже написан огромный проект и он приносит прибыль"
На коболе тоже написаны огромные проекты, которые приносят прибыль. Однако появились более удачные языки и на коболе больше не пишут.
"существуют "адекватные" и "неадекватные" языки в вакууме"
Нет, если бы существовали адекватные языки в вакууме, я бы предложил переписать весь проект на адекватный язык. Я же предложил переписать часть подсистем на адекватный язык. Очевидно, адекватный предметке конкретной подсистемы.
"сами по себе языки (а именно функциональные) позволяют выявить какие-то там проёбы"
Вы в это не верите? Серьёзно? Даже ни тени сомнения? Ну извини, даже обсуждать тогда не хочется.
no subject
no subject
Ещё раз, я ни разу не сказал, что нужно всё и безоговорочно переписывать. Нужно в любом случае сравнивать отдачу от переписывания с затратами.
no subject