Практика: реальный код 3
Реальный код
Скорость
-
Ошибки
0
Время
0
c
l
a
s
s
U
s
e
r
S
e
r
v
i
c
e
{
a
s
y
n
c
c
r
e
a
t
e
U
s
e
r
(
d
a
t
a
)
{
i
f
(
!
t
h
i
s
.
v
a
l
i
d
a
t
e
(
d
a
t
a
)
)
t
h
r
o
w
n
e
w
E
r
r
o
r
(
"
I
n
v
a
l
i
d
"
)
;
r
e
t
u
r
n
a
w
a
i
t
t
h
i
s
.
a
p
i
.
p
o
s
t
(
"
/
u
s
e
r
s
"
,
d
a
t
a
)
;
}
}
ё
1
2
3
4
5
6
7
8
9
0
-
=
BackSpace
Tab
й
ц
у
к
е
н
г
ш
щ
з
х
ъ
\
Caps Lock
ф
ы
в
а
п
р
о
л
д
ж
э
Enter
Shift
я
ч
с
м
и
т
ь
б
ю
.
Shift
Ctrl
FN
Win
Alt
Alt
FN
Ctrl