私はゼロからコードジェネレータープロジェクトに取り組んでいますが、私はホイールを再発明しているのではないかと感じています。
コード生成のためのいくつかのベストプラクティスガイドラインまたはデザインパターンをどこで見つけられるか誰かが知っていますか?
適切なコード生成についてはまだ多くの議論があるため、実際のベストプラクティスを見つけるのは困難です。どのレベルの抽象化をモデル化しますか、モデルは何ですか、グラフィカルまたはテキストモデル、内部または外部DSLを使用して、コード生成をどのレベルで使用したいですか(単純な開発者のヘルプから完全なソフトウェアファクトリまで)
最高の本の1つが「 ドメイン固有のモデリング 」です。ただし、Microsoftの領域にいる場合は、独自のプロジェクトにマッピングするのが少し難しいかもしれません。
また、Martin Fowlerによる DSLの本 は、DSLの背後にある用語とアイデア、およびコード生成にを使用する方法についての良いアイデアを提供します。
言語ワークベンチを探している場合、- 言語ワークベンチの課題 は、そこに何があり、他の人々が何をしているかを確認するのに適した場所です。
お役に立てれば。
補足:私は "。net in .net "も読んでいます。説明されているテクノロジーは古く、単に "ハウツー"だけでも、ベストプラクティスやデザインパターンではまったく役に立ちません
25-1-2013編集:非常に役立つかもしれない新しい本がちょうどリリースされました: " DSL Engineering-Designing、Implementing and Using Domain-Specific Languages "
生成されたコードをより保守しやすくするために、 Generation Gap パターンに興味があるかもしれません。これはGoFブックに組み込まれなかった1つのパターンですが、ジョンは常に好きで、後で同じ形式で個別に説明しました。
プロジェクトによって異なります
ツールとプラクティスは、プロジェクトで具体的に何をしなければならないかによって異なります。例:ASP.NET MVCおよび.NET開発では、T4 Text Templates
。基本的には、関連するファイル(コントローラーやビューの追加など)を生成するためのモデルを構築するために、事前ビルドテンプレートとカスタムテンプレートを使用します。
素敵なブログの簡単な紹介 T4テンプレート:ASP.NET MVC開発者向けのクイックスタートガイド
ただし、別のコード生成プロセスでもT4を使用できます。