回答編集履歴
1
質問文への回答を追加
answer
CHANGED
@@ -3,21 +3,28 @@
|
|
3
3
|
|
4
4
|
---
|
5
5
|
|
6
|
+
表題の件はグローバルに近い概念の共通変数を使ってどうのこうのやってるから、
|
6
|
-
|
7
|
+
これの代替はObserverパターンを使うくらいしか無い。
|
8
|
+
|
9
|
+
Redux、MobX、EventEmitterあたりが参考になるかな。
|
10
|
+
でも実態は共通のグローバル変数(連想配列)を1個作って、ここに全ての副作用を凝縮するという解決法だから表題とやってる事は一緒。
|
11
|
+
JavaScriptである以上、グローバル変数を作らずスマートに解決する方法は多分ない。
|
12
|
+
|
13
|
+
---
|
14
|
+
|
7
15
|
関数型プログラミング言語は手続き型プログラミング言語とは違って、
|
8
16
|
単純に状態変数作らなくても綺麗に設計して作れますよってだけの話。
|
9
17
|
|
10
|
-
|
18
|
+
その関数型の考え方の一つである、参照透過があるかつ副作用のない関数を作るようにしたら手続き型でもバグが少なくプログラミング出来るじゃんすげー!!…という風に密かに盛り上がってる。
|
11
|
-
|
19
|
+
constで再代入禁止ってのは関数型の考えを手続き型へ輸入してくる際の制約。
|
12
|
-
(この辺は気になったらWikipediaなんかで軽く調べてみてね)
|
13
20
|
|
14
|
-
その関数型の考え方の一つである、参照透過があるかつ副作用のない関数を作るようにしたら手続き型でもバグが少なくプログラミング出来るじゃんすげー!!…という風に密かに盛り上がってるのが現状
|
15
|
-
constで再代入禁止ってのは関数型の考えやメリットを手続き型へ輸入してくる際の制約。
|
16
|
-
|
17
21
|
参照透過で副作用のない関数を作る一貫で、constで再代入しませんよ宣言した変数を使っておくと、
|
18
22
|
後から見たエンジニアが「ああ、この関数の中身は関数型プログラミングの思想で作られているんだね、使い勝手が良いね」って思ってくれる。
|
19
23
|
これがメリット。
|
20
24
|
|
25
|
+
要するに関数型プログラミングとはなんぞやってのを勉強していかないと、
|
26
|
+
何故constを使うべきか、constを活用したコードが美しいか理解できないし説明できない。
|
27
|
+
|
21
28
|
---
|
22
29
|
|
23
30
|
[JavaScript関数型プログラミング 複雑性を抑える発想と実践法を学ぶ](https://www.amazon.co.jp/JavaScript%E9%96%A2%E6%95%B0%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E8%A4%87%E9%9B%91%E6%80%A7%E3%82%92%E6%8A%91%E3%81%88%E3%82%8B%E7%99%BA%E6%83%B3%E3%81%A8%E5%AE%9F%E8%B7%B5%E6%B3%95%E3%82%92%E5%AD%A6%E3%81%B6-impress-top-gear/dp/4295001139)という書籍がとても勉強になった。
|