The "convention over configuration" principle is good at providing widely used defaults, but when it's applied to more complex problems, it starts to lack flexibility quite soon. I was thinking about it lately, reading through Meteor framework docs. And I realised that code generation is a better solution.
Consider Django framework and it's forms engine. It's quite good that you can put all the fields and related validation logic in a simple-looking class letting Django to do the heavy lifting in a background. You can also use some single-line pseudo-tags to insert your form into HTML layout. But there is a difference between the logical part and the layout. Shortly speaking, the layout is way more variable. Sadly there is no universal HTML form layout. The layouts vary both from one project to another and from one part to another of the same project. They do vary a lot, as a matter of fact, in the process of project evolution as well. And evolution of HTML's technology stack itself just increases the amount of fun we have here.
So, from one side, you don't want to write a lot of similar code yourself. From the other side, you neither can consider a "standard" form representation as an option, often even for the simplest ones. There is a conflict, which has to be solved. And you know, the world of web development is way not that complex as the world of cold fusion physics or gene engineering. If there is a problem, and it's not related to an outdated browser from M$, it will be solved quite soon. Probably, the general solution already exists at the moment you realised the existence of the problem itself.
To my opinion, the code generation is an answer. But it should be done in a clever way, with a template preset library and obvious customisation tools. If you have a wide variety of possible layouts, some of them widespread and some are totally local, you should have a repository of this stuff. Something like YeoMan, yet integrated in a framework and created especially for the cases like the one we're considering here.
In PHP world they've had a lot of code generators for CRUD since the first Zend Framework (if I remember it properly). Not for the reason that it was the best option, but (to my opinion) rather for the reason of the language limitations. I mean, with no template generation customisation provided, they don't do any better than Django does, yet having way more code to write. But the idea is quite promising, it just needs some significant amount of polishing.
Consider Django framework and it's forms engine. It's quite good that you can put all the fields and related validation logic in a simple-looking class letting Django to do the heavy lifting in a background. You can also use some single-line pseudo-tags to insert your form into HTML layout. But there is a difference between the logical part and the layout. Shortly speaking, the layout is way more variable. Sadly there is no universal HTML form layout. The layouts vary both from one project to another and from one part to another of the same project. They do vary a lot, as a matter of fact, in the process of project evolution as well. And evolution of HTML's technology stack itself just increases the amount of fun we have here.
So, from one side, you don't want to write a lot of similar code yourself. From the other side, you neither can consider a "standard" form representation as an option, often even for the simplest ones. There is a conflict, which has to be solved. And you know, the world of web development is way not that complex as the world of cold fusion physics or gene engineering. If there is a problem, and it's not related to an outdated browser from M$, it will be solved quite soon. Probably, the general solution already exists at the moment you realised the existence of the problem itself.
To my opinion, the code generation is an answer. But it should be done in a clever way, with a template preset library and obvious customisation tools. If you have a wide variety of possible layouts, some of them widespread and some are totally local, you should have a repository of this stuff. Something like YeoMan, yet integrated in a framework and created especially for the cases like the one we're considering here.
In PHP world they've had a lot of code generators for CRUD since the first Zend Framework (if I remember it properly). Not for the reason that it was the best option, but (to my opinion) rather for the reason of the language limitations. I mean, with no template generation customisation provided, they don't do any better than Django does, yet having way more code to write. But the idea is quite promising, it just needs some significant amount of polishing.
Принцип «соглашения о конфигурации» хорош для обеспечения широко используемых значений по умолчанию, но когда он применяется к более сложным задачам, он начинает испытывать недостаток гибкости довольно скоро. В последнее время я думал об этом, читая документы по Метеорным рамкам. И я понял, что генерация кода - лучшее решение.
Рассмотрим фреймворк Django и движок его форм. Хорошо, что вы можете поместить все поля и связанную логику проверки в простой класс, позволяющий Django выполнять тяжелую работу в фоновом режиме. Вы также можете использовать некоторые однострочные псевдотеги для вставки вашей формы в HTML-макет. Но есть разница между логической частью и макетом. Короче говоря, макет является более изменчивым. К сожалению, нет универсального макета HTML-формы. Макеты варьируются как от одного проекта к другому, так и от одной части к другому одного и того же проекта. На самом деле они сильно различаются и в процессе эволюции проекта. А эволюция самого стека технологий HTML просто увеличивает количество удовольствия, которое мы здесь получаем.
Итак, с одной стороны, вы не хотите писать много подобного кода самостоятельно. С другой стороны, вы не можете рассматривать «стандартное» представление формы как вариант, часто даже для самых простых. Есть конфликт, который нужно решить. И вы знаете, мир веб-разработки не так сложен, как мир физики холодного синтеза или генной инженерии. Если есть проблема, и она не связана с устаревшим браузером от M $, она будет решена довольно скоро. Возможно, общее решение уже существует в тот момент, когда вы осознали существование самой проблемы.
На мой взгляд, генерация кода является ответом. Но это должно быть сделано хитро, с предустановленной библиотекой шаблонов и очевидными инструментами настройки. Если у вас есть большое разнообразие возможных макетов, некоторые из них широко распространены, а некоторые полностью локальны, у вас должен быть репозиторий этого материала. Нечто подобное YeoMan, но интегрированное в каркас и созданное специально для случаев, подобных тому, который мы здесь рассматриваем.
В мире PHP у них было много генераторов кода для CRUD с момента первой Zend Framework (если я правильно помню). Не по той причине, что это был лучший вариант, а по моему мнению, скорее из-за языковых ограничений. Я имею в виду, что без настройки генерации шаблонов, они не работают лучше, чем Django, но имеют гораздо больше кода для написания. Но идея довольно многообещающая, она просто требует значительного количества полировки.
Рассмотрим фреймворк Django и движок его форм. Хорошо, что вы можете поместить все поля и связанную логику проверки в простой класс, позволяющий Django выполнять тяжелую работу в фоновом режиме. Вы также можете использовать некоторые однострочные псевдотеги для вставки вашей формы в HTML-макет. Но есть разница между логической частью и макетом. Короче говоря, макет является более изменчивым. К сожалению, нет универсального макета HTML-формы. Макеты варьируются как от одного проекта к другому, так и от одной части к другому одного и того же проекта. На самом деле они сильно различаются и в процессе эволюции проекта. А эволюция самого стека технологий HTML просто увеличивает количество удовольствия, которое мы здесь получаем.
Итак, с одной стороны, вы не хотите писать много подобного кода самостоятельно. С другой стороны, вы не можете рассматривать «стандартное» представление формы как вариант, часто даже для самых простых. Есть конфликт, который нужно решить. И вы знаете, мир веб-разработки не так сложен, как мир физики холодного синтеза или генной инженерии. Если есть проблема, и она не связана с устаревшим браузером от M $, она будет решена довольно скоро. Возможно, общее решение уже существует в тот момент, когда вы осознали существование самой проблемы.
На мой взгляд, генерация кода является ответом. Но это должно быть сделано хитро, с предустановленной библиотекой шаблонов и очевидными инструментами настройки. Если у вас есть большое разнообразие возможных макетов, некоторые из них широко распространены, а некоторые полностью локальны, у вас должен быть репозиторий этого материала. Нечто подобное YeoMan, но интегрированное в каркас и созданное специально для случаев, подобных тому, который мы здесь рассматриваем.
В мире PHP у них было много генераторов кода для CRUD с момента первой Zend Framework (если я правильно помню). Не по той причине, что это был лучший вариант, а по моему мнению, скорее из-за языковых ограничений. Я имею в виду, что без настройки генерации шаблонов, они не работают лучше, чем Django, но имеют гораздо больше кода для написания. Но идея довольно многообещающая, она просто требует значительного количества полировки.
У записи 2 лайков,
0 репостов.
0 репостов.
Эту запись оставил(а) на своей стене Key-G B-Tee