問題タブ [cake-pattern]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
224 参照

scala - パラメータ化されたコンポーネントでscalaのケーキパターンは可能ですか?

パラメーター化されたコンポーネントは、型指定された各コンポーネントの一意のコンポーネントにのみ関心がある限り、ケーキ パターンでうまく機能します。例:

現在、私のアプリケーションでは、A[Int] と A[String] を注入する必要があります。明らかに、scala の型システムでは、AComponent を 2 回拡張することはできません。この状況での一般的な方法は何ですか?

0 投票する
3 に答える
270 参照

scala - Cake パターン、自己: UserRepositoryComponent =>

ケーキのパターンを理解しようとしています。

この要点を見つけました: https://gist.github.com/2127745

しかし、私はこの構文を理解していません:

誰か説明してくれませんか?

0 投票する
2 に答える
195 参照

scala - Play2でコンパニオンを使用する場合のScalaでの統合テスト?->ケーキのパターン?

私は最初のScalaアプリケーションに取り組んでおり、ActiveRecordスタイルを使用してMongoDBからデータを取得しています。

UserやCategoryのようなモデルがあり、それらはすべて、トレイトを使用するコンパニオンオブジェクトを持っています。

ModelCompanionは、一般的なMongoDBクラッド操作を提供するSalatクラスです。これにより、次のようなデータを取得できます。


私はこのActiveRecordクエリスタイルの経験がありませんでした。しかし、私はRailsの人々がそれを使用していることを知っています。そして、JPAを扱うためにPlayドキュメント(バージョン1.2?)でそれを見たと思います。

今のところ正常に動作しますが、MongoDBで統合テストを実行できるようにしたいと思います。「埋め込まれた」MongoDBをライブラリで実行できます。MongoModel重要なのは、私のホスト/ポート構成が、すべてのモデルコンパニオンによって拡張されたクラスに実際にハードコーディングされていることです。

統合テスト(または将来作成できるその他の「プロファイル」)を実行するときに、別のホスト/ポートを指定できるようにしたい。


私は、Javaで長年Springを使用している依存性注入と、私のアプリケーションにおけるこれらすべての静的なものの欠点をよく理解しています。Springアプリケーションを構成するためのScalaに適した方法があることを知りましたが、ScalaでSpringを使用することが適切かどうかはわかりません。

Cakeパターンについていくつか読んだことがありますが、これは、タイプセーフでコンパイル時にチェックされるSpringコンテキストのようなものであり、私が望むことを実行しているようです。私は間違いなくケーキパターンに行くべきですか、それともScalaに他のエレガントな選択肢がありますか?ActiveRecordスタイルを使い続けることはできますか、それともテスト容易性のための完全なアンチパターンですか?

ありがとう

0 投票する
1 に答える
298 参照

scala - グローバル Cake パターン アプリケーションのリポジトリのみを置き換える

初めてケーキ柄を使ってみました。

それがどのように機能するかはある程度理解していますが、すでに混合されている特性などを混合することが可能かどうかを知りたい.

私が望むのは、ケーキ パターンを使用してグローバル アプリケーションを構築することです。そして、リポジトリレベルを除いて同じアプリケーションの別のバージョンが必要です。

次のようなことは可能ですか:

つまり、偽のリポジトリを使用して偽のアプリケーションを構築するときに、既に構築されたアプリケーションを再利用するということですか?

0 投票する
5 に答える
5205 参照

java - Java8 での Cake パターンは可能ですか?

Java 8 と、インターフェイスに実装を追加する可能性 (Scala の特性に少し似ています) を使用すると、Scala でできるようにケーキパターンを実装することが可能になりますか?

もしそうなら、誰かがコードスニペットを提供できますか?

0 投票する
1 に答える
634 参照

scala - Cake パターン: 実装ごとに 1 つのコンポーネントか、それとも特性ごとに 1 つのコンポーネントか?

現在、アプリケーションでケーキ パターンを使用する作業を行っています。

私がウェブ上で見つけた例では、例は一種の基本的なものですが、より複雑なニーズは含まれていません。私がやりたいことはそれほど派手ではありません。異なる実装を使用して、同じタイプの 2 つのサービスをケーキ パターン アプリケーション内に配置したいと考えています。

一度に の 1 つの実装を使用すると問題なく動作UserServiceしますが、同時に両方の実装が必要な場合は、その方法がよくわかりません。

2 つの異なるコンポーネントを作成する必要がありますか? それぞれが異なる userService 値の名前を公開していますか? (defaultUserService/alternativeUserService)。userService私のアプリケーションには2つの異なる実装があるため、両方の実装に1つのコンポーネントを使用すると、名前を使用するときにどの実装が使用されているかを他のコンポーネントがどのように知ることができるかわかりません。

ところで、コンポーネントは への依存関係を表すUserRepositoryComponentため、すべての実装で必要というわけではありませんが、コンポーネントが 1 つしかないのは少しおかしいと思いますよね? 両方の実装を必要とする完全なアプリケーションを構築したくないと想像してください。ただし、テストのために、必要のない AlternativeUserService のみを構築する必要がUserRepositoryComponentあります。使用済み。

何をすべきか分かるように、誰かアドバイスをくれませんか?

関連する質問の種類: ケーキパターン:コンポーネントによって提供されるタイプ UserService のすべてのオブジェクトを取得する方法

ありがとう

0 投票する
1 に答える
284 参照

scala - ケーキパターン:コンポーネントによって提供されるUserServiceタイプのすべてのオブジェクトを取得する方法

この質問は、私のニーズを理解するのに役立つかもしれません。 ケーキパターン:実装ごとに1つのコンポーネント、または特性ごとに1つのコンポーネント?

コンポーネントによって提供される複数のUserService実装を使用するScalaアプリケーションがあります。

別のコンポーネントにアプリケーションを「スキャン」して、トレイトUserServiceを実装するオブジェクトを提供するすべてのコンポーネントのセットを取得できるようにする方法があるのでしょうか。ケーキビルドアプリケーションによって提供されるすべてのUserServiceインターフェイスを反復処理できるようにするには?

依存関係に従ってUserServiceのリストを作成するコンポーネントを作成できると思いますが、ハードコードされた依存関係がなくても、このコンポーネントでリストを作成することはできますか?

0 投票する
2 に答える
986 参照

scala - Play2.1に移行した後のルートのコンパイルに関する問題

Play-2.1に移行した後、routesコンパイラがroutesファイルに対して機能しなくなるという問題に悩まされました。Play-2.0.4では完全に問題ありませんでしたが、ビルドエラーが発生し、回避策が見つかりません。

私のプロジェクトではケーキパターンを使用しているので、コントローラーのアクションは<package>.<controller class>.<action>、ではなく、を介して表示され<package>.<component registry>.<controller instance>.<action>ます。新しいPlayルートコンパイラは、最後の2つを除くすべてのアクションパスコンポーネントを使用して、マネージドソースで使用されるパッケージ名を形成します( https://github.com/playframework/Play20/blob/2.1でコードを取得できる限り).0 / フレームワーク/src/routes-compiler/src/main/scala/play/router/RoutesCompiler.scala)。私の場合、パッケージ名としてが選択された場合に状況<package>.<component registry>が発生し、ビルド中にエラーが発生します。

この問題を実証するためにサンプルプロジェクトを作成しました:https ://github.com/rmihael/play-2.1-routes-problem

コントローラのケーキパターンを落とさずに、この問題をなんとかして回避することは可能ですか?この問題のためにPlay2.1を続行できないのは残念です。