Об изобретении велосипедов и "готовых" решениях
Как известно, страшным грехом в современном программировании считаются синдром NIH, изобретение велосипедов и попытки решить уже решенные задачи, а уже нахождение новых задач - страшнейшее богохульство, на уровне осквернения могил и нежелания смотреть олимпиаду по телевизору.
В связи с этим, в своих дотнет-проектах я стараюсь использовать два стандарных инструмента: MSBuild для сборки и t4 для генерации повторяющегося кода.
Так вот, если первый всего лишь содержит мелкие странности (типа считает переменные окружения своими переменными, но не передает автоматически свои обычные переменные, если вызывает сам себя и не содержит внятных средств организации подпроцедур - т.е. области видимости переменных в нем - это ad-hoc ад писанный людьми, которые никогда не читали SICP), то второй - это теоретически правильное, но неудобное при разработке дичайшее безумие.
И я уверен, что аналогичный темплейтер, сделанный на clojure, был бы намного понятнее, нежели "готовое" решение.
В связи с этим, в своих дотнет-проектах я стараюсь использовать два стандарных инструмента: MSBuild для сборки и t4 для генерации повторяющегося кода.
Так вот, если первый всего лишь содержит мелкие странности (типа считает переменные окружения своими переменными, но не передает автоматически свои обычные переменные, если вызывает сам себя и не содержит внятных средств организации подпроцедур - т.е. области видимости переменных в нем - это ad-hoc ад писанный людьми, которые никогда не читали SICP), то второй - это теоретически правильное, но неудобное при разработке дичайшее безумие.
И я уверен, что аналогичный темплейтер, сделанный на clojure, был бы намного понятнее, нежели "готовое" решение.
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
T4 в таком ракурсе предстает уже ошибкой третьего порядка - сначала менеджеры-идиоты придумали шаблонизаторы, потом воспитали себе юнитов-дебилов-программистов, которые потом сделали T4 по образу и подобию шаблонизаторов html для юнитов-дебилов, сделанных по ошибке менеджерами-идиотами.
no subject
no subject
Т.е. берем анемик класс, добавляем руками поведения в соседнем файле и все заебца.
no subject
И чисто интересно, что за предметные области, в которых модели можно генерить, а главное что является исходником? База данных что ли?
no subject
no subject
no subject
no subject
Исходником для t4 является сам шаблон, код типа:
FieldDesc[] fields = new FieldDesc[] {
new FieldDesc("string","Caption"),
new FieldDesc("int","Level"),
new FieldDesc("string","Reference"),
new FieldDesc("string","Default"),
new FieldDesc("string","Type")
};
Но конкретно это не объекты предметки, это всякая внутренняя хрень, типа "описание настроек полей" или прочие классы для таскания данных между частями системы, в т.ч. и через разного рода текстовые форматы.
no subject
По факту всегда образуется слой-обертка над этими всеми div-ами и span-ами, и зачем и что в шаблонах надо писать близко к тексту становится совсем непонятно.
no subject
no subject
no subject
no subject