2-018-02
004.415
29
29
.
. . .:
, 2012. 224 .: .
ISBN 978-5-459-01044-2
, ,
: .
. .
(
), , ,
, , .
: . ,
, .
32.973.2-018-02
004.415
ISBN 978-0137081073 .
ISBN 978-5-459-01044-2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1. . . . . . . . . . . . . . . . . . . . . . . . . . 19
2. . . . . . . . . . . . . . . . . . . . . . . . . . 35
3. . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4. . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5. . . . . . . . . . . . . . . . 87
6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7. . . . . . . . . . . . . . . . . . . . 105
8. . . . . . . . . . . . . . . . . . . . . . 124
9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
11. . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
12. . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
13. . . . . . . . . . . . . . . . . . . . . . . . . . 175
14. , . . . . . . . . . . . . . 180
. . . . . . . . . . . . . . . . . . . . . . . . . 193
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
. . . . . . . . . . . . . . . . . . . . . . . . . 13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1. . . . . . . . . . . . . . . . . . . . . . . . . 19
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . .
, . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
/ . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
20
23
23
24
25
26
26
28
29
30
31
32
32
33
33
33
2. . . . . . . . . . . . . . . . . . . . . . . . . 35
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
40
41
42
44
46
47
53
3. . . . . . . . . . . . . . . . . . . . . . . . . . 56
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
X. . . . . .
, . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
59
59
60
61
62
62
63
63
64
66
4. . . . . . . . . . . . . . . . . . . . . . . . . . . 67
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
70
70
72
73
74
74
75
76
79
79
80
80
80
81
81
81
82
83
83
84
84
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5. . . . . . . . . . . . . 87
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
89
90
90
91
91
92
93
94
94
6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7. . . . . . . . . . . . . . . . . 105
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
105
107
107
108
108
110
110
113
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
? . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
113
115
115
116
117
119
120
121
122
122
122
8. . . . . . . . . . . . . . . . . . . 124
. . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
125
125
126
126
127
128
129
130
130
9. . . . . . . . . . . . . . . . . . . . . . . . . . . 132
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
133
134
134
135
135
136
136
137
138
139
139
140
140
10
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
141
142
142
143
144
10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
PERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
147
148
148
150
151
154
154
155
155
156
157
157
157
11. . . . . . . . . . . . . . . . . . . . . . . . . . 159
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
161
161
162
163
163
163
164
164
164
165
12. . . . . . . . . . . . . . . . . . . . . . . . . 166
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
. . . . . . . . . . . . . . . . . . . . . . . . . . . 168
. . . . . . . . . . . . . . . . . . . . . . . . . 171
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
171
172
172
173
174
13. . . . . . . . . . . . . . . . . . . . . . . 175
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
? . . . . . . . . . . . . . . . . . . . . . . .
? . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
176
176
177
177
178
178
179
14. , . . . . . . . . 180
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Digi-comp I, . . . . . . . . . . . . . . . . . . . . . .
ECP-18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
181
182
182
183
186
187
187
189
189
190
190
191
191
192
192
. . . . . . . . . . . . . . . . . . . . . 193
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
12
. . . . . . .
CVS / SVN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IDE/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FitNesse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
UML/MDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
196
197
200
203
204
205
205
206
206
207
207
208
209
210
. . . . . . . . . . . . . . . . . . . . . . . . . . . 211
( , !)
? , , . ! , .
. 421
. . .
, ,
. , 2.
/ ,
. COBOL, FORTRAN, BAL, PDP-8, PDP-11, C, C++, Java, Ruby,
1
2
!
.
14
Smalltalk . , .
.
,
. ,
, , .
, ?
. ,
,
.
1969 . 17 .
ASC
. (, .
, : ! . .)
, , IBM,
. :
.
Easycoder1.
,
. ,
Autocoder , .
. 1 1
. .
,
. , 50
25 25 ,
. .
; ,
200 , . (,
1
15
)
.
, 25 80 .
.
. 6
. 10,
.
.
,
.
, , ,
.
.
. .
.
.
, ( ). ,
. ,
.
. . (,
!)
, .
, . , - , ,
. ,
, . ,
.
, ,
- , .
16
, . ,
. .
,
. , ASC ,
17- .
, ASC .
ASC
. , .
, , , .
1970 . , , , . , .
COBOL, Fortran, PL/1, PDP-8
IBM 360.
.
ASC. ,
19 ,
, . Varian 620i
-, PDP-8, ,
16- .
.
. , . ,
, /, ,
.
8 , 7080 . $7200 .
. .
, . ,
2%. .
.
, , .
17
. .
, . 19 ,
. , .
, . ,
, .
.
,
- . .
,
.
. .
,
, ,
. , ,
, , ,
. ,
, .
,
. . . ! $6800 ,
.
,
. . .
, ,
.
, , ? . ,
.
.
, , , , .
18
, . , .
, -
.
, ,
.
, comp@piter.com ( ,
).
!
- http://www.piter.com.
, , . ,
,
. ,
! !
, -
20
1.
, ?
: !
, ,
, .
, ?
. ,
, . ,
:
, .
.
. ,
.
, .
,
$10 000? , : , .
$10 0001!
, ,
, ? . , .
.
, ? ; .
, ,
.
1
, , .
21
1979 Teradyne. ,
. -
300 , . .
,
.
100 000 .
, .
,
. ,
.
: - ,
.
. ,
.
. : .
, .
, . .
,
.
,
. , ,
, .
, . ,
22
1.
, .
, .
. , ,
. . ,
.
,
. ,
. . ,
,
.
, .
,
. , .
, , ,
.
:
.
, .
. .
( , ), .
, .
, .
, ,
. ( ) ,
. ,
: . .
, ,
. , ,
. ,
. :
, . , ,
, .
23
:
, ? ,
? , ,
?
?
.
, .
, , .
, , .
. .
, ,
.
. ,
.
! . ,
.
, . ,
. , .
,
, .
,
?
, ?
, , .
, ,
, .
, , .
24
1.
, . ,
, .
, .
.
. ,
, .
, ,
.
.
? ,
!
. ,
.
. .
, ,
. ,
. ,
. , , .
.
? ,
, ,
, - ,
.
( ) , , ,
.
25
,
, ? . .
. ,
. !
, , . ,
, . , ? !
. , , .
? ? ! . .
, 100% ? . , .
. .
, ? ? , , . ,
, , .
.
FitNesse. FitNesse
60K , 26 2000+ .
Emma, 2000 90% .
? Emma !
, .
100%? , 100% .
? , , . , .
, .
(TDD, Test Driven Development),
.
26
1.
FitNesse
. , .
, .
, - FitNesse
. , FitNesse , .
, ,
. ,
, .
,
, .
,
.
. , .
. ,
, , .
.
, . , - ,
, .
. ,
.
,
, , 1.
1
27
. , : ,
, !
, ?
!
, , ,
.
? ! .
.
. :
, . ,
.
. ,
. ! , . , , .
? ! ? .
. , 100% ,
,
. , ? .
, , .
.
,
. switch
. ,
,
.
28
1.
. .
, .
. ,
!
,
. , .
, !
, , .
.
, .
, .
.
. 40-
. 40
, .
60 . 40
, 20 . 20 , ,
.
: ? ?
?
. 20 .
90
.
. 168 . 40
, 20 . 108. 56
, 52. ,
. ,
. .
29
, , . ! 20
, .
. ,
, .
20
. : 20 . , .
, . , . , - ,
.
20 , .
20 !
, ? ? ?
. ,
?
?
? ?
50
, , , .
? , , .
? , ?
: ,
. ,
. ,
24 .
, , . , , . ,
if while, 50 . .
.
30
1.
.
50 .
, . , ,
. ,
, ,
.
50 . ,
. :
.
, .
.
24 Pattern-Oriented Software
Architecture.
. SOLID
.
. XP, Scrum, 1 (Lean), Kanban, , .
. (TDD), -
, ,
.
. UML, DFD,
, , , -
.
,
, . ,
.
1
. . .
31
, , . ,
.
, , ? ,
? ,
?
, , , . .
. , .
.NET Java.
Java Ruby. C
Lisp. ,
Prolog Forth!
.
,
.
.
, . ,
.
?
.
. ?
, . ? ,
, . ,
.
?
, . ,
32
1.
. . , , .
, ,
. ;
, .
.
- ,
. Java, Ruby, Clojure -
, . (,
)
.
10- 10-
.
- .
, ,
. ,
.
, 100% . .
,
.
- . ,
, . ,
.
, .
. ,
.
33
. ,
.
, .
,
. ,
- . . ,
.
, ,
. ,
.
/
.
.
, .
.
,
.
.
.
.
. ,
. ,
.
. .
34
1.
, . .
, , , ; ,
.
, , . ,
.
, ,
.
, ,
.
, : .
. . .
1970- 19-
ASC.
, 1, . 1971
.
.
.
60, 70 80 , .
- .
,
. ,
1
, . . .
36
2.
, , .
ASC , .
, : 3000
, . , 19- ,
.
, .
. ,
. . .
.
, , .
, ,
.
. .
-
, 30 , 300 .
.
, , .
, ASR35, 110 .
. , ,
, .
, ,
.
. .
, .
,
.
.
, .
,
. : .
37
, . , ,
.
: , .
.
.
: , . ?
. . ,
. -
- . .
, , .
, , .
: , .
? , .
. ,
. ,
.
, .
.
, .
? !
, ?
! , .
. . . ,
, . - .
. , - .
38
2.
, ; . , ,
, .
, .
,
.
, ,
,
. ,
.
, , ,
. ,
.
,
,
. . ,
, : , , .
: : , .
? ,
,
, .
.
,
. , ,
.
.
: ,
.
: ! ? .
: , !
, .
. .
39
.
, ,
. , . ,
, -
.
.
, .
: , ,
:
? , ?
.
: ,
.
: , , .
: , ?
: ?
: ( - ) , .
, . . ,
, :
, .
, ,
. , ,
- ? .
.
.
, .
: ,
.
: , , .
: ? ,
, !
40
2.
: , . ,
. 10 .
?
: ( ) , . -,
, .
:
?
: !
.
: , , . .
. , . cookie,
,
. . ?
: , ?
: , .
: , , ! (
)
.
, . . , ,
.
?
, , ,
.
, ,
. ,
. .
, ( , ) .
41
,
. , . , , .
,
12 .
.
, .
, .
, . ,
, .
.
( ): ,
12 , / 5 .
( ): ( ,
) , 17 ?
: , .
: (, ) , !
! , .
, ?
- .
: , ,
. ,
20%! ,
?
: , .
, . ( , .)
. , ?
? ( , .) ,
- .
42
2.
: , . .
. ,
.
. .
: . ,
?
: , , .
: , . , .
.
,
, . , (
). ,
.
, . , ,
, , .
, , ,
.
,
. .
: , . ,
- /
.
: , -,
.
: ? , .
: .
43
: () , ,
, .
,
.
: , -.
: , .
: . , , ,
.
: , .
: - ? ,
, ?
: , . ,
,
.
: .
: . , , ?
: , .
: , . . , .
: , , , . - .
: , , . ,
. ,
.
: , , ,
.
( , .)
,
: , , -
. , .
: , . , . ,
, !
: , !
? ,
, , .
44
2.
, .
. , ,
, ( ) .
( ), .
? ,
, ,
. ;
,
, .
, ,
: , . ,
. .
? , , -
? ,
?
.
. , -
? , ,
.
, , ; ,
. , ; ,
. , ,
. .
, .
,
? , ?
?
45
, .
. , ,
. ?
? ,
?
, ,
, ,
?
, , ,
. . ,
, .
. , .
.
. ,
- , ,
.
: , -.
, .
: , .
: , .
: , -
.
: ! !
: , . ? , .
: , , .
.
: , . .
: , , ?
: , . .
. , ?
46
2.
: , .
: , , .
( , , .)
: , ; , .
: ( ) , ?
.
( , .)
. ,
.
.
,
.
, , .
- .
,
. , , .
, , , :
, ,
: ! !
: , ? , -
?
: , , .
: , , . , . ,
.
: , , , ?
: , . , ?
47
: () , , . . , ,
.
: , .
, .
: , .
: , , .
: ,
: , , - . .
. ,
- . ,
, .
: ( ) ?
: , , . , ,
, -.
,
. , .
: !
: , . ,
, ,
-, ?
? . , .
. , ,
. ,
.
. . , , ,
.
. ,
.
48
2.
, .
, , ,
.
,
1. .
, .
?
. - . ,
3D-.
,
, , .
? . .
, . . .
XP .
?
, ( ) . , , ,
- ,
.
, , . . ,
. , ,
.
.
.
; . ,
1
http://raptureinvenice.com/?p=63
49
iPhone,
1. ? 1 .
4 . , Apple
(
). ,
?!?
. . , . ( .)
.
, 1 , . , ,
. .
. , ?
, !
2: , .
, . , II ,
.
. ,
, , .
, . ! ! !
. XML! .
. !
,
.
: , , -
.
: -?
: ................
. , -, Java. .
Excel.
.
: ,
. ! , 1
; 22 29 .
. .
50
2.
iPhone,
PHP, ? ?
, . .
f or
!
.
, .
- .
( , .)
8 .
74 , , . , .
.
, : / (AKA ),
( ! ) !
( , !)
, . ,
, ? - ? , .
(
), , ,
, . , .
!
, . , .
, , ! ,
. ,
, . ,
. ?
. . . , . ,
.
. , : .
.
.
51
:
( )2
+ 2 *
+
= ,
, .
( ). , ( !). ,
.
,
,
.
.
. .
,
, , ,
, .
. (!),
. . ! 1.0! !
, , , 42- ,
. , , ?
, - .
, . .
. , ,
, .
, ? . Apple . ,
, (. ).
. . .
, : , ?
!
Apple.
, .
,
, :
. ; .
. .
, ! Apple.
52
2.
, . , . . ,
. 1234567890 .
, ! !
, , :
! , , . -
!
:
, . -, . App Store, ?
, 11
. , 11
. , ?
, :
.
, .
? ,
: ( ) ,
. ? . ? .
.
, .
.
, ,
, , .
. ?
, .
: , - . ,
, ?
, .
( ,
?). ? ,
, ?
! , , ,
53
20- , .
,
, .
. ,
, ? . , .
,
, , ,
.
, , , //
.
: ?, :
? ,
. , ,
. 1.
.
?
, . , , .
? .
iPhone .
. -,
. ?
, . , - , -;
, . . ,
: ,
,
, , ?
1
, , , .
54
2.
, .
, :
. ,
?
( ), ?
, .
, ?
.
, , , .
PHP.
. 20 90
. ,
.
? : ,
, ,
42- , . ,
. .
, ,
. ,
, .
, .
.
, ,
- .
.
,
.
,
,
. , :
, . .
for !
55
:
.
, :
/ (AKA ), (
! )
! ( ,
!)
.
,
, , .
, . .
, . .
,
, . , -
:
? ?
!
, ? . -
, , : ,
. 80- , Teradyne.
, ( ).
, .
,
, ( ,
1).
57
, . , . ,
.
.
.
, . , .
, .
, .
.
, Teradyne , .
CDS (Craft Dispatch System)
. Teradyne ,
(!).
(!!)1.
CDS ( ), .
, ,
.
; .
,
. , : , , . , .
, , .
. , : , . , , . ,
. , - , .
, .
,
: , ,
.
: ,
.
1
, . Teradyne
1 ( ).
58
3.
. . .
.
1. , .
2. .
3. .
(, !),
?
,
, : , . , .
, : .
. - ,
, .
: . ,
. .
, -,
, .
, . , , . , :
, , ,
? .
, ?
, .
, ,
. , ,
.
59
, ,
. ,
1 2 .
,
,
. ,
,
. ,
.
/: ,
, - .
/ : ,
, , , , ,
.
: ,
.
, ,
, .
, .
, - . ,
.
, , . ,
?
: ,
. ,
, .
60
3.
-
, -
.
- - (,
).
? , , .
- , . ,
. , ,
; .
,
. , ,
: , .
, ,
. ,
( ). , ?
-
, .
.
- . . ,
- .
: .
, -
( ).
X
, .
, ,
,
61
.
,
. :
- ,
;
, ;
,
, ;
, .
?
- ,
,
.
,
, , .
,
!
25
( ),
, .
25 .
.
.
62
3.
, . -
. , - .
.
,
, .
,
, ,
, -
(, ). , .
.
, . ,
. ,
, . ,
.
, . - ,
, .
( ,
, ) .
, .
,
, : , ,
.
, , , ,
.
63
,
. ,
. .
, .
, - .
, . , ,
.
: , ?
: , .
: ?
: .
,
. ,
, .
.
,
, , , .
.
: , ?
: , .
: ?
: . , ,
.
. , -
. , .
64
3.
: , .
?
.
, .
?
: . ,
, .
: ?
: , .
,
?
: , . , , .
. , .
?
: , , .
: , - ?
. , ; ,
,
. , , .
?
: , , ,
.
? ,
. .
65
: ?
: , .
, .
: , , .
, ?
. ,
, .
.
.
. -,
,
. ,
. ,
.
-, . ,
. .
, .
. ,
.
: , , ,
, . ,
, .
: , , .
?
: , , .
: , . , .
. ?
?
66
3.
: , , , , , . . -
?
, , ,
.
.
; .
. , , ,
. ,
.
: , , .
.
, .
,
.
. ?
. , .
,
.
, .
,
. ,
,
.
1
. ,
, .
18 , , . . IBM 029, ,
.
, .
1
. . , . .: , 2010.
68
4.
,
. ,
. ,
;
, . , ,
, .
, .
, . ,
. , ,
.
.
. ,
, . , .
.
, - .
. , -
.
-, . .
, ,
- .
.
, . ,
.
1. .
, .
69
, . ,
, ,
.
2. , .
, . ,
.
3. .
,
.
. ,
1.
4. .
. , ,
. . , ,
.
.
.
, , . ,
.
, . .
. .
. , .
.
.
. , .
1
70
4.
, , 3 .
1988 ,
Clear Communications. , .
( , )
( ). ,
3 .
, 18 (
6070- )
.
, . , . , ,
3 . !
, , . ,
.
. , .
, ( ),
.
, .
.
, : !
!
: , . , . , ,
.
-
? , ,
71
?
- . ,
.
.
,
, .
, , ,
. . .
, ,
.
.
- .
- . .
,
, .
, . , , .
, .
, .
, . ,
,
.
.
,
, (, )
. ,
. ,
. , . , ,
.
.
.
,
. ,
,
72
4.
. ,
, ,
, ,
( ,
).
, (flow),
.
. , , ,
.
,
,
, .
,
: .
, , . - ,
.
. .
(TDD), //. .
,
, ,
. ,
.
, ,
. : , .
. , - .
:
. , ,
73
. , , .
! , .
- .
, . ! .
74
4.
, .
? ?
? , ? , ?
? , , ?
. , , -
. ,
.
, .
, . .
. ,
. ,
.
.
- ,
. ,
.
, , . , .
,
.
. , ,
.
.
.
. , . -
75
. . , ,
.
- ? .
. , . , .
, .
. , .
.
, .
- , , ,
. .
, , . ,
,
.
, . -,
,
. ,
, ,
.
.
.
, .
. , , , , , ,
. , .
- ,
. , , . . ,
, ,
- .
76
4.
. . , .
, .
, .
1972 . , , - .
. - . ,
: , .
. . ,
.
, . , .
, . ,
.
, -
.
,
, 30 .
, . .
.
5 ,
.
,
.
ASR-33, . .
77
, . ,
. ,
, .
. , , .
.
, - , . , , -. -
5K ,
.
!
, ,
, .
, . ,
.
.
.
,
30 .
? 19,
.
, .
,
. ,
. ,
.
FIFO, . , . ,
78
4.
. ,
. - , , .
,
. , ,
,
. ,
, ,
. ,
, : ,
.
,
.
, .
,
. 1972 ,
. .
. ,
. ,
, . ,
, .
.
, .
,
.
, .
.
.
30 ,
3 .
12 . !
79
, ,
.
, .
-
. ,
: ,
.
, ,
.
,
. , , , 10.
(TDD, Test Driven Development), .
, TDD
1, . ,
, .
,
. . ,
, .
, , .
, .
, . ,
.
1
,
TDD, ?
80
4.
, .
.
, ? , !
.
, .
, , ,
( ).
, .
.
,
.
.
, .
, .
. ,
, .
- ,
, .
. ,
, , .
, ,
. ,
. ,
81
, ,
.
.
. . ,
.
, , : .
, ,
, .
.
1 : , . .
!
. .
, , ? , , . ,
, , 8/12/20.
, 10 !
. . .
10 , 12 , .
,
, ,
. .
? ,
1
10.
82
4.
? ! , . , (
) .
.
, .
.
, ,
.
, .
. .
.
,
.
, ,
, .
: ?
? -
, .
, . ,
10 , - .
. 20%
20% . ,
- .
,
: 1 ; 2 , ,
3 ,
.
83
.
, , .
,
.
, .
. ,
, . ,
,
.
. , .
,
. ,
. . !
, ,
. ,
. :
, .
. -
1,
. FitNesse,
Selenium, RobotFX, Cucumber . .
, , .
1
. 7.
84
4.
. ,
. , if while. , if
while. .
,
,
, .
, ,
. .
. , ,
. ,
.
, .
, .
, ,
. , , 10:00 , 13:00 15:00
.
.
- , . , .
, ;
.
- , . . ,
, . . ,
, .
85
- , .
. , .
30. , . : ,
.
.
, .
, : .
,
. , .
, .
, ,
? ,
. , , . ,
. ,
,
, , ,
.
, . , .
, 1.
.
, , , .
1
, .
@desi ( , DevChix)
-. , , .
, , , .
86
4.
.
, .
. . ,
. ,
,
. ,
.
88
5.
30-
; , . , ,
, .
1999 , , .
!
Java. ,
.
,
- . ,
, .
.
.
, .
30 . ! ,
!
, 1
Basic Logo. : .
.
.
.
, ,
. .
C++, ! C++ , . .
, Java 30- , .
,
,
Logo! TDD!
1
, 35 .
20,
. , , , , . .
TDD
89
, TDD ,
. , .
.
!
.
GOTO .
TDD .
, TDD
. , . , TDD .
, , ,
. , TDD.
, ,
? , ,
? ,
?
TDD?
, .
, , TDD?
TDD
1. ,
, .
2. , , (
, , ).
90
5.
3. ,
, .
30 .
.
, ; ,
. ,
, .
, .
.
. .
, .
.
, TDD ,
, ,
.
- .
FitNesse1 Java. FitNesse 64 000 ,
28 000 2200 .
90% 2, 90 .
, - FitNesse,
. ,
, .
? , !
1
2
http://fitnesse.org
90% . .
,
, catch.
91
FitNesse . FitNesse
,
. ,
. ,
FitNesse , , 20 000 ,
17 (
). , , FitNesse
.
. TDD 1 2.
IBM Microsoft, Sabre Symantec 2, 5 10 .
.
,
? ,
: , . :
- ! ? :
1
2
http://www.objectmentor.com/omSolutions/agile_customers.html
E. Michael Maximilien, Laurie Williams, Assessing Test-Driven Development
at IBM, http://collaboration.csc.ncsu.edu/laurie/Papers/MAXIMILIEN_
WILLIAMS.PDF
B. George, and L. Williams, An Initial Investigation of Test-Driven Development
in Industry, http://collaboration.csc.ncsu.edu/laurie/Papers/TDDpaperv8.pdf
D. Janzen and H. Saiedian, Test-driven development concepts, taxonomy, and
future direction, IEEE Computer, Volume 38, Issue 9, pp. 4350.
Nachiappan Nagappan, E. Michael Maximilien, Thirumalesh Bhat, and Laurie
Williams, Realizing quality improvement through test driven development: results
and experiences of four industrial teams, Springer Science + Business Media, LLC
2008: http://research.microsoft.com/en-us/projects/esm/nagappan_tdd.pdf
92
5.
, ;
, .
, ?
90 ,
, ?
TDD. , ,
. , .
, , .
, ! , . .
,
.
, ?
- ?
;
, .
, - , .
? , . ,
: .
,
, , .
, ,
, . ,
,
, .
, ,
. ,
, ,
.
93
, . , , , ,
. , .
?
,
. ,
,
, , !
,
.
. , . ,
- . ,
.
,
, .
, ,
, , , .
,
. ,
?
, . , . , . , .
, ,
, , . , , ,
, .
, .
94
5.
, TDD .
, ,
,
. TDD
.
TDD
TDD .
.
. .
. ,
.
,
, .
. . . . .
, .
.
96
6.
, . ,
6 1.
main()
{
printf("hello, world\n");
}
? ,
. ,
,
.
,
SQINT,
. , BASIC, FORTRAN,
COBOL .
,
, .
1980- . , (VIC-20, Commodore-64 TRS-80),
'\' '/'.
, , , .
,
. , . , . ?
.
1970- . , . TDD
, ,
, .
1
97
. ,
.
, , PDP8/I. 1,5 4096 12-
, . 32K
12- ,
10 .
, ,
.
Macbook Pro. 2,8 , 8 , 512- SSD 17- - 1920 1200.
. 85 .
PDP-8/I
, ,
, 1% , 1% 25 .
:
8000 2000 000 16 000 000 100 100 25 = 6,4 1022.
. 22 ! ;
; , , .
, !
, 10 22 ?
, PDP-8/I. if, while .
, ,
.
. 2010 1960- . , ,
.
98
6.
. 1960-
.
1970- 50 000 45 . 1990- .
1.
,
--
.
, FitNesse, Java
64 000 . 4 . ,
. , , ,
4 . .
. , /
10 !
, .
2.
.
. /
.
,
.
. , , .
, .
. ,
.
/ ,
, .
, , .
, , .
2
.
1
99
, ,
.
,
.
: /
, .
, . .
. ,
.
. , ,
.
2001 TDD,
1. 30 .
,
.
2.
, . ! .
,
,
. ,
.
2005 XP2005 ().
(Coding Dojo), .
; Google . http://butunclebob.com/
ArticleS.UncleBob.TheBowlingGameKata
2
Robert C. Martin, Agile Software Development: Principles, Patterns, and Practices ,
Upper Saddle River, NJ: Prentice Hall, 2003.
1
100
6.
, TDD .
, 1 2 .
. 3.
, .
. .
. , 20
,
.
.
.
, . ( ) . ,
. .
, . ,
. , ,
.
,
. ,
.
, .
http://codekata.pragprog.com
,
OTI.
3
http://codingdojo.org/
1
2
101
. ,
, .
.
.
, (TDD)
(CI, Continuous Integration). /;
,
, .
, , ,
. http://katas.
softwarecraftsmanship.org http://codekata.pragprog.com.
:
: http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata
: http://butunclebob.com/ArticleS.UncleBob.ThePrimeFactors-Kata
: http://thecleancoder.blogspot.com/2010/10/craftsman62-dark-path.html
,
, .
1.
-, ().
. . ,
. ,
.
1
http://katas.softwarecraftsmanship.org/?p=71
102
6.
, -1.
. ,
. .
, , ,
. ,
, . , , , . . ,
,
, . .
. -
, .
, .
( ,
).
. .
; ,
. , . ,
. , ,
.
, .
.
.
, .
,
.
.
1
http://c2.com/cgi/wiki?PairProgrammingPingPongPattern
103
. ,
, . , .
, .
: - , . ;
, ,
, .
Java Rails.
C++ ,
Python .
.
. ,
. () , , .
, ,
.
.
,
.
.
.NET, Java Ruby
.
104
6.
.
, . , , ,
, . .
, .
, . , /
, ,
.
.
, ,
, .
106
7.
. , .
1979 Teradyne , .
ED-402,
.
ED-402 ,
M365 PDP-8.
, .
, , , . , ,
. .
, ,
.
, , , . . ,
. , .
.
.
:
, Control+B ( ) ^B. :
,
.
. , ,
, ,
, .
- ,
. 20 ,
, , , ,
.
. , , .
107
5 , -
. X, 5 X .
, , .
ED-402; - . -,
, .
, . -
: , , . . ,
. , , . , ,
.
,
, . ,
, . ,
.
, . ,
. ,
, .
,
, .
, ,
. ,
, , . ,
, .
, . -,
108
7.
, ,
.
, .
. ,
, ,
. !
-, . -,
. ,
, .
, ( ) . ,
.
, -
(. 10).
?
.
,
. : .
.
, . ,
, . ,
:
- 1.
, -
. ,
, . ,
1
109
,
, .
.
( ): ,
.
: ?
: .
: . ?
: ?
: , ?
: , .
: ?
: , backup?
: , . ,
backup. ?
: .
: , ?
: .
: ?
: , . .
: , .
: , !
: .
.
: ,
backup .
: . ?
: , log.backup .
: .
110
7.
.
: , , .
: , .
, -
, ,
- , . ..
: , .
backup .
: , .
? , , ,
.
, .
, . ( ) ,
.
, .
.
, ,
.
. ,
.
?
, ,
. , , ?
?
111
? , , ?
,
.
.
: . , , , . .
,
? ,
! ,
, .
. ,
, .
: , .
: ?
: .
: . ?
: ?
: , ?
: , .
: ?
: , backup?
(): , backup .
?
: .
: ?
: .
: ?
112
7.
: , . .
:
?
: .
: ! , .
: , ,
.
: . , .
: , .
: .
: old_inactive_logs.
: .
: ?
: ?
: ,
, .
: , . , old_inactive_logs.
, , , .
: . 20 , .
.
: ?
: SystemStarter. StartupCommand,
. SystemStarter
StartupCommand
. StartupCommand
old_inactive_logs, , .
: , StartupCommand. FitNesse.
( .)
113
:
given the command LogFileDirectoryStartupCommand
given that the old_inactive_logs directory does not exist
when the command is executed
then the old_inactive_logs directory should exist
and it should be empty
:
given the command LogFileDirectoryStartupCommand
given that the old_inactive_logs directory exists
and that it contains a file named x
When the command is executed
Then the old_inactive_logs directory should still exist
and it should still contain a file named x
: , .
: ?
: ,
?
: ,
.
: , , . ,
.
,
.
,
. .
, , .
114
7.
,
. : .
. 7.1. , ,
-. , ,
. ,
. .
, , 50%, :
?
.
,
, , !
. 7.1.
115
.
,
, ,
.
, .
( , ), .
FitNesse, Cucumber, cuke4duke, robot framework Selenium .
, -
, .
.
, . . 7.1, ,
. .
, , ,
.
, ,
, , .
.
.
,
.
?
,
.
,
-,
. ,
116
7.
, ,
,
.
- ,
,
. , . ,
, .
, .
.
. , .
,
. , -
/ .
,
.
, .
,
.
: , ?
: , ?
: . , .
given the command LogFileDirectoryStartupCommand
given that the old_inactive_logs directory does not exist
when the command is executed
117
: , . . :
|scenario|given the command _|cmd|
|create command|@cmd|
: createCommand?
: , CommandUtilitiesFixture,
.
: , .
: ( ) ,
.
(scenarios)
(fixtures) , .
,
,
. ,
.
, , .
-
, .
, . .
1
: LogFileDirectoryStartupCommand
: old_inactive_logs
x
old_inactive_logs
x. . .
118
7.
. . , , .
.
- , :
, .
:
, . ,
.
: , - .
ensure that the post operation finishes in 2 seconds.
: -, . , . ?
: ,
.
: -, . :
.
: , 99,5% .
: , .
: .
.
: .
: - . ,
.
: ? : .
: .
: ,
? .
119
: , .
?
execute 15 post transactions and accumulate times.
ensure that the Z score for 2 seconds is at least 2.571
: z-?
: , . ?
execute 15 post transactions and accumulate times.
ensure odds are 99.5% that time will be less than 2 seconds2
: , , ?
: , ,
.
: , .
(unit tests).
.
. , .
(
, ).
,
.
.
, - ,
, .
, .
15 .
, z- 2,57. . .
2
15 .
, , ,
99,5%. . .
1
120
7.
-, , .
. API
. , .
, , ,
. , - , .
.
, . , ,
.
.
, . ,
, , .
,
. , ,
. .
.
, API, , , .
,
.
, (SRP, Single
Responsibility Principle). ,
,
, ,
. .
121
,
, . ,
, .
, .
,
,
. ,
.
ok_button, 3
4 .
, API, .
API,
. : ,
-.
(
). , , .
,
, . .
, - ,
API, .
. ,
. -,
, .
- .
122
7.
.
- .
, , .
, .
. , - ,
.
.
-
, . .
, .
, -.
, . ,
,
. ,
. , ,
, .
,
.
.
, .
123
, .
, , .
.
,
. , .
. . ,
.
.
1989 Rational Rose.
. ,
, ,
Rose .
. ,
125
, . , ,
.
.
,
, ,
.
, . ,
, . ,
- ,
. , , .
,
,
.
.
,
.
, . , ,
,
(. 7, ).
126
8.
, - ,
, .
1
-.
.
(TDD,
Test Driven Development).
(. 7, . 122)
.
.
, ,
,
. . 8.1 2 ,
.
.
1
2
http://www.satisfice.com/articles/what_is_et.shtml
Mike Cohn, Succeeding with Agile, Boston, MA: Addison-Wesley, 2009.
127
. 8.1.
.
.
,
.
,
100%, .
90%, ,
.
,
. . ,
-.
. 8.2, . ,
.
128
8.
. 8.2.
-.
- .
FitNesse, JBehave
Cucumber. (
Selenium Watir.) , - ( ).
.
,
.
,
.
. . 8.3,
. , ,
-.
: -, ,
129
. 8.3.
. .
( ) . .
.
, .
,
. (,
. .) , .
, . , . -
. ,
, .
.
. ,
,
130
8.
. ( ),
.
10% . ,
,
. .
.
.
.
.
.
. ,
, , , , ,
.
.
- .
,
.
TDD ,
.
.
131
, , ,
.
, .
. 480 , 28 800 .
.
,
? ?
1986 - ().
Teradyne, 15 .
,
, , . ,
.
133
5 6 .
2,5 , .
, .
15- , .
3 .
9 15-
;
.
,
: ,
.
, ,
, -
.
. 5
,
.
.
$200 .
, ,
. . ,
. .
:
1) ;
2) .
.
, .
, . ,
; .
, .
134
9.
, . , .
. ,
. , ,
.
, , ,
.
, ,
. , .
.
, ,
, . ,
. , ,
. ,
.
- ,
. , .
,
.
.
, , .
, .
, ,
.
135
- .
: .
, . ,
, .
, :
! .
, . , , ,
. ,
, ,
- , .
,
.
?
.
,
.
, , , ,
.
, .
, , ,
, . ,
.
. ,
. :
136
9.
1. ?
2. ?
3. ?
. 20 ,
.
10 10 .
.
.
, .
,
.
.
/
.
:
, , .
5 10 . ,
.
: 5% . , (40 )
.
.
, , . . ;
45 .
137
20 25 . ,
- ,
.
: , 5 , . , ,
.
,
.
.
,
. , ( 5 30),
. , , .
. , . ; . .
- .
, , ,
. : ,
. ,
. , . , .
, ?
, . ,
.
, , .
.
,
.
, .
, .
138
9.
,
5 ,
. 15 .
, ,
Dungeons & Dragons.
.
,
. , 1.
,
, .
, , , ( , ),
. , , , , .
,
. ,
, ,
.
, . , , , , .
,
. ,
.
. , , ,
,
.
1
Dungeons
&Dragons. , . , .
,
.
.
139
. .
.
,
,
.
, . !
.
.
, ,
.
. .
, .
. , ,
.
. .
.
, , , . ,
.
.
, -
. ,
140
9.
. ,
.
, , .
,
.
.
, 2030 .
, -,
.
. ,
.
. , .
, -
, .
, .
.
,
. - .
1. : ( ) 25 .
.
,
1
http://www.pomodorotechnique.com/
141
25 . - , ,
25 .
.
, 25 !
-
. ,
.
, 25
.
, 30 .
; .
.
. .
.
, , ,
.
? 12
14. 2 3.
, ,
,
.
,
.
.
, 25- .
. , , . ,
,
? ?
142
9.
. , ,
. : , ,
.
, .
, , ,
. , ,
.
, . , ,
.
.
, .
.
,
. ,
.
, . ,
.
,
. , , .
: , .
,
.
,
, .
143
,
, . ,
. ,
, .
, ,
, ( ).
, . ,
.
,
. .
, , , .
,
, .
.
, ,
. , . -
,
.
!
.
. , ,
,
. ,
, , .
, .
,
, .
( , )
. ,
, ,
. , ,
.
144
9.
.
, .
.
, .
. ,
,
.
10
,
, .
. .
. ,
. ,
.
1978 32- Z-80, .
32 ,
( 12 ).
146
10.
, . , ,
32 !
. ,
.
. ,
.
-
. , .
, , .
.
, .
.
, .
. . ,
.
, , ,
, 100 .
.
. ,
, .
, : v-, .
- , .
.
,
147
, .
.
.
, .
- , . , ;
, .
.
. Teradyne
1978 . 26 .
Teradyne,
. ,
. , .
, , , .
.
- (
29 , ), ,
. . ,
,
.
, , , .
,
. : , , ,
, , .
. .
?
, -.
. .
.
148
10.
, . - , -
. 12
, .
.
,
. , .
, , , .
, , , ,
, ; .
.
.
; ,
.
, , . . .
. ,
, , , .
, .
, - .
, .
, . :
: , ,
?
: .
? ,
? : .
?
, ? ,
149
? .
, .
, ?
: , ?
: , .
: ?
: .
: , , .
: . ,
.
: ?
: , ,
.
: ?
: , ,
, .
, ?
.
. , . 10.1.
, 3
. , .
.
,
11 .
? ! 1
,
.
1
, - ,
.
150
10.
. 10.1.
. ,
. ,
. - .
: , . , ,
, .
: ?
: , .
. ,
.
.
: , , ?
, , .
? ?
PERT
151
2.
. , .
?
, ? 8 ?
, .
? , .
? , . .
- , ,
.
. ,
. ,
.
, .
PERT
PERT (Program Evaluation and Review Technique)
1957
Polaris. PERT .
PERT , ,
.
( ):
O: .
.
, . ,
,
1% 1. . 10.1,
;
N: ( ).
. . 10.1 3 ;
1
152
10.
P: .
.
, , , .
,
1%.
(12 ).
:
O + 4N + P
,
6
. (1+12+12)/6, 4,2 .
,
1.
P O
,
6
2. :
, .
(12 1)/6, 1,8 .
4,2/1,8 , , ,
, 6 9 .
. ,
. ,
, . 10.1.
1
, PERT . , , [ . . .: ;
.: , 2007. . 1.3].
, , . ,
.
153
PERT
10.1.
12
4,2
1,8
1,5
14
3,5
2,2
6,25
11
6,5
1,3
? ,
, . ?
?
,
.
:
m sequence = S m task .
. ,
4,2/1,8, 3,5/2,2 6,5/1,3,
, 14 :
4,2 + 3,5 + 6,5.
ssequence=
Ss
2
task
. ,
3.
(1,82 + 2,22 + 1,32 )1/2 =
= (3,24 + 2,48 + 1,69 )1/2 =
= 9,771/2 = ~3,13.
, ,
, 14 ,
17 (1s) 20 (2s).
, .
. ,
5 ? ,
154
10.
1, 1 3.
10 . 14 17
20? ,
.
- , , 35 .
PERT .
, .
. ,
.
, ?
, ?
, .
, . , .
1970- , 1.
, . :
.
. ,
.
, .
, ,
;
. .
1
Barry W. Boehm, Software Engineering Economics, Upper Saddle River, NJ: Prentice Hall, 1981.
155
. . , .
0 5
, , , .
,
.
, .
,
. ,
.
, . ,
3 4 .
4 , ,
.
.
,
,
3 .
.
,
.
2002 1
. ,
2. planningpoker.com,
.
James Grenning, Planning Poker or How to Avoid Analysis Paralysis while Release
Planning, April 2002, http://renaissancesoftware.net/papers/14-papers/44-planingpoker.html
2
http://store.mountaingoatsoftware.com/products/planning-poker-cards
1
156
10.
.
. 0 5 ;
.
. -
. , , ,
.
.
. , .
, .
.
, .
. , 0, 1, 3, 5, 10 .
.
.
- .
,
.
. , , , .
, . ,
h , .
.
. ,
.
,
, , . . ,
(1, 2, 3, 5, 8).
157
. ,
.
. ,
,
.
.
. ,
. 1. , ,
, . ,
.
, . , , . .
,
.
, , .
, , , .
, , .
1
http://en.wikipedia.org/wiki/Law_of_large_numbers
158
10.
. , .
, .
,
. , . ,
.
11
:
, ,
.
, .
? ,
? ,
? , ,
?
160
11.
? ?
?
?
,
.
, ,
.
1988 Clear Communications.
, . , .
,
. . .
PC Sparc. :
.
. , , ,
.
, , , .
. C
3000 . .
: , , ,
.
.
- - . ,
-. .
. .
80 , .
- , .
, .
.
161
. 1988 , 20- ,
.
,
, .
80- , C
3000 2 , .
. , . .
. , . ,
. . ,
. ,
; .
- . .
. . ; ,
?
. ,
.
C 3000 . ,
, , .
, , .
.
, . ,
, .
10,
, .
162
11.
,
. ,
, .
, .
. ,
- , .
.
.
.
,
, . ,
, ,
, .
, - , .
,
.
,
.
, .
!
,
. ,
. : .
, ,
.
,
.
163
, - , .
,
.
(TDD)
, ,
TDD.
, , ,
. , , , .
, . .
.
.
,
.
, , ,
.
,
.
.
. , . ?
. . . ,
164
11.
, !
. .
, . , , .
.
.
. .
, .
.
, .
, .
, .
-,
,
. , , .
, . ,
. ,
, .
! , , .
.
.
, ,
, .
165
, , -
, .
, .
. , .
, , .
, , ,
.
12
.
. .
1974 22 .
-. ,
, .
Teradyne, Chicago Laser Systems.
.
:
167
, 1
, PDP-8 .
,
(,
. .) ,
, Motorola Pulsar.
M365, Teradyne PDP-8.
, . ,
, .
. . ,
.
.
, .
. , , . ,
. (MOP) .
,
. , , ,
, .
.
- . , . ,
.
.
. .
1
; . http://en.wikipedia.org/wiki/Jacob%27s_ladder_%28
toy%29. . .
168
12.
.
. , . . .
15 ,
.
.
, . ,
.
, . , , - .
, ,
.
.
, . , ,
.
1970- 1980- , Teradyne,
. ,
. !
, ! ,
.
: . !
.
, .
, .
. ,
169
, -,
, . .
,
.
, , ,
.
!
,
. , .
. , ,
.
,
, .
. 1976 , Outboard
Marine Corp. ,
IBM System/7 .
.
System/7 , .
. . , .
,
. -
. .
. . , 24
.
.
. , ,
, . ,
: .
170
12.
, .
. . ? , . .
? , .
. ,
. , . :
. , .
. . , ,
.
,
. ,
, -
. ,
.
. . , .
, , , . , ,
.
, . :
, ? : , .
-, ,
, . , :
? .
- . . . ? .
, ?
.
,
. !
171
, .
.
! ,
. ,
. , ,
.
. - .
, ,
.
.
.
22- , . ,
- .
.
.
. , .
.
, . :
, , , , . . . ,
.
.
, . .
172
12.
.
. , ,
.
. , ,
. ( ) .
, .
. ,
, . , ,
.
. . ,
. ,
.
.
, . ?
. :
, .
,
?
,
.
, .
173
, . .
? . , .
,
. ,
. ,
,
.
,
. , .
;
.
.
-
. ,
. -
. : !
.
, , ,
. ,
. ,
, .
, ,
.
. , .
, , ,
.
.
174
12.
. , .
, . , .
,
.
.
, , . , ,
. ,
.
, .
.
,
.
.
, - , . : .
, .
, :
, T3, , ,
. , .
, .
13
, .
?
, ?
176
13.
. , .
,
. , .
-,
. ,
. - ,
.
? ,
. 50%
25% .
: .
A, B,
, -, . ?
. . ,
, .
.
- :
. ,
.
.
.
( 20) ( 3), - 12. ,
. .
/ , 2:1 .
, 12
177
, ,
.
.
, .
, , . , ,
,
.
,
.
, . ,
.
, , .
. ,
. ,
, .
-
.
.
?
. :
.
, ,
, .
- ,
.
178
13.
,
.
?
1, , , .
( ). ,
, , .
, .
. 38 , 42 25 . .
, ,
50 ,
15/15/20.
,
. : B ; 100% .
,
, ,
.
, , ,
. ,
, . ,
,
1
179
.
,
, . -
. ,
.
, .
. ,
, .
.
, .
,
. , ,
.
14
. ,
, .
181
,
. . , : -
.
, ,
.
,
. , .
, .
,
.
,
? .
.
, , .
! : , .
. ,
.
.
: , .
, . ,
, , .
182
14. ,
?
.
Digi-comp I,
1964 12- . Digi-Comp I 1
.
. ,
.
.
,
( )
. , ,
, .
, !
,
; , .
, ,
2.
. , .
, .
, 6 .
. ,
. !
.
12-
1
, .
.
.
183
. ,
.
, ? ,
?
. .
( )
, ,
12- .
; ,
.
. .
: . ,
.
. . ; ,
. , , .
ECP-18
15- , ,
. .
, ECP-18.
.
. 15- ( ?)
1024 . ( , ,
.)
, ,
. , . ,
.
. ,
.
184
14. ,
, , .
, 1.
, . , , .
.
.
Digi-Comp , . ,
.
, , , - .
1, 5, 2, 0, 4 , : 204. 1, 0, 2, 1, 3 : 213
. !
15- ,
15 , 10 ,
,
1024 . (
!)
( ),
. ,
, .
, ,
. , , ! , 2 1.
5, 13!
!
,
, . !
, .
,
, ,
, . ,
,
1
. . .
185
. HLT. ,
. ,
, .
. , ,
!
, ,
, .
,
. ,
-, ,
. ,
, , ,
. ,
, !
,
. (! !)
,
. , : ! !
, . - .
, .
. , ,
, - , . , ,
.
. :
, , , (,
1967 ). ,
,
. .
, ,
.
? .
,
186
14. ,
. ,
, - .
. , ,
. ,
.
.
, , .
. ,
, .
.
, . ,
Teletype, 30 .
:
!
( ).
.
Digital Equipment Corporation,
PDP-8 PDP-10.
BAL-,
.
Cobol, .
, ,
. . , ,
.
, . 1970-
.
, , . ,
, . ,
187
, .
,
.
, - 1976 . ,
. .
,
.
,
.
:
-
. , .
, , ,
. , ,
.
,
. ,
15 .
. ,
. ,
, ; ,
, , .
,
. . . .
? ,
? , .
188
14. ,
, .
, .
.
,
.
: .
, . - ,
, ( )
.
,
.
.
, , . :
, ,
,
- .
?
, -
. , . -
.
- ,
.
, . !
. . . ,
! , ,
189
,
, .
, . .
. ,
. ,
.
, .
.
, , , .
.
, , ,
.
, ? ? ? ?
.
, . ,
10- , . ,
. , , , .
,
, , . .
190
14. ,
, .
.
,
. , ,
; . ; 5 .
, .
. . , . ,
.
/
.
.
, .
.
.
.
. , , .
TDD, , . .
, ; .
. , ,
.
, .
, .
191
, .
, ,
.
,
. . , !
. ,
.
, .
,
, .
.
, . ? ,
.
, . , , ,
.
, ,
.
, . , , , .
? ?
.
. . , , .
. ,
.
192
14. ,
.
. . .
.
, .
.
?
, , , . ,
. . .
.
.
, .
, . ,
, , , . ,
.
1978 Teradyne ,
. 80
M365. .
8- ,
1970- . , .
10, 25, 50 100 . ,
, . 100-
5 ,
1.
1
. ,
. , ,
. - .
,
. , . ,
. (
), . 1970- .
194
. , .
, , , .
; ,
, .
100-
. , , 10- () . ,
.
, .
. ,
,
. !
.
ED-402 vi.
, , .
50 .
. .
,
. ! .
, , .
.
,
, . , ,
. ,
.
.
, ,
.
195
,
. , .
. ,
, . .
,
. , .
, , . ?
. , ,
.
,
. , , ,
. .
, ,
.
.
,
.
. , : ,
. .
196
( ), .
, , .
1980- .
,
. ,
. ,
1970-,
. ,
.
, .
, ,
, .
-, .
. :
,
. ,
.
.
.
,
.
, . , ,
,
. .
.
197
, , ,
. .
CVS/SVN
CVS
,
. CVS ,
.
Attic , .
, Subversion .
.
, . SVN
.
2008 , .
,
. , ,
.
SVN, - ,
. ,
.
. git.
.
git
git 2008 . . ,
,
. . .1 . .2
, .
198
. .1 FitNesse
SVN. . ,
,
.
. .2
git. ,
199
. , ;
.
, , .
,
. , .
200
.
,
.
, , .
.
, .
- , .
git . , , . : git
.
IDE/
, , . , , .
,
1970- .
vi
, vi
. , vi ,
. vi,
, , .
vi Emacs Eclipse ,
.
vi. -
vi, . vi
, .
Java . ,
vi 10 , .
201
Emacs
Emacs , , .
lisp.
.
, , Emacs
(IDE),
.
.
1990- Emacs.
. ,
. 2000- IntelliJ IDE, .
Eclipse/IntelliJ
IntelliJ. .
Java, Ruby, Clojure, Scala, Javascript
. , ,
. IntelliJ
, .
Eclipse IntelliJ.
Emacs Java-. IDE,
,
.
,
Emacs, . , IntelliJ
. , ,
.
. , , . ,
202
.
, .
,
.
, .
TextMate
TextMate . ,
,
IntelliJ Eclipse. lisp- Emacs.
vi. ,
, .
TextMate ,
C++. Emacs,
C++ .
Pivotal Tracker. ,
/
. .
Lighthouse.
, Tracker.
.
.
, .
.
. (, , ).
.
,
, .
203
,
. , ,
.
.
, .
( 5 12 ) . !
, - .
/ , - .
,
, , Lighthouse
Tracker.
, . , ,
. ,
.
,
.
( ).
Jenkins. , ,
. , , .
.
: . ,
, , .
, . ,
204
, .
.
FitNesse ,
.
5 , .
, . ,
- .
- ,
.
. JUnit Java, rspec
Ruby, NUnit .Net, Midje Clojure CppUTest C C++.
, , .
1. . ,
IDE
; ,
.
. , CppUTest
TextMate command+M.
makefile, ,
. IntelliJ JUnit rspec,
.
NUnit Resharper.
2. / . ,
. ,
, .
,
205
, , .
3. .
, , ,
, .
4. . JUnit ,
;
.
,
. ,
. , .
5. .
, JUnit API
(assertions), Java
, .
IDE ,
.
API.
, .
- .
,
- ,
, . - ,
206
, , , ,
:
.
FitNesse
FitNesse.
, .
, .
FitNesse , -
.
. , .
FitNesse Java,
, , . Java,
C#/.NET, C, C++, Python, Ruby, PHP, Delphi .
FitNesse : Fit Slim. Fit ,
FitNesse . Slim
, FitNesse.
,
.
RobotFX Nokia. FitNesse, , .
RobotFX , Excel . Python,
, .
Green Pepper , FitNesse. confluence.
UML/MDA
207
Cucumber , Ruby, .
Cucumber Given/When/Then.
JBehave Cucumber. Java.
, , .
, , , . -
,
, .
, .
, , .
Selenium Watir.
UML/MDA
1990- , . , ,
, .
! , .
, , ;
.
208
,
.
.
UML.
,
. - (MDA,
Model Driven Architecture).
, . MDA
, .
. .
. , . . ,
( ).
?
, \n \r? , \n
(line feed), , \r (carriage return).
?
1960- 1970-
. ASR33 1 .
,
10 . ,
. , ,
.
,
.
.
,
. 72-
, ,
(\r = 0x0D);
1
http://en.wikipedia.org/wiki/ASR-33_Teletype
UML/MDA
209
72 ,
.
, . .
(\n = 0x0A),
.
, ASR33 \r\n. ,
100 .
\n\r,
,
. (0xFF) 1.
1970- , , UNIX
\n. DOS \r\n.
,
?
. ,
,
. ,
\r\n .
\r\n, \n\r .
. -
UML!
MDA ,
.
1
.
. 0xFF ,
. ,
. ,
, , , .
210
. , , .
, . , ,
.
.
MDA , , , Java
. .
.
,
. , .
,
,
.
, ,
.
. git , Tracker
, Jenkins ,
IntelliJ, XUnit FitNesse
.
Macbook Pro 2.8 Intel Core i7,
17- , 8 , 512 SSD
.
Cucumber, 207
PERT, 151
CVS, 197
RobotFX, 206
Eclipse, 201
Emacs, 201
SVN, 197
F
FitNesse, 206
G
Git, 197
Green Pepper, 206
T
TDD
, 87
, 92
, 25
, 91
, 90
, 90
TextMate, 202
IDE/, 200
IntelliJ, 201
UML, 207
J
JBehave, 207
Jenkins, 203
M
MDA, 207
V
Vi, 200
, 111
, 26
212
, 37
, 156
, 27
-, 168
, 196
, 101
, 148
, 197
, 134
, 135
, 137
, 27
, 120
, 38
, 176
, 178
, 176
, 177
, 178
, 99, 100
, 70
, 171
, 195
, 127
, 205
, 26
, 24
, 115, 125
, 137
, 138
, 139
, 83
-
(MDA), 208
, 93
, 204
, 119
, 73
, 157
, 108
, 107
, 122
, 203
, 20
, 151
, 151
, 142
, 207
, 128
, , 122
, 190
, 57
, 161
, 111
, 105
, 196
, 151
, 103
, 76
PERT, 151
, 157
, 148
, 157
, 148
, 147
, 151
, 152
, 72,
163
-
, 39, 117
, 30
, 139
, 196
, 152
, 136
, 91
, 208
, 155
, 74
, 140
, 72
, , 33
213
, 77
, 111
, 120
, 113
, 119
, 122
, 118
, 110
-
, 117
, 116
, 171
, 30
, 20
, 33, 168
, TTD, 90
, 102
, 190
, 22
, 136
, , 37
, 82
, 129
, 32
, 166
, 79
, 128
, 127
, 119
, 122
, 110
214
()
, 110
, 116
, 129
, , 107
, 107
, 20
, 105
, 108
, 107
, 142
, 90
, 140
, 195
, 38, 135
, 154
.
.
.
.
.
.
. , .
.
: ,
The Clean Coder: A Code of Conduct
for Professional Programmers
.
ISBN: 978-5-459-00858-6
: 464 .
: 2010
.
,
-,
.
.
.
: ,
. ,
. ,
.
,
.
.
,
;
.
.
.
.
,
.
,
,
.
Head First Software Development
. , .
ISBN: 978-5-459-00522-6
: 464 .
: 2011
:
, -
.
IT-,
,
.
:
,
,
,
.
,
Head First O'Reilly
,
.
Head First Design Patterns
. , . , . , .
ISBN: 978-5-459-00435-9
: 565 .
: 2011
-
,
.
.
,
() ,
.
,
.
.
, Head
First OReilly
,
.
-,
,
.
JavaScript
Head First JavaScript
.
ISBN: 978-5-459-00322-2
: 592 .
: 2011
,
-
HTML CSS
?
-
?
JavaScript!
,
, ,
.
: JavaScript:
;
-
, ,
;
JavaScript
.
,
:
java-
-,
.
?
!
?
?
? ,
?
!
!
www.piter.com/ePartners
www.piter.com,
,
( www.piter.com)
!
.
10% ,
, - c
. ,
, 5%
.
, , 500 ,
. Web.Money.
:
http://www.piter.com/book.phtml?978538800282
http://www.piter.com/book.phtml?978538800282&refer=0000
, 0000
WWW.PITER.COM
, ,
,
/ . , . ., . 29
./: (812) 7037373, 7037372; email: sales@piter.com
. , ., . 2/1, . 1, 6
./: (495) 23438-15, 97434-50; e-mail: sales@msk.piter.com
, .
: (812) 703/73/73. E/mail: fuganov@piter.com
.
: / (812) 703/73/72, (495) 974/34/50
.: (812) 7037373.
mail: kozin@piter.com
: www.piter.com; .: (812) 703-73-74
ICQ 413763617
!
.
./: (4232) 238212
email: bookbase@mail.primorye.ru
,
.: (3952) 200917, 241777
email: prodalit@irk.ru
http://www.prodalit.irk.ru
, , . , . 1
.: (4212) 360665, 339531
email: dkniga@mail.kht.ru
,
./: (3952) 252590
email: kkcbooks@bk.ru
http://www.kkcbooks.ru
,
.: (4212) 328551, : (4212) 328250
email: postmaster@worldbooks.kht.ru
,
.: (4212) 394960
email: zakaz@booksmirs.ru
, , . , . 3
.: (8182) 654134, 653879
email: marketing@avfkniga.ru
, , . , . 4
.: (4732) 267777
http://www.amital.ru
, ,
./: (4012) 215628, 6 56568
email: nshibkova@vester.ru
http://www.vester.ru
, ,
, .15
.: (846) 3312233
email: chaconne@chaccone.ru
,
. , . 58
.: (4732) 512893, 470081
email: manager@kmsvrn.ru
, , . , 424
./: (87934) 69309
email: rossy@kmw.ru
,
. , . 86
./: (3912) 273971
email: bookworld@public.krasnet.ru
,
.: (383) 3361026
: (383) 3361027
email: office@topkniga.ru
http://www.topkniga.ru
, ,
.: (843) 2723455
email: tais@bancorp.ru
,
. , . 12
./: (343) 3581898, 3581484
email: domknigi@k66.ru
,
. , . 1
./: (343) 228-10-70
e-mail: igm@lumna.ru
http://www.lumna.ru
,
. , . 124
.: (351) 2477403, 2477409,
2477416
email: zakup@intser.ru
http://www.fkniga.ru, www.intser.ru
:
: www.piter.com
: postbook@piter.com
: (812) 703/73/74
: 197198, /, / 127,
ICQ: 413763617
:
.
.
,
.
. : . Web-money USD
E-Gold, MoneyMail, INOCard, RBK Money (RuPay), USD Bets, Mobile Wallet
.
, ,
.
.
.
e-mail.
:
, , , , , email;
, , , , , ,
, ;
, , .