2017-08-08 1 views
0

私は、HTMLフィードが認証された後に擦ってしまうアプリケーションを開発しています。これらのWebサイトは電子メール/パスワード認証のみをサポートしていますが、一部の統合では追加情報が必要な場合があります。ですから、ドメインイベントや集約を作成する際には、私の質問は具体的なものになりますか?私はProophと協力して、単一のエンティティタイプのみを処理する単純な集約とドメインイベントを作成しました。しかし、今では、集約とドメインのイベントがこれらのサードパーティのウェブサイトのスクレイパーに固有であるべきかどうかは疑問です。フィードスクレーパーごとにイベントがあるか、一般的なイベントを作成してより良い集約をしていますか?各集約のプロパティは異なる場合があります。その後集計、ProofのDomainEvent

class WebsiteA extends AggregateRoot 
{ 
    private $id; 

    private $email; 

    private $password; 

    public static function initiate($id, $email, $password) 
    {...} 
} 

class WebsiteB extends AggregateRoot 
{ 
    private $id; 

    private $email; 

    private $password; 

    private $accountIds = []; 

    private $userSalt; 

    public static function initiate($id, $email, $password, $accountIds, $userSalt) 
    {...} 
} 

ドメインイベント

class WebsiteAWasInitiated extends AggregateChanged 
{ 
    public static function withUser($id, $email, $password){} 
} 

class WebsiteBWasInitiated extends AggregateChanged 
{ 
    public static function withUser($id, $email, $password, $accountIds, $userSalt){} 
} 

それとも単一の集約とドメインイベントを作成する方が良いでしょうのための似たような?どちらのウェブサイトでも使用します。サポートされているウェブサイトのリストが増加することを覚えておいてください。

class WebsiteScraper extends AggregateRoot 
{ 
    private $id; 

    private $credentials; 

    public static function initiate($id, $credentials) 
    {...} 
} 

class WebsiteScraperWasInitiated extends AggregateChanged 
{ 
    public static function withUser($id, $credentials){} 
} 

答えて

0

これはDDD関連の問題です。答えは「それは依存している」です。スクレイパーの量が増えて、1つ1つのコードにコードを追加することはできませんか?次に、一般的なスクレーパーアグリゲートを使用しようとします。スクレーパーの量が限られている場合は、スクレーパーごとにカスタムスクラップを使用できます。