Форум → Программирование → Больше языков → Ruby → Генераторы и скаффолды (scaffolds and generators)
Генераторы и скаффолды (scaffolds and generators)
-
ГЕНЕРАТОР (generator)
Генератор - программа (скрипт), занимающаяся написанием программ (или фрагментов кода) согласно заданным входным параметрам. Поскольку абсолютное множество фрагментов ROR приложения максимально унифицированы (согласуются со стандартами ROR), то у нас появляется возможность создавать программы, которые самостоятельно будут формировать красивый рабочий код некоторых фрагментов нашего приложения.
Так, например, большинство действий происходящих на сайте попадают в категорию CRUD (Create, Read, Update, Delete). Возьмем профайл пользователя - для него должны существовать функции - создать, читать (просмотр), обновить, удалить. Тоже самое со страницами сайта, каждая должна иметь возможность быть созданной, прочитанной, обновленной и удаленной. У данных действий совершенно аналогичный алгоритм, единственная разница - это название класса объектов, к которому алгоритм применяется (Profile и Page).
Известны генераторы, которые по заданным именам объектов создают полностью готовые к исполнению файлы логики (функции обработчики запросов), виды отображения и прочего. Так мы можем в считанные секунды, с помощью генератора создавать очень простые, но полноценные административные web интерфейсы.
Скаффолд, скаффолдинг (scaffold, scaffold generator)
Скаффолд - генератор, создающий полностью готовый к использованию административный интерфейс для управления объектами БД через web-браузере.
В качестве входных данных принимает имя Модели (класса объектов) и список полей таблицы БД с соответствующими типами данных (что бы под каждый тип данных создать соответствующий элемент ввода внутри html формы). Обеспечивает полный набор действий CRUD.
Скаффолд-генератор воплощает в себе одну из идеологий RAILS - DRY (DON't REPEAT YOURSELF) - т.е. не повторяйся (не пиши заново свой код). Действительно, создав генератор для создания файлов с аналогичным функционалом для разных фрагментов приложения, мы во многом избавляем себя от необходимости писать одинаковый код многократно.
Скаффолд (scaffold) - в переводе обозначает подмостки или строительные леса. Т.е. создает что-то такое, что позволяет быстро строить интерфейс.
Ролики формата - БЛОГ НА ROR ЗА 15 МИНУТ. Основаны на методике Скаффолдов.Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru -
Авг. 15, 2009, 10:04 п.п., спустя 1 час 31 минуту 49 секунд
killich, покажи плз генератор для создания генераторов (с) -
Авг. 16, 2009, 10:30 д.п., спустя 12 часов 26 минут 56 секунд
=)
К сожалению отдельного генератора генераторов нет - и не по причине того, что это не нужно, а потому, что такой генератор фактически является частью генератора плагинов.
Запустив генератор плагина вы так же получите и папку с генератором, поименованным так же как и плагин.
генератор плагинов и генератор генераторов =) естественно не напишет для вас нужный плагин и генератор, но создаст уже готовую инфраструктуру для их создания, как то: файлы инициализации, файлы шаблонов для генерируемого кода и директории, где будет это все структурировано храниться.
Так, Мавр.. разговор о генераторе генераторов для генерации генераторов предлагаю не начинать =)Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru -
Авг. 16, 2009, 1:42 п.п., спустя 3 часа 11 минут 37 секунд
killich, да я ваще подъебать хотел а ты все всерьез… -
Авг. 16, 2009, 3:19 п.п., спустя 1 час 36 минут 44 секунды
Когда происходит генерирация, на каком этапе? Один раз при вызове "инсталлера"?
Потом можно изменить админ-формы?https://smappi.org/ - платформа по созданию API на все случаи жизни -
Авг. 17, 2009, 10:10 д.п., спустя 18 часов 51 минуту 4 секунды
killich, да я ваще подъебать хотел а ты все всерьез…
А я тупой да.. не понял .. да?! =)))
Надеялся ты оценишь мой тонкий хуморь =)Спустя 224 сек.Когда происходит генерирация, на каком этапе? Один раз при вызове "инсталлера"?
Потом можно изменить админ-формы?
В любое время дня и ночи в независимости от самого приложения.
Представь себе набор готовых утилит для своего приложения, которые облегчают тебе работу над проектом.
Вот такие наборы утилит - оформлены в виде rake задач, которые можно писать и самому.
rake задача - это скрипт на руби, который в некотором смысле был порожден идеей make файлов nix систем. Поэтому и называется Ruby Make - RakeРубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru -
Авг. 17, 2009, 10:22 д.п., спустя 12 минут 20 секунд
руби только своей ОС не хватает))Сапожник без сапог -
Авг. 17, 2009, 10:34 д.п., спустя 11 минут 21 секунду
killich, ясно, прикольно )https://smappi.org/ - платформа по созданию API на все случаи жизни -
-
Фев. 24, 2011, 1:52 п.п., спустя 556 дней 3 часа 3 минуты
а можно пример какой нить по сложней , так в качестве учебного материала : (rails generate scaffold…) -
Фев. 24, 2011, 3:41 п.п., спустя 1 час 49 минут
Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru
Пожалуйста, авторизуйтесь, чтобы написать комментарий!