Skip to content

UserName 型の意味合いを変更する #54

@wasabi-eater

Description

@wasabi-eater

現状の UserName 型はユニークで、かつ存在するユーザー名を表すオブジェクトという感じの意味合いになっているように思える。だから、以下のように UserName::new validate_user_name 内でしか呼び出してはいけないというルールになっている。

impl UserName {
    pub fn as_str(&self) -> &str {
        &self.inner
    }
    /// UserNameを新しく作成する
    /// 必ず一意の名前を指定する必要があります
    /// UserRepositoryのvalidate_user_nameメソッドのみで使用されます
    pub fn new(name: String) -> Self {
        UserName { inner: name }
    }
}

でも、ユーザーがユニークなユーザー名を持つ必要はあっても、 UserName がユニークである必要はないし、簡単に Clone 出来るので、 UserName がユニークであるという保証は出来ない。

以上のように UserName は「ユニークでである」というルールは実現が難しそうだし、そもそも実現する必要はない気がするので廃止を提案する。

それに伴い

  • UserName::newvalidate_user_name からしか呼び出してはならないというルールの廃止
  • UserRepository::validiate_user_name の廃止

を行う

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions