Yamato DaiwaFrontend (2.0.0-beta.0)

@yamato-daiwa/es-extensions(YDEE)との結合

@yamato-daiwa/frontendと言うnpmパッケージルートディレクトリに在る Functionality.pugファイルを 含むと、@yamato-daiwa/es-extensions (略:「YDEE」)の1.7バージョンの全機能 (インターフェースタイプアリアスの様にTypeScriptJavaScriptへの変更の際存在しなく成る機能以外)が利用可能に成る。

当機能が求められる主な場合は静的プレビュー 作成の段階での簡易なデータモキング。 例えば、下記の様にデータ(意味のない文字列でも此の段階では問題が無い)に満たされている16件のカードのマークアップを早く作成できます。

此処でgetRandomStringgetRandomObjectPropertyValuegetRandomIntegerと言うYDEE関数が利用され、但しDummyImagesURIs 連想配列型定数YDFの一部。 其の結果、各カードに於いて下記の様なコードHTMLコードが生成される (imgタグに於いてsrc アトリビュートの値は空間を占めすぎない様に部分的省略)。

上記の様なYDEEの利用が予定されていなくても、YDFマークアップ 関連機能の正常稼働に必要で、例えばPug混入の引数の妥当性確認 をするのに使われています。

よく有る質問・批判への返事

批判

と言う事は、Pugコードの中にYDEEライブラリの殆どのコードが埋めてある?やりすぎなのではないか?

回答
全ての機能に就いてやまとダイワ族のライブラリに追加される機能は、実践上 需要が発生した為だと言う事です。 YDEEとの結合に関しては、需要が過去にも、現在も有ります(活用の事例が上に論述されました)。 何方かの機能の需要が今後無く成った場合、其の機能を置き換えるか、削除する場合も有ります(YDFが公開されたのは最近ですが、 数年前からYDFYDFのプロトタイプはアルファテストの利用が行われていました)。 ですが、YDEEとの結合は、実践上、需要が高いままなので、YDEEとの結合の取り除きは 予定されていません
質問

サーバ側でMVCフレームワークと同時に使用する場合、YDEEコードの存在はPugからHTMLへの変換の速度に悪影響しないのか?

回答

影響を及ぼします。 其れに実質が有る程度 (約2-3秒ですが、サーバ側でレスポンス生成する場合 許容されない時間です)。

YDEE結合は主に静的プレビュー 段階専用ですが、PugからHTMLへの変換がウェブサイト・アプリケーションの納品の 前に済まされる場合、 他の開発段階に使っても特に問題有りません。

又、MVCパータンを用いてサーバ側レンダリングを実装する段階でも、例えばPug混入の引数の妥当性確認UI・UXコンポーネント の混入を含む)が動く様に、又はページの原型 が使える様に、パフォーマンスの低下無しでYDEE結合を使用する方法を下記に示します。 方法としては専用説明書 が用意してありますが、簡単に説明すると、源Pugコードを出力HTMLコードへの2段階 変換を確保しなければいけません。 1段階目の際、中間テンプレートファイルが生成され、ファイルが データベースからのデータの様に動的データに応じて変わりません。 但し、1段階目はウェブサイト・ウェブアプリケーションのバージョンの納品(デプロイ)の 一度だけ行われます。 2段階目の際、動的データが挿入され、最終のHTMLコードが 生成されます。