回答編集履歴

2

補足

2019/04/04 15:13

投稿

tanat
tanat

スコア18713

test CHANGED
@@ -3,3 +3,117 @@
3
3
 
4
4
 
5
5
  と言うことをお勧めします。
6
+
7
+
8
+
9
+ [追記]
10
+
11
+ ポイントは
12
+
13
+ - 作る前に出来る限り仕様を明確にすること
14
+
15
+ - 困ったらまずリファレンスを読み/検索して、コピペでは無く自分でソースを書く事
16
+
17
+ を出来るだけ心がけることです。
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
+ - 本文をDBに記録する
46
+
47
+ - 書き込み日時をDBに記録する
48
+
49
+ - その他入力項目を記録する
50
+
51
+ という実装がされると思います。
52
+
53
+
54
+
55
+ 絵にするとこんな感じ
56
+
57
+ ![イメージ説明](0ffae7c0639099e04cfde22950975a5c.png)
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
+ 1. `一覧表示をする時に日時順で並べたい`とか、`個別に表示するときに書き込み日時を表示したい`という他のやりたい事がある
90
+
91
+ 2. そのためには`書き込み日時が記録されている事`という要件が必要になる
92
+
93
+ 3. 結果として`書き込みのタイミングで日時を記録する`という実装が行われる
94
+
95
+
96
+
97
+ という感じの背景が存在するはずです。
98
+
99
+ 絵にするとこんな感じ
100
+
101
+ ![イメージ説明](e01c4be74cda79c9ad8ffa1a60429e0a.png)
102
+
103
+
104
+
105
+ という感じで、
106
+
107
+ 思いつく限り色々書き込んでいくと、
108
+
109
+ サンプルをそのまま作るだけでは気づかなかった点について様々な気付きがあり、
110
+
111
+ 自分で新機能を追加するときも整理がしやすくなります。
112
+
113
+
114
+
115
+ ---
116
+
117
+
118
+
119
+ フォーマットは分かりやすければそれでいいので、一か月後の自分に説明するつもりで書いてみて下さい。

1

補足

2019/04/04 15:13

投稿

tanat
tanat

スコア18713

test CHANGED
File without changes