前の記事へのコメントの多くの人々が、コード生成は間違った手法
であるという意見を持っているという事実に感銘を受けました。 現在どのように使用されているかの例を見てみましょう。
ワールドワイドウェブ
コード生成はインターネットで積極的に使用されています。 HTMLは現在、Webサイトに情報を提供するための標準です。 しかし、サイトに静的なHTMLページをレイアウトすると、現代の要件を満たす動的なサイトが得られないため、サイト開発者はソフトウェア(サイトエンジン)を作成します。その目的は、ユーザーのブラウザーのHTMLコードを生成することです。 この困難なタスクでプログラマを支援するシステムの例:PHP、Perl、ASP.NET、Java、RubyOnRailsなど。
さらに、サーバーテクノロジがHTMLコードを生成するだけでなく、クライアントスクリプト(特にJavaScript)でも同じことがよく行われます。
開発環境のビジュアルエディター
Microsoft Visual Basicからは、Windowsフォームのビジュアルエディターが登場しました。 ボタンをフォームに転送するだけで十分で、思いやりのあるジェネレーターがそのプロパティと場所を特別なファイルに記録します。 最初に、コードは特別なマークアップ言語(Visual Basic、Delphi)で生成されましたが、プログラマーが書いたのと同じ言語でフォームを生成し始めました。 後に、同じアプローチがWebアプリケーションのプログラミングに適用され始めました。 コードジェネレーターであるビジュアルエディターのない深刻なプログラミング環境を想像することは困難です。
Java、.NET、および同様のプラットフォーム
Javaや.NETなどのプラットフォームは、高レベルコードに基づいて低レベルコードを生成します。 .NETでは、この手法は多言語に積極的に使用されています。 多くの高水準言語は1つの低水準言語に生成されます。これは間違いなく便利です。 さらに、WWWの状況はやや似ています。多くの異なる言語がHTMLを生成します。 そして結果は似ています:クロスプラットフォーム。
MVCフレームワーク
最近、MVC(Model-View-Controller)フレームワークが非常に一般的になりました。 これらのフレームワークの統合コンポーネントは、コードジェネレータースクリプトです。 データベースに基づいてモデルを生成するスクリプトもあれば、モデルに基づいてコントローラーとビューを生成するスクリプトなどもあります。 コード生成がなければ、そのようなフレームワークでの作業はかなり日常的です。 MVCフレームワークの例:RubyOnRails、CakePHP。
LINQ
LINQ(Language Integrated Query)は、C#バージョン3で登場しました。 これはC#に非常に便利な追加機能であり、プログラマーを日常的な作業から解放します。 一般的なアプローチ(LinqToObject)は匿名メソッドとクラスの生成を使用し、LinqToSqlアプローチはMicrosoft SQL ServerのSQLコードの生成を使用します。 Oracleおよび他の多くのデータソースのLINQ実装が準備されています。 アイデアは素晴らしいです-特定のデータ型の実装は、1つの高レベル言語から生成されます。
簡単な使用例を示します。
var onlineUsers = DB.Usersのユーザー(user.LastActivity> DateTime.Now.AddMinutes(-5)orderby user.LastActivity降順の選択ユーザー。
コードスミス
CodeSmithは、プロフェッショナルなテンプレートベースのコードジェネレーターです。 作業の結果は、特定のプログラミング言語に関係していません。 たとえば、配布キットには、C#でコードを生成するためのテンプレートが含まれています。 VB.NETおよびT-SQL。 このプログラムは、無料のCode Smith Explorerと有料のCode Smith Studioの2つの部分で構成されています。 Explorerを使用してコードが生成され、Studioはカスタムテンプレートを開発するための環境です。
これらは、最初に記憶された例です。 自分でリストに追加できます。