コンピューティングで使用されるスキャフォールディングは、次の 2 つの手法のいずれかを指します。
- コード生成:
これは、一部のモデル・ビュー・コントローラ フレームワークにおけるデータベース アクセスに関連するテクニックです。
- プロジェクト生成:
さまざまなプログラミングツールでサポートされている技術です。
コード生成
スキャフォールディングは、一部のモデル・ビュー・コントローラ フレームワークでサポートされている手法で、プログラマはアプリケーション データベースの使用方法を指定できます。コンパイラまたはフレームワークは、この仕様と定義済みのコード テンプレートを使用して、アプリケーションがデータベース エントリの作成、読み取り、更新、削除に使用できる最終的なコードを生成します。これにより、テンプレートは、より強力なアプリケーションを構築するための「スキャフォールディング」として効果的に扱われます。
スキャフォールディングは、Oracle の CASE ジェネレーターや他の多くの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 Dynamic Data、KumbiaPHP、ASP.NET MVCフレームワークのメタデータ テンプレート ヘルパーなど、他のソフトウェア フレームワークにも採用されています。
実行時と設計時のスキャフォールディング
スキャフォールディングは、プログラム ライフサイクルの 2 つの異なるフェーズ、つまり設計時と実行時に行われます。設計時のスキャフォールディングでは、後でプログラマが変更してアプリケーション データベースの使用方法をカスタマイズできるコード ファイルが生成されます。ただし、大規模なアプリケーションの場合、生成されるファイルの数が膨大であること、およびファイルの設計が元のテンプレートから生成またはコピーされたときにほぼ固定されているという事実により、このアプローチを維持するのは困難です。一方、実行時のスキャフォールディングでは、オンザフライでコードが生成されます。これにより、テンプレートの設計変更がアプリケーション全体に即座に反映されます。ただし、実行時のスキャフォールディングの場合、テンプレートの設計変更はより困難または非現実的になる可能性があります。
Ruby on Rails のスキャフォールディング
行がコントローラに追加されると、Rails は実行時に適切なデータ インターフェイスをすべて自動的に生成します。API はオンザフライで生成されるため、プログラマーはこのように生成されたインターフェイスを簡単に変更することはできません。このような単純なスキャフォールドは、アプリケーションのプロトタイプ作成やデータベースへのテスト データの入力によく使用されます。
scaffold :model_name
プログラマーは、外部コマンドを実行して、スキャフォールディング用の Ruby コードを事前に生成することもできます。スクリプトは、アプリケーションがデータベースと対話するために使用できる Ruby コードのファイルを生成します。これは、動的なスキャフォールディングよりも多少不便ですが、プログラマーは生成された API を変更およびカスタマイズできる柔軟性が得られます。
rails generate scaffold model_namegenerate
注意: Rails 2.0 以降では、動的スキャフォールディングは保存されなくなりました。
サーバーサイドとクライアントサイドのスキャフォールディング
アプリケーション データベースに基づくスキャフォールディング テクニックには、通常、サーバー側フレームワークが関係します。サーバー側 Web フレームワークは、通常、データベース エントリに対して直接操作を実行し、これらの操作のコード生成は、サーバー側スキャフォールディングと見なされます。一方、クライアント側開発では、データベースに直接アクセスするのではなく、データ転送操作を実行するフレームワークがよく使用されます。したがって、クライアント側スキャフォールディングの焦点は、データベースにアクセスするためのコードを生成することではなく、アプリケーション全体のスターター テンプレートを生成することにあります。
Meteorなどの一部のクライアントサイド Web フレームワークでは、クライアントがサーバーサイド フレームワークと同様の方法でデータベース操作を実行できます。この場合、スキャフォールディング技術は、単にスターター テンプレートを生成する以上のことができます。クライアント側で Web フォームのランタイムスキャフォールディングを実行し、データベース エントリの作成、読み取り、更新、削除を行うことができます。この 1 つの例は、 Meteorのアドオンである aldeed:autoform によって提供されています。[1]
プロジェクト生成
複雑なソフトウェア プロジェクトでは、多くの場合、プロジェクト構造と要件に関して特定の規則が共通しています。たとえば、ソース コード、バイナリ、コード テスト用の個別のフォルダーや、ライセンス契約、リリース ノート、連絡先情報を含むファイルが存在することがよくあります。これらの規則に従ったプロジェクトの作成を簡素化するために、「スキャフォールディング」ツールを使用すると、各プロジェクトの開始時に規則を自動的に生成できます。このようなツールには、Yeoman、Cargo、Ritchie CLIなどがあります。.NETプロジェクトの場合、dotnet.NET SDK に含まれるコマンド ライン ツールであるを使用して、新しいプロジェクトのスキャフォールディングを行うことができます。
参照
- Spring Roo – オープンソースソフトウェアツール
- Play Framework – Scala で書かれたオープンソースの Web フレームワーク
- Apache Tapestry – オープンソースのウェブアプリケーションフレームワーク
- Symfony – MVC アプリケーション用の PHP Web アプリケーション フレームワーク
- Laravel – PHP オープンソース Web アプリケーション フレームワーク
- Phalcon PHP – PHP オープンソース Web フレームワーク
- Catalyst – オープンソースのウェブアプリケーションフレームワーク
- Mojolicious – Perl 用の無料 Web フレームワーク
- ASP.NET 動的データ
- Ruby on Rails – サーバーサイドのオープンソース Web アプリケーション フレームワーク
- Yii – Web アプリケーション フレームワーク
- CodeIgniter – 無料のオープンソースソフトウェア開発ウェブフレームワーク
- CakePHP – PHP のオープンソース Web フレームワーク
- モノレール
- FuelPHP – オープンソースのウェブアプリケーションフレームワーク
- Django (ウェブフレームワーク) – Python ウェブフレームワーク
- OutSystems Platform (PaaS) – ソフトウェア会社
- Yeoman – Web アプリケーションを構築するためのオープンソースのクライアント側開発スタック
参考文献
- ^ 「JavaScript パッケージ、Meteor リソース、ツールの信頼できるソース | Atmosphere」。
外部リンク
- Scaffolding で素早く起動して実行する、Scaffolding メソッド リファレンス (rubyonrails.org より)
- Rails Scaffolder のツールボックス - Rails Scaffolder ジェネレーターの GUI (Mac 専用アプリケーション、Mac App Store から)
