Beetl は中国でますます人気が高まっており、コミュニティ Web サイトには毎日数千のアクセスがあり、ダウンロード数は 1 日あたり約 20 にとどまっています (Maven は数えられません)。 QQグループが満員になる前に、すでに非活動的なメンバーや価値観が合わない少数の人々を次から次へと追い出していた(この記事はアリ月餅事件が盛り上がっていたときに書かれたものである)。彼の名声が高まるにつれて、彼の否定的なコメントも増えました。否定的なコメントのいくつかの誤解をリストしました
Beetlにはドキュメントがありません
beetlのチュートリアルとドキュメントを検索すると、基本的にbeetlの公式Webサイトのドキュメントと、作者が書いた少数のbeetlの使用説明書しか見つからないことがわかります。ビートルユーザーが少ないことが原因とは考えられません。これは、beetl の公式 Web サイトのドキュメントがよく書かれており、コミュニティがさまざまなデモや質問に対するタイムリーな回答を提供していることを示しています。 JSP と比較すると、Freemaker にはループの使用方法に関する無数の記事があり、無数の作成者がこれらの単純な概念を説明する記事を書くために精力的に取り組んでいます。 Beetl にはそのような記事はおろかビデオすらありません。 Beetl の構文は JS に基づいており、元々は中国人によって開発されました。ドキュメントやコミュニケーションに困難はありません
Beetl は、JSP に似た非常に醜い <%%> を使用します。
これも誤解です。実際、beetl の区切り文字では、PHP のような >、HTML のようなコメント 、または単純な @ や Reply などの記号を使用できます。以下に示すように、車の改行記号をペアにします。
@ for(u in userList){ <span>${uLP.index}: ${u.name}</span>@}
Beetl の構文は Java に似ています
Beetl の構文は JavaScript を参照しているため、形式的には Java のように見えます。これが Beetl の学習曲線が低い理由です。ただし、テンプレート言語としての Beetl は出力に特別に使用されており、Java ベースの JSP よりもはるかに優れています。たとえば、上記のコードでは、uLP は現在のインデックス、奇数、およびを取得できます。偶数行やその他の情報を追加する必要があるのは、ループ変数の後にのみ、テンプレート出力に使用される LP を追加するだけです。さらに、beetl は elsefor をサポートしています。上記のコードはループ本体に入らないため、説明に elsefor を使用できます
@for(){ @}elsefor{ <span> 无记录 </span> @}
Beetl テンプレート言語には、テンプレート用にカスタマイズされた次の機能があります:
三項式の省略
安全な出力
select - case構文
htmlタグ
フォーマットされた出力
Javaメソッドまたは属性を直接呼び出す
様々なレイアウト関数
テンプレート変数
厳密なMVC制御
これらの構文はテンプレート固有の構文であり、Javaと完全に同じです
私はスクリプト化されたテンプレート言語よりも命令型言語を好みます。
命令が少ないため、Velocity のような命令型テンプレート構文を好む人もいます。しかし、複雑なロジックのレンダリングを扱う場合、多くの場合、より見苦しく、作成が困難になるという欠点もあります。 beetl はスクリプトベースのテンプレート エンジンです。多くの構文がありますが、JS に基づいているため、複雑なレンダリング ロジックを簡単に扱うことができます。 命令型テンプレート エンジンの helloworld の例に騙されないでください。見た目はクールですが、プロジェクトで使用すると、結局はスクリプトと同じになります。
テンプレートのパフォーマンスは重要ではありません
テンプレート エンジンを最適化する代わりに、データベース アクセスなどを最適化することを最初に検討する方が良いという意見も見たことがあります。 Beetl のパフォーマンスは、freemaker の 6 倍、JSP の 2 倍です (JSP の 3 倍のサードパーティ テストもあります)。 JSP の使用が多すぎることが原因である可能性があります。JSTL が原因で、テンプレート エンジンには CPU の計算と IO 出力が含まれており、これは実際には Web アプリケーションの比較的リソースを消費する部分です。この消費量を削減できれば、システムのパフォーマンス向上に効果があると思います。データベースへのアクセスが適切に最適化されており、ビジネス コードが完全に記述されている場合は、より優れたパフォーマンスのテンプレート エンジンを使用してはいかがでしょうか? Beetl は、すでに非常に優れたパフォーマンスを実現するために追加の操作を行う必要はありません。
バックエンドのテンプレート エンジンはもう重要ではありません
これは事実です。現在、Beetl は beetljs を開発しましたが、そのサイズが巨大であるため、これらの 7K や 8K テンプレート エンジンに比べて非常に高価なので、私はアクションを起こさなかったので、起動しませんでした。後からサイズを最適化し、文法機能を削減してから、適切な起動時期を選択するしかありません。
このような傾向であっても、バックエンドテンプレートエンジンにはまだ利点があり、現時点でも非常に重要であると私は考えています:
バックエンドテンプレートエンジンの機能、保守性などは、バックエンドテンプレートエンジンよりもはるかに強力ですフロントエンド テンプレート エンジン
バックエンド テンプレート エンジンはバックエンドに配置されているため、バックエンド データを簡単に取得できますが、フロントエンド テンプレート エンジンはすべてのデータを準備する必要があります
バックエンドテンプレート エンジンには幅広い用途があります。コード生成、静的ページ生成、電子メールやテキスト メッセージの送信などのバックエンド テンプレート機能もあります。
ほとんどの企業では、フロントエンドの人材が不足しています。フロントエンドのテンプレート エンジンを使用すると、より多くの人がフロントエンドに集中するようになります。会社がこの変更に対応する準備が整う前に、フロントエンド シミュレーション エンジンの使用をできる限り少なくするようにしてください
開発効率の観点から見ると、バックエンド テンプレート エンジンは長年にわたって普及しているため、バックエンド テンプレート エンジンの方が効率的であるはずです。フロントエンドテンプレートエンジン
バックエンドテンプレートエンジンはSEO最適化に適しており、フロントエンドテンプレートエンジンは難しい
バックエンドテンプレートエンジンにはレイアウト機能があります
正しい使い方だと思います現在、テンプレート エンジンはフロントエンド + バックエンドを併用しています。もちろん、フロントエンドのテンプレート エンジンもバックエンドのシミュレーション エンジン機能から学習しており、ますます完成度が高くなります。それが Web アプリケーションを本当に支配する日が来るでしょう。さらに、アーキテクチャ指向のサービス、モバイル端末の普及、フロントエンドのシミュレーションエンジンの重要性はますます高まっています