Скаффолд (программирование)
Леса , используемые в вычислительной технике, относятся к одному из двух методов:
- Генерация кода :
Это метод, связанный с доступом к базе данных в некоторых модель-представление-контроллер средах .
- Генерация проекта :
Это метод, поддерживаемый различными инструментами программирования.
Генерация кода
[ редактировать ]Скаффолдинг — это метод, поддерживаемый некоторыми модель-представление-контроллер платформами , в котором программист может указать, как может использоваться база данных приложения. Компилятор или платформа использует эту спецификацию вместе с заранее определенными шаблонами кода для генерации окончательного кода, который приложение может использовать для создания, чтения, обновления и удаления записей базы данных, эффективно рассматривая шаблоны как « подмостки », на которых можно строить. более мощное приложение.
Скаффолдинг — это эволюция генераторов кода баз данных из более ранних сред разработки, таких как CASE Generator от Oracle и многих других продуктов разработки клиент-серверного программного обеспечения 4GL .
Скаффолдинг стал популярен благодаря фреймворку Ruby on Rails . Он был адаптирован к другим программным платформам, включая OutSystems Platform , Express Framework , Blitz.js, Play framework , Django , web2py , MonoRail , Brail, Symfony , Laravel , CodeIgniter , Yii , CakePHP , Phalcon PHP , Model-Glue, PRADO , Grails , Catalyst , Mojolicious , Seam Framework , Spring Roo , JHipster , динамические данные ASP.NET , KumbiaPHP и ASP.NET MVC помощники шаблонов метаданных платформы .
Формы во время выполнения и во время разработки
[ редактировать ]Формирование шаблонов может происходить на двух разных этапах жизненного цикла программы : во время разработки и во время выполнения . Формирование во время разработки создает файлы кода, которые позже могут быть изменены программистом для настройки способа использования базы данных приложения. Однако для крупномасштабных приложений этот подход может быть затруднен из-за большого количества создаваемых файлов и того факта, что дизайн файлов в значительной степени фиксировался при их создании или копировании из исходных шаблонов. В качестве альтернативы, создание шаблонов во время выполнения создает код «на лету». Это позволяет немедленно отражать изменения в дизайне шаблонов во всем приложении. Но изменение дизайна шаблонов может быть более трудным или непрактичным в случае создания шаблонов во время выполнения.
Строительные леса в Ruby on Rails
[ редактировать ]Когда линия scaffold :model_name
добавлен в контроллер , Rails автоматически сгенерирует все соответствующие интерфейсы данных во время выполнения. Поскольку API генерируется «на лету», программист не может легко модифицировать интерфейсы, созданные таким образом. Такой простой каркас часто используется для прототипирования приложений и ввода тестовых данных в базу данных.
Программист также может запустить внешнюю команду для предварительной генерации Ruby-кода для каркаса: rails generate scaffold model_name
. generate
скрипт создаст файлы кода Ruby, которые приложение может использовать для взаимодействия с базой данных. Это несколько менее удобно, чем динамическое создание шаблонов, но дает программисту возможность изменять и настраивать сгенерированные API.
Примечание. Начиная с Rails 2.0, динамические леса больше не сохраняются.
Серверная и клиентская стороны
[ редактировать ]Методы создания шаблонов, основанные на базе данных приложения, обычно включают в себя серверные платформы. Веб-фреймворки на стороне сервера обычно выполняют операции непосредственно с записями базы данных, и генерацию кода для этих операций можно рассматривать как создание шаблонов на стороне сервера . Альтернативно, при разработке на стороне клиента часто используются платформы , которые выполняют операции транспортировки данных вместо прямого доступа к базе данных. фокусируется Таким образом, скаффолдинг на стороне клиента больше на создании стартового шаблона для приложения в целом, а не на создании кода для доступа к базе данных.
Некоторые веб-фреймворки на стороне клиента, такие как Meteor , позволяют клиенту выполнять операции с базой данных аналогично фреймворкам на стороне сервера. В этом случае методы построения лесов могут выйти за рамки простого создания стартового шаблона. Они могут выполнять во время выполнения создание веб-форм на стороне клиента для создания, чтения, обновления и удаления записей базы данных. Одним из примеров этого является дополнение к Meteor под названием aldeed:autoform. [1]
Генерация проекта
[ редактировать ]Сложные программные проекты часто имеют определенные соглашения о структуре и требованиях проекта. Например, у них часто есть отдельные папки для исходного кода , двоичных файлов и тестов кода , а также файлы, содержащие лицензионные соглашения , примечания к выпуску и контактную информацию. Чтобы упростить создание проектов в соответствии с этими соглашениями, инструменты «строителей» могут автоматически генерировать их в начале каждого проекта. К таким инструментам относятся Yeoman , Cargo и Ritchie CLI. Для .NET проектов dotnet
, инструмент командной строки, входящий в состав .NET SDK, можно использовать для создания новых проектов.
См. также
[ редактировать ]- Spring Roo — программный инструмент с открытым исходным кодом
- Play Framework — веб-фреймворк с открытым исходным кодом, написанный на Scala.
- Apache Tapestry — платформа веб-приложений с открытым исходным кодом.
- Symfony — платформа веб-приложений PHP для приложений MVC.
- Laravel — платформа веб-приложений с открытым исходным кодом, написанная на PHP.
- Phalcon PHP —
- Catalyst — платформа веб-приложений с открытым исходным кодом.
- Mojolicious — бесплатная веб-платформа для Perl
- Динамические данные ASP.NET
- Ruby on Rails — серверная платформа веб-приложений с открытым исходным кодом.
- Yii — фреймворк веб-приложений
- CodeIgniter — бесплатная веб-платформа для разработки программного обеспечения с открытым исходным кодом.
- CakePHP — веб-фреймворк с открытым исходным кодом на PHP.
- МоноРейл
- FuelPHP — платформа веб-приложений с открытым исходным кодом.
- Django (веб-фреймворк) – веб-фреймворк Python
- Платформа OutSystems (PaaS) – Компания-разработчик программного обеспечения
- Yeoman - стек клиентской разработки с открытым исходным кодом для создания веб-приложений.
Ссылки
[ редактировать ]Внешние ссылки
[ редактировать ]- Быстрое начало работы с помощью строительных лесов , Справочник по методам построения лесов (с сайта Rubyonrails.org)
- Rails Scaffolder's Toolbox — графический интерфейс для генераторов Rails Scaffolder (приложение только для Mac, из Mac App Store)