Skip to content

Instantly share code, notes, and snippets.

@ykst
Created January 28, 2015 14:56
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ykst/8bcefdd86e23b660cdf7 to your computer and use it in GitHub Desktop.
Save ykst/8bcefdd86e23b660cdf7 to your computer and use it in GitHub Desktop.
イベント駆動アーキテクチャ心得集

#イベント駆動アーキテクチャ心得集

  • イベントを設計するのではなく、責任分界点を設計せよ

  • 命令形ではなく過去形を使用せよ

  • ディスパッチャーはリスナーの存在を想定してはならない

  • ディスパッチャーはリスナーの数を想定してはならない

  • 全てのイベントをブロードキャストせよ

  • イベントチャネルは特定の実装を想定してはならない

  • ペイロードはプロトコルではない

  • 状態を問い合わせるのではなく変更を通知せよ

  • コールスタックが適する場合はコールスタックを使用せよ

  • ペイロードには値オブジェクトのみを使用せよ

  • ペイロードは少なければ少ない程良い

  • 解放を待つのではなく解放イベントで駆動せよ

  • リスナーはイベントを再発行してはならない

  • イベントチャネルは少なければ少ない程良い

  • シングルスレッドで回しマルチコアでスケールさせよ

  • リソースの排他はロックフリーにせよ

  • ポーリングをイベントにせよ

  • アイドル状態を実装せよ

  • 可視化ツールとDSLが無ければデバッグは困難になると心得よ

  • 可能な限りイベントログによるリプレイを実装せよ

  • EDAはアーキテクチャにとっての夢であり、実装者にとっての悪夢である

  • Programming Without a Call Stackを読もう

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment