「どのテンプレートを選択するのか?」という質問を初心者から聞くのをやめましたか? そうは思いません
確実に言える唯一のことは、特定のサークルで時々ソリューションが普及することですが、ほとんどの場合、それらはスコープの制限であり、これはプログラミング言語です。 規格の存在の利点をリストする必要はありません。 誰もが理解している、「これからすべてが良くなる」。 発明、修正、適用する-これは簡単なことではありませんが、解決することができます。
これに向かって動き始めましょう。
単一のテンプレート構文を導入するという考えは新しいものではありません。 さまざまな既存のテンプレートエンジンでわかるように、構文はプログラミング言語に依存しています。
すべての人に合った何かを解決する必要があると結論付けることができます。 かさばる構文はルート(hello、xslt)をとらないことを明確に理解しています。 しかし、ミニマリズムの現れは良くありません。 オペレーター用の短く完全な形式の録音がある場合は、すべてのユーザーに完全な形式の書き込みが機能し、狭いパーサーのサークルには短い形式の書き込みが機能すると想定できます。 つまり、簡単な構文の形式でパンを取得したいのですが、「xxx」言語のテンプレートの直接サポートを拒否する形でコインを支払う準備ができています。 さらに、この言語の輪にとって、そのようなパターンは邪魔にならないはずです。 テンプレートをYP“ xxx”に転送する場合、すべてのテンプレートをすばやく確認して、短い構文を完全なものに置き換えることができるはずです。
テンプレートエンジンを生成するには、特定の形式でデータをフィードする必要があります。 幸いなことに、ここでは、JSONとXMLのすべてが多少落ち着いています。 ただし、テンプレートの生成を開始する前にデータを準備することは常に推奨されるとは限らないことも考慮する必要があります。 テンプレートコードの実行中にデータを生成する必要がある場合があります。 さらに、一部のテンプレートエンジンは、テンプレートに挿入する前にデータを処理およびフォーマットする機能を提供します。 これも放棄すべきではありません。
テンプレートエンジンは、コンテンツの受信から発行まで、ユーザーリクエストを完全に処理できるフレームワークとは区別する必要があります。 テンプレートエンジンの開発のためのこのようなバインディング(受信、処理、発行)は冗長です。 しかし、これはそうすべきではないという意味ではなく、これらの開発者の車輪にスティックを挿入する必要があります。 それどころか、テンプレートを使用するための最も簡単なインターフェースを提供する必要があります。 ここで、サーバー部分だけを標準化する必要があるわけではないという同じメモを作成します。 同様のアプローチを適用することは、クライアント側で正しいでしょう。
テンプレートパーサーは、出力でコードのネイティブコードを提供する必要があります。 テンプレートにアクセスするたびに解析する必要はありません。 誰もがこのタスクにさまざまな方法で対処します。 誰かが無視して額を調べ、呼び出しごとに解析し、誰かがコード(評価スタイル)を生成し、一部の言語ではその場でメソッドを追加する機会があり、誰かがテンプレートを一度コンパイルして使用します。そして、おそらくもっと多くの興味深い方法があります。 それらは、開発の容易さとパフォーマンスの間で異なります。 そして、リクエストハンドラーを実行し続ける能力を使用し、リクエストからリクエストへの結果のテンプレートコードのみを使用し、各リクエストに対して誰かがハンドラーを起動し、実行可能なコードを取得するのにかかる時間の問題に敏感な人にとって良いことを望んでいます。 テンプレートをコンパイルする状況では、コンパイラを起動するために次の編集を行うのが面倒です。 テンプレートにプレビューを使用できるメカニズムが必要です。 もちろん、ここでは、テストデータの置換によってすべてが複雑になりますが、これはすべて解決されています。
信じられないほど多くの条件。
実践は、普遍的なソリューションが高度に専門化されたソリューションにしばしば負けることを示しています。 はい、そうです。 私たちの場合、この損失がいくらになるかを調べるだけです。 標準を開発した結果、各PLの実装例を入手したいと思います。 だから、すべてが悲しいとは思いません。
さまざまなテンプレートエンジンでの演算子/タグの実装例を次に示します。
Django:
{% if today_is_weekend %}
< p > Welcome to the weekend! </ p >
{% else %}
< p > Get back to work. </ p >
{% endif %}
{% for athlete in athlete_list %}
< li > {{ athlete.name }} </ li >
{% endfor %}
XSLT:
< xsl:choose >
< xsl:when test ="/some/node = 1" >
One
</ xsl:when >
< xsl:otherwise >
More.
</ xsl:otherwise >
</ xsl:choose >
< xsl:for-each select ="/nodes/*" >
Name: {./name}
</ xsl:for-each >
HTML::Template:
< TMPL_IF BOOL >
Some text that is included only if BOOL is true
< TMPL_ELSE >
Some text that is included only if BOOL is false
</ TMPL_IF >
< TMPL_LOOP NAME = EMPLOYEE_INFO >
Name: < TMPL_VAR NAME = NAME > < br >
Job: < TMPL_VAR NAME = JOB > < p >
</ TMPL_LOOP >
Smarty
{if $name eq 'Fred'}
Welcome Sir.
{else}
Welcome, whatever you are.
{/if}
{foreach key=key item=item from=$contact}
{$key}: {$item} < br >
{$key}: {$item} < br />
{/foreach}
EJS — Embedded Javascript
<% if (question) { %>
< h2 > <% = author %> : <% = question %> </ h2 >
<% } else { %>
< h2 > , ! </ h2 >
<% } %>
<% for ( var i=0; i<supplies.length; i++) { %>
< li > <% = supplies[i] %> </ li >
<% } %>
* This source code was highlighted with Source Code Highlighter .
魅惑的ですね。 もちろん、一部のテンプレートを使用している人々はすでにその機能に慣れており、
生活の中で何かを
変えることの望ましさを実際には見ていません。 誰かを説得するために何も証明したくありません 私は、すべてを取り出して実行するだけの十分なヒューズがあるとは言いません。 興味のある人を探したいです。 仕事が人々のグループで行われるとき-それは参加者をうまくやる気にさせます。
これは無限のプロセスになると言うこともできますし、誰も仕事を必要としません。 これはそうではないと思います。 1つ目は、1〜2年以内に問題をほとんど知らない人が、ほとんどの要件を満たす決定を実行できることです。 第二に、Webプログラミングをマスターする人の数に比例して、自作のテンプレートエンジンの数が増えていますが、状況は根本的に変わりません。
誰かが、利用可能なツールを使用して問題を解決する方が今日より実用的であると言うでしょう。 私はすべてが好きではないということではありません。 いいえ、非常に価値のあるインスタンスがありますが、これは一連のルールがないという問題をキャンセルしません。 今日、テンプレートエンジンの開発者は「しかし、アプローチを根本的に変えることはできますか?!」と言うでしょう。彼らは古いクラフトと互換性のない何かを思いつくでしょう。 私たちは皆、遅かれ早かれ「引退」する人間であり、私たちのビジネスを継続する人が常にいるわけではありません。 インターネットのトレンドは、私たちが年をとるよりも速く変化しているので、ここで私はおそらく大きく揺れましたが、これは上記をキャンセルしません。
はい、概して、それはまだ
水の上のすべての
スティックです 。 このタスクに関するチームの作業を編成するための構造はありませんが、これはすべて利益の問題です。
主なものについて簡単に:
関心のあるグループを形成し、主題に精通し、さまざまなプログラミング言語で特定の処理アルゴリズムを議論し、実装することができます。
欲望はありますか?
PSそれは何もうまくいかないと言う必要はありません、不必要に不合理な批判、それに何もありません、緊張しないでください。