-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
チャンネル取得機能のテストの実装 #61
チャンネル取得機能のテストの実装 #61
Conversation
backend/src/models/channel.rs
Outdated
pub id: String, | ||
pub name: String, | ||
// User型を実装したら書き換える | ||
pub owner: String, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ownerみたいな別のモデルを参照するやつは多分ComplexObject使うことになるのでいらないはず
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ComplexObject、詳しく見てないんでわからないんですけど、自分のフィールドを見て新しいフィールドを擬似的に作成してるものじゃないですか?使い方違うような気がする???
impl MyObj {
async fn c(&self) -> i32 {
self.a + self.b
}```
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ComplexObjectの認識は合ってると思う。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
色々考えてどっちでもいい感ありそうだなってなっている。
- ComplexObjectを使わない
- 常にDBのjoinを使って対象となるownerの情報も取ることになる
- 実装はシンプルだけどチャンネルの情報だけ欲しい場合には勿体無い
- ComplexObjectを使う
- ownerの情報が必要な時だけ計算される
- おそらくself.idをもとにチャンネルテーブルに再検索をかけるので、必要となった時の計算は増える
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
俺の認識としてはComplexObjectはここのトレードオフのための仕組みだと思ってる。間違っていたらすまん。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
この程度のものに関してはComplexObjectは使わないで、本当に重い処理(例えば検索付きのフィールドとか)に関してComplexObjectで切り分けるとかになるのかな?
backend/src/usecase/channel.rs
Outdated
assert_eq!(result, "aaa".to_string()) | ||
} | ||
|
||
// append_query_resultsに3要素のタプルを渡すための拡張 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここを追加することでappend_query_resultsに3要素のタプルを渡すことができる。
書く場所がわからなかったのでとりあえずテストの中に書いてる
b5316e4
to
58c5b42
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
よさげ
とりあえずテスト書いてみました
要修正
テストの”チャンネルオーナーを取得する”、”チャンネルに参加しているユーザーの一覧を取得する”、”全てのメッセージを取得する”は、User型、Message型を作成した後修正する必要がある。