A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 言語非依存 | Scala | Scala+Akka | Java | Go | Go/GAM | Go/Event Horizon | Erlang | Elixir | Node.js | Ruby/Rails | ||||||||||||||||||
2 | 性能 | C10K問題 | Promise/Future + ForkJoinPool + NIO | akka-actor + akka-io | Future+ForkJoinPool+NIO, akkaも使えなくない | CSP | Actor model | EventLoop model | |||||||||||||||||||||
3 | DDD | レイヤー化アーキテクチャ | パッケージなどで対応可能。各レイヤーをサブプロジェクト化し依存関係を強制することも可能。 | パッケージなどで対応可能。各レイヤーをサブプロジェクト化し依存関係を強制することも可能。 | パッケージなどで対応可能。各レイヤーをサブプロジェクト化し依存関係を強制することも可能。 | ||||||||||||||||||||||||
4 | エンティティの実装 | 不変なIDだけで識別するtraitを作ってミックスインする。 | 不変なIDだけで識別するtraitを作ってミックスインする。 | 不変なIDだけで識別する抽象クラスを作って継承する。 | |||||||||||||||||||||||||
5 | 値オブジェクトの実装 | case classでよい | case classでよい | Immutableなクラスとして実装する。 | |||||||||||||||||||||||||
6 | ドメインサービスの実装 | ドメインモデルを使った手続きを関数もしくはメソッドで記述する。 | プロセスマネージャをActorで実装もしくはFSMでよい | ドメインモデルを使った手続きをメソッドとして記述する。 | |||||||||||||||||||||||||
7 | 集約の実装 | エンティティと同一視する | PersistentActorで実装 | エンティティと同一視する | |||||||||||||||||||||||||
8 | ファクトリの実装 | ほとんどのケースでコンパニオンオブジェクトのapplyでよい | ほとんどのケースでコンパニオンオブジェクトのapplyでよい | 必要があればファクトリクラスを別途実装する。生成処理がシンプルならほとんどがコンストラクタがファクトリの代わりとなる。 | |||||||||||||||||||||||||
9 | リポジトリの実装 | 自前で実装する | akka-persistenceを使うの不要になる | 自前で実装する | |||||||||||||||||||||||||
10 | CQRS | ||||||||||||||||||||||||||||
11 | EventSourcing | ドメインイベントの永続化機構 | 自前 or EventStore | akka-persistence | 自前 or EventStore or Axon? | ||||||||||||||||||||||||
12 | 集約スナップショットのサポート | 自前 or EventStore | akka-persistence | 自前 or EventStore or Axon? | |||||||||||||||||||||||||
13 | ドメインイベントの読み込み(イベントデータポンプ) | 自前 or EventStore | akka-persistence-query | 自前 or EventStore or Axon? | |||||||||||||||||||||||||
14 | hot code loading | 無停止デプロイで、接続を切らずに即応性を保てるか | VMレベルでサポート | VMレベルでサポート | |||||||||||||||||||||||||
15 | ReactiveManifest対応framework | https://www.playframework.com/documentation/ja/2.3.x/Home http://akka.io/ | https://github.com/ericholiveira/studio | ||||||||||||||||||||||||||
16 | github url | https://github.com/rogeralsing/gam/blob/dev/README.md | |||||||||||||||||||||||||||
17 | なぜDDDが必要なのか? | ソフトウェアの目的はある問題を解決をすること。DDDではその問題をドメインモデルとして表現し、ソフトウェアの構造として反映する。そして、そのドメインモデルが駆動することによって問題を解決するというのが第一義的な目的となる。 | |||||||||||||||||||||||||||
18 | なぜ適材適所を調べているのか? | 表現力を取るか、可読性を取るか、安定性取るか、書きやすさを取るか、メンテナンス性を取るか、性能や速さを取るか、などはトレードオフがあるので、サービスにあった問題を解決するために設計された適材適所な言語をそれぞれ選択するのが、楽だし、苦手な言語は苦労するから | |||||||||||||||||||||||||||
19 | |||||||||||||||||||||||||||||
20 | |||||||||||||||||||||||||||||
21 | |||||||||||||||||||||||||||||
22 | |||||||||||||||||||||||||||||
23 | |||||||||||||||||||||||||||||
24 | |||||||||||||||||||||||||||||
25 | |||||||||||||||||||||||||||||
26 | |||||||||||||||||||||||||||||
27 | |||||||||||||||||||||||||||||
28 | |||||||||||||||||||||||||||||
29 | |||||||||||||||||||||||||||||
30 | |||||||||||||||||||||||||||||
31 | |||||||||||||||||||||||||||||
32 | |||||||||||||||||||||||||||||
33 | |||||||||||||||||||||||||||||
34 | |||||||||||||||||||||||||||||
35 | |||||||||||||||||||||||||||||
36 | |||||||||||||||||||||||||||||
37 | |||||||||||||||||||||||||||||
38 | |||||||||||||||||||||||||||||
39 | |||||||||||||||||||||||||||||
40 | |||||||||||||||||||||||||||||
41 | |||||||||||||||||||||||||||||
42 | |||||||||||||||||||||||||||||
43 | |||||||||||||||||||||||||||||
44 | |||||||||||||||||||||||||||||
45 | |||||||||||||||||||||||||||||
46 | |||||||||||||||||||||||||||||
47 | |||||||||||||||||||||||||||||
48 | |||||||||||||||||||||||||||||
49 | |||||||||||||||||||||||||||||
50 | |||||||||||||||||||||||||||||
51 | |||||||||||||||||||||||||||||
52 | |||||||||||||||||||||||||||||
53 | |||||||||||||||||||||||||||||
54 | |||||||||||||||||||||||||||||
55 | |||||||||||||||||||||||||||||
56 | |||||||||||||||||||||||||||||
57 | |||||||||||||||||||||||||||||
58 | |||||||||||||||||||||||||||||
59 | |||||||||||||||||||||||||||||
60 | |||||||||||||||||||||||||||||
61 | |||||||||||||||||||||||||||||
62 | |||||||||||||||||||||||||||||
63 | |||||||||||||||||||||||||||||
64 | |||||||||||||||||||||||||||||
65 | |||||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||||
67 | |||||||||||||||||||||||||||||
68 | |||||||||||||||||||||||||||||
69 | |||||||||||||||||||||||||||||
70 | |||||||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||||
72 | |||||||||||||||||||||||||||||
73 | |||||||||||||||||||||||||||||
74 | |||||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||||
76 | |||||||||||||||||||||||||||||
77 | |||||||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||||
79 | |||||||||||||||||||||||||||||
80 | |||||||||||||||||||||||||||||
81 | |||||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||||
83 | |||||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||||
87 | |||||||||||||||||||||||||||||
88 | |||||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||||
90 | |||||||||||||||||||||||||||||
91 | |||||||||||||||||||||||||||||
92 | |||||||||||||||||||||||||||||
93 | |||||||||||||||||||||||||||||
94 | |||||||||||||||||||||||||||||
95 | |||||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||||
100 |