話し合うこと

1. Crowi のモデルの理解

  • Activity
  • Notification
  • Watcher

最初は丸パクリしようとしていたが、変更した方が良さそう

  • Event とModelで完結している

    • モデル間で依存しまくっているので良くない
  • Service間は依存を許す

    • ActivityService, NotificationService は他から依存されてもよい

変更しなくても良い部分

  • 1 Activity につき複数 Notificationが作られる

2. GROWI での要求の把握

  • Activity のデータを管理画面から閲覧できるようにしたい(audit log として利用)

  • Bookmark

    • Bookmark / Favourite をONにしたら自動的にSubscribeされるようにする

3. 最終進化形の要件定義

  • Activity は一定期間が過ぎたら消えるようにしたい
  • InAppNotification の「持続タイプ」の話
    • Export Markdown Job 用
      • エキスポートしている最中 -> 通知一覧の中にloadingのアイコンを表示する
      • エキスポートが完了 -> loadingのアイコンが消えて、完了しましたステータスになる

詳細設計メモ

  • EventEmitter で emit するイベント型を作る
    • ActivityEvent<T>(仮) は、T型の付属情報を持つ
  • 上記に対して、CommentAdapter extends ActivityAdapter を作る(processor 的なイメージ)
    • ActivityEvent<T> を処理して InAppNotification を作ったりいろいろやる
  • getNotificationTargetUsers は InAppNotificationService に移動

4. マイルストーン定義

  • Comment と ページ更新を同時に進める
  • Activityの削除はしなくて良い