teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

[解決策2] コードで説明する

2019/04/24 12:35

投稿

think49
think49

スコア18194

answer CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  最終的なゴールを「読んだ人がその概念を理解し、有識者の説明、プログラミングの書籍、技術情報サイト...etc、でその概念を正しく読みとる事」に設定するとして、一つの用語に拘るのはリスクが高いと考えます。
10
10
 
11
- ### 解決策
11
+ ### [解決策1] 外部サイトで全てを説明する
12
12
 
13
13
  結局のところ、「全て」を説明するのが最もリスクが低いと考えます。
14
14
 
@@ -25,6 +25,46 @@
25
25
  理想的には**どの用語が来ても読める**であり、表現方法は本人の意志に委ねる事になると思います。
26
26
  (必要であれば、「事実」を書いた上で、それが個人的意見である事を前置きした上で持論を語ります。)
27
27
 
28
+ ### [解決策2] コードで説明する
29
+
30
+ 真に確実性を追求するのであれば、**独自用語を使わずにコードで説明**が最良と思います。
31
+ 例えば、次のように説明します。
32
+
33
+ ---
34
+
35
+ ```JavaScript
36
+ function sample (object) {
37
+ object.a = 2;
38
+ object = [];
39
+ }
40
+
41
+ var object = {a: 1};
42
+
43
+ console.log(JSON.stringify(object)); // {"a":1}
44
+ sample(object);
45
+ console.log(JSON.stringify(object)); // {"a":2}
46
+ ```
47
+
48
+ JavaScriptでは**オブジェクトのプロパティ書き換えが共有される**為、2回目のコンソール出力では、関数`sample`でプロパティ書き換えされた後の値が出力されます。
49
+ しかし、**変数は共有されない**為、2回目のコンソール出力で `[]` が出力される事はありません。
50
+ (2019/04/24現在のECMAScript仕様においては、いわゆる**参照渡し**は存在していません)
51
+
52
+ ---
53
+
54
+ コードに付随して日本語の範囲でロジックを説明してやれば祖語は発生しません。
55
+ 最終行では言葉(参照渡し)を使ってしまっていますが、これは他所サイトの説明を読んで誤解されない為の配慮であり、自分の説明を相手に伝える目的のみであれば不要な一文です。
56
+
57
+ ちなみに、既存の概念であってもこの方法は有効だと私は考えています。
58
+ 質問者の中には既存の概念を間違えて覚えている方がおり、そういう方に言葉で説明すると、間違った概念の上で解釈してしまいます。
59
+ ですので、私はよく**言葉ではなく、コードで説明して下さい**と主張しています。
60
+
61
+ ※余談ですが、ロジックを頭の中で組み立てる時には、日本語を使わずにほぼコードだけで考えている自分がいます。
62
+ コード<->日本語の変換時間がロスになっていて、コードだけで考える方が思考が加速して楽しい。
63
+ 私にとっては「コード」が主役で「言葉」は無くても困らないもの。
64
+ だから、新しい内容を覚える際には「専門用語」よりも「原理」を先に覚えます。
65
+ 専門用語は原理を他人に説明するのに少しだけ時間を節約できる効果がありますが、自分が覚える分にはなくても困りません。
66
+ 他人に説明するには、世界共通語の「コード」で説明すればいいので、「専門用語」の優先順位は低くなっています。
67
+
28
68
  ### 言語の違い
29
69
 
30
70
  今回、raccy さんは複数の言語について、統合的に質問されていますが、用語や概念については、言語毎に微妙な差異があります。
@@ -32,4 +72,8 @@
32
72
 
33
73
  特に今回は定義が不確定なものを説明しようとしているので、言語の違いによる齟齬は出来るだけ抑えるのがベターと思います。
34
74
 
75
+ ### 更新履歴
76
+
77
+ - 2019/04/24 21:35 「[解決策2] コードで説明する」を追記しました
78
+
35
79
  Re: raccy さん

1

typo修正

2019/04/24 12:35

投稿

think49
think49

スコア18194

answer CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  最終的なゴールを「読んだ人がその概念を理解し、有識者の説明、プログラミングの書籍、技術情報サイト...etc、でその概念を正しく読みとる事」に設定するとして、一つの用語に拘るのはリスクが高いと考えます。
10
10
 
11
- ##" 解決策
11
+ ### 解決策
12
12
 
13
13
  結局のところ、「全て」を説明するのが最もリスクが低いと考えます。
14
14