このテーマについてどう思いますか?
メタプログラミングは、多くの非生産的で非インテリジェントなコード行なしで特定の動作(ORMの実装など)を達成するのが難しいため、非動的言語に最も一般的に関連付けられています。
しかし、PHPなどのより動的な言語でさえ、コード生成は本当に命を救うことができ、大量の生産性を向上させることができます。現代のフレームワークでは、宣言する特定のビジネスオブジェクトのほとんどの一般的なモデル、フォーム、テスト、およびアクションを生成する足場が非常に一般的です。symfonyやRoRなどのフレームワークが非常に成功している理由の1つです。これらのコード生成ツールは一貫したコードを非常に迅速に作成し、プログラマの生産性を高めます。
Webサイトでは、相互作用のほとんどは4つの主なアクションを中心に展開されます。
- 要素を作成する
- 要素のセットを取得します(可能なフィルタリングを使用)
- 新しい属性で要素を更新する
- 一連の要素を削除する
少なくとも、この4つの主要なアクションを中心に展開するすべてのものは、コード生成ツールを使用して最大の生産性を達成することができます。
私の会社では、symfonyを使用しています。そのadmin-generatorは例外的なツールであり、実行時にコードを生成(およびキャッシュ)します。つまり、タスクや外部ツールを使用する必要さえありません新しいコードを生成するには、キャッシュを消去するだけです。この種のツールをCRUD操作に使用することを強くお勧めします。
しかし、symfonyの素晴らしい貢献者がしたことをするのは簡単なことではありません。私は自分でコード生成タスクをいくつか実装しましたが、ほとんど一貫性があり、ほとんどのコーナーケースをカバーする広範な実装で何かをするのは簡単ではありません。
生産性を本当に向上させるものですか?
メタプログラミングは低レベルの作業(フレームワーク、キャッシング、コンパイラなど)で非常に重要ですが、ビジネス層で作業を行う場合は細心の注意を払ってアプローチする必要があるものだと思います。
コード生成を使用することは、間違いなく主要な生産性向上になります。フレームワークを自分で構築しているのでなければ、独自のコード生成ツールを実装します。
本、ブログ、スライドショーなどのテーマに関する良いリソースは何ですか?
プログラミングを理解するのに最適なリソースは、常に優れたコメント付きのソースコードです。RubyOnRailsとSymfonyの adminジェネレーターを調べるのは良いアイデアだと思います。