5 рдореЗрдВ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╢реАрд░реНрд╖ 2020 рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдерд╛рдПрдБ

5 рдореЗрдВ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╢реАрд░реНрд╖ 2020 рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдерд╛рдПрдБ

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо 2020 рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рд╕реЗ рдмрд╕ рдХреБрдЫ рд╣реА рдорд╣реАрдиреЗ рджреВрд░ рд╣реИрдВ, рдпреЗ рдорд╣реАрдиреЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред рдпрд╣рд╛рдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЖрдиреЗ рд╡рд╛рд▓рд╛ рд╡рд░реНрд╖ 2020 рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдЬреАрд╡рди рдХреЛ рдХреИрд╕реЗ рдмрджрд▓ рджреЗрдЧрд╛!

рднрд╡рд┐рд╖реНрдп рдХрд╛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдпрд╣рд╛рдБ рд╣реИ!

рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХреЛрдб рд▓рд┐рдЦрдХрд░ рдФрд░ рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЖрд░реНрдЯрд┐рдлрд┐рд╢рд┐рдпрд▓ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕, рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдФрд░ рдбреАрдк рд▓рд░реНрдирд┐рдВрдЧ рдореЗрдВ рдкреНрд░рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрджрд░реНрд╢ рдмрджрд▓рд╛рд╡ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЗрди рддреАрди рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рдПрдХреАрдХрд░рдг рдХреЗ рд╕рд╛рде, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдРрд╕реЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕рдорд╛рдзрд╛рди рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ рдЬреЛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд╕реАрдЦрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдФрд░ рдкреИрдЯрд░реНрди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рдЖрдЗрдП рдХреБрдЫ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

рд╕рдордп рдХреЗ рд╕рд╛рде, рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдгрд╛рд▓рд┐рдпрд╛рдБ рдПрдХреАрдХрд░рдг рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдкрд░рддреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдИ рд╣реИрдВред рдбреЗрд╡рд▓рдкрд░реНрд╕ Python 3.6 рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ 1 рдпрд╛ 0 рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдирд░реА рд╡рд░реНрдЧреАрдХрд░рдг рдХрд░рддрд╛ рд╣реИред

рдмреЗрд╢рдХ, рд╣рдо рдПрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд░реНрдЧ рдмрдирд╛рдХрд░ рд╢реБрд░реБрдЖрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдЖрдпрд╛рдд рдПрдирдкреАрдкреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕реБрдиреНрди

X=np.array([[0,1,1,0],[0,1,1,1],[1,0,0,1]])
y=np.array([[0],[1],[1]])

рд╕рд┐рдЧреНрдореЙрдЗрдб рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдЧреВ рдХрд░рдирд╛:

def sigmoid ():
   return 1/(1 + np.exp(-x))
def derivatives_sigmoid ():
   return x * (1-x)

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рднрд╛рд░ рдФрд░ рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдореЙрдбрд▓ рдХрд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг:

epoch=10000
lr=0.1
inputlayer_neurons = X.shape[1]
hiddenlayer_neurons = 3
output_neurons = 1

wh=np.random.uniform(size=(inputlayer_neurons,hiddenlayer_neurons))
bh=np.random.uniform(size=(1,hiddenlayer_neurons))
wout=np.random.uniform(size=(hiddenlayer_neurons,output_neurons))
bout=np.random.uniform(size=(1,output_neurons))

рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╢реАрд░реНрд╖ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХрдВрдкрдиреА.рдпрд╛, рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдЖрдИ/рдПрдордПрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдирд┐рдпреБрдХреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдЙрдЯрдкреБрдЯ рд▓реЗрдпрд░ рдиреНрдпреВрд░реЙрди рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛

hidden_layer_input1=np.dot(X,wh)
hidden_layer_input=hidden_layer_input1 + bh
hiddenlayer_activations = sigmoid(hidden_layer_input)
output_layer_input1=np.dot(hiddenlayer_activations,wout)
output_layer_input= output_layer_input1+ bout
output = sigmoid(output_layer_input)

рдХреЛрдб рдХреА рдЫрд┐рдкреА рд╣реБрдИ рдкрд░рдд рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рдХреА рдЧрдгрдирд╛

E = y-output
slope_output_layer = derivatives_sigmoid(output)
slope_hidden_layer = derivatives_sigmoid(hiddenlayer_activations)
d_output = E * slope_output_layer
Error_at_hidden_layer = d_output.dot(wout.T)
d_hiddenlayer = Error_at_hidden_layer * slope_hidden_layer
wout += hiddenlayer_activations.T.dot(d_output) *lr
bout += np.sum(d_output, axis=0,keepdims=True) *lr
wh += X.T.dot(d_hiddenlayer) *lr
bh += np.sum(d_hiddenlayer, axis=0,keepdims=True) *lr

рдЖрдЙрдЯрдкреБрдЯ:

print (output)

[[0.03391414]
[0.97065091]
[0.9895072 ]]

рдЬрдмрдХрд┐ рдирд╡реАрдирддрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдФрд░ рдХреЛрдбрд┐рдВрдЧ рддрдХрдиреАрдХреЛрдВ рд╕реЗ рдЕрд╡рдЧрдд рд░рд╣рдирд╛ рд╣рдореЗрд╢рд╛ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╣реИ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдХрдИ рдирдП рдЯреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЙрдирдХреЗ рдРрдкреНрд╕ рдХреЛ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред

2020 рдореЗрдВ, рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрди 5 рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреВрд▓ рдХреЛ рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЪрд╛рд╣реЗ рд╡реЗ рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

1. рдкреНрд░рд╛рдХреГрддрд┐рдХ рднрд╛рд╖рд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг (рдПрдирдПрд▓рдкреА)

рдЪреИрдЯрдмреЙрдЯ рджреНрд╡рд╛рд░рд╛ рдЧреНрд░рд╛рд╣рдХ рд╕реЗрд╡рд╛ рдХреЛ рд╕рд╢рдХреНрдд рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рде, рдПрдирдПрд▓рдкреА рдЖрдзреБрдирд┐рдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рд╡реЗ рдЖрд╡реЗрджрди рдХрд░рддреЗ рд╣реИрдВ рдПрдирдПрд▓рдЯреАрдХреЗ рдЯреВрд▓рдХрд┐рдЯ рдкрд╛рдЗрдереЙрди рдХреА рддрд░рд╣ рдПрдирдПрд▓рдЯреАрдХреЗ рдПрдирдПрд▓рдкреА рдХреЛ рдЪреИрдЯрдмреЙрдЯреНрд╕, рдбрд┐рдЬрд┐рдЯрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдФрд░ рдбрд┐рдЬрд┐рдЯрд▓ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред 2020 рдХреЗ рдордзреНрдп рддрдХ рдпрд╛ рдЬрд▓реНрдж рд╣реА, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдПрдирдПрд▓рдкреА рдЦреБрджрд░рд╛ рд╡реНрдпрд╛рдкрд╛рд░ рд╕реЗ рд▓реЗрдХрд░ рд╕реНрд╡рд╛рдпрддреНрдд рд╡рд╛рд╣рдиреЛрдВ рдФрд░ рдШрд░ рдФрд░ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдЙрдкрдХрд░рдгреЛрдВ рддрдХ рд╣рд░ рдЪреАрдЬ рдкрд░ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рд╕рд░реНрд╡реЛрддреНрддрдо рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдЯреВрд▓ рдФрд░ рддрдХрдиреАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП, рдЖрдк рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдзреНрд╡рдирд┐-рд╕рдВрдЪрд╛рд▓рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рд▓реЗрдХрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдореЗрдиреВ, рднрд╛рд╡рдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рд╕рдВрджрд░реНрдн рдкрд╣рдЪрд╛рди, рднрд╛рд╡рдирд╛ рдФрд░ рдбреЗрдЯрд╛ рдкрд╣реБрдВрдЪ рддрдХ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рдПрдирдПрд▓рдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдбреЗрд▓реЙрдЗрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрджреНрдзреГрдд рдЖрдИрдбреАрд╕реА рдбреЗрдЯрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕рднреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗ рдФрд░ рд╡реНрдпрд╡рд╕рд╛рдп 430 рддрдХ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ $2020 рдмрд┐рд▓рд┐рдпрди рддрдХ рдХрд╛ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

2. рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рд░реЗрд╕реНрдЯ рдПрдкрд┐рд╕ рдХреА рдЬрдЧрд╣ рд▓реЗ рд░рд╣рд╛ рд╣реИ

рдореЗрд░реА рдлрд░реНрдо рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЬреЛ рдПрдХ рдСрдлрд╢реЛрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрдВрдкрдиреА рд╣реИ, REST API рдЕрдкрдиреА рдзреАрдореА рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬрдЧрдд рдкрд░ рдЕрдкрдирд╛ рдкреНрд░рднреБрддреНрд╡ рдЦреЛ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдХрдИ рдпреВрдЖрд░рдПрд▓ рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рдирдпрд╛ рдЪрд▓рди рд╣реИ рдФрд░ рд░реЗрд╕реНрдЯ-рдЖрдзрд╛рд░рд┐рдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬреЛ рдПрдХ рд╣реА рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдХрдИ рд╕рд╛рдЗрдЯреЛрдВ рд╕реЗ рд╕рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдбреЗрдЯрд╛ рдЦреАрдВрдЪрддрд╛ рд╣реИред рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдРрдк рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдмрдирд╛рддрд╛ рд╣реИред

рдЬрдм рдЖрдк рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП GraphQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЕрдкрдиреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХреМрд╢рд▓ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ REST рдПрдкреАрдЖрдИ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдХреЛрдбрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдпрд╣ рдХреБрдЫ рд╕рд░рд▓ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рднреАрддрд░ рдЬрдЯрд┐рд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕реЗ рдХрдИ рдирдВрдмрд░ рдХреЗ рд╕рд╛рде рднреА рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдмреИрдХрдПрдВрдб (BaaS) рдРрд╕реА рдкреЗрд╢рдХрд╢реЗрдВ рдЬреЛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП Python, Node.js, C++ рдФрд░ Java рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИрдВред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, GraphQL рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рдореБрджрд╛рдп рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:

  • рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд▓рд╛рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рди рд╣реЛрдиреЗ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛
  • рдХреЛрдб рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ
  • рдСрдЯреЛ рдЬрдирд░реЗрдЯрд┐рдВрдЧ рдПрдкреАрдЖрдИ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг
  • рд╡рд┐рд╕реНрддреГрдд рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ
  • рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдСрдкрд░реЗрд╢рди рдЬреЛрдбрд╝реЗрдВ: рд╕рд░реНрд╡рд░ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд╕рджрд╕реНрдпрддрд╛"ред

3. рдХрдо/рдХреЛрдИ рдХреЛрдб рдирд╣реАрдВ

рд╕рднреА рдХрдо рдХреЛрдб рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рдХрдИ рд▓рд╛рдн рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реЗ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдпрдерд╛рд╕рдВрднрд╡ рдХреБрд╢рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрдо рдпрд╛ рдмрд┐рдирд╛ рдХреЛрдб рд╡рд╛рд▓рд╛ рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреЛрдб рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдмрдбрд╝реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЧреИрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рднреА рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЬрдЯрд┐рд▓ рдЙрддреНрдкрд╛рдж рдмрдирд╛рдиреЗ рдФрд░ рдЖрдзреБрдирд┐рдХ рд╡рд┐рдХрд╛рд╕ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдореБрддрд╛рдмрд┐рдХ TechRepublic, рдиреЛ/рд▓реЛ-рдХреЛрдб рдЯреВрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡реЗрдм рдкреЛрд░реНрдЯрд▓, рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕рд┐рд╕реНрдЯрдо, рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдЕрдиреНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдХрдо рдХреЛрдб рд╡рд╛рд▓реЗ рдЯреВрд▓ рдХрд╛ рдмрд╛рдЬрд╝рд╛рд░ 15 рддрдХ $2020 рдмрд┐рд▓рд┐рдпрди рддрдХ рдмрдврд╝ рдЬрд╛рдПрдЧрд╛ред рдпреЗ рдЯреВрд▓ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд▓реЙрдЬрд┐рдХ, рдбреЗрдЯрд╛ рдлрд╝рд┐рд▓реНрдЯрд░, рдЖрдпрд╛рдд рдФрд░ рдирд┐рд░реНрдпрд╛рдд рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдЬреИрд╕реА рд╣рд░ рдЪреАрдЬрд╝ рдХреЛ рд╕рдВрднрд╛рд▓ рд░рд╣реЗ рд╣реИрдВред рдпрд╣рд╛рдВ 2020 рдореЗрдВ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рд▓реЛ/рдиреЛ рдХреЛрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИрдВ:

  • рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдкреЙрд╡рд░рдПрдкреНрд╕
  • рдореЗрдВрдбрд┐рдХреНрд╕
  • рдЖрдЙрдЯрд╕рд┐рд╕реНрдЯрдо
  • рдЬрд╝реЛрд╣реЛ рдирд┐рд░реНрдорд╛рддрд╛
  • рд╕реЗрд▓реНрд╕рдлреЛрд░реНрд╕ рдРрдк рдХреНрд▓рд╛рдЙрдб
  • рддреНрд╡рд░рд┐рдд рдЖрдзрд╛рд░
  • рд╡рд╕рдВрдд рдХрд╛ рдмреВрдЯ

4. 5G рд╡реЗрд╡

5рдЬреА рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдореЛрдмрд╛рдЗрд▓/рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ, рд╡реЗрдм рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдкрд░ рднреА рдХрд╛рдлреА рдЕрд╕рд░ рдбрд╛рд▓реЗрдЧреАред рдЖрдЦрд╝рд┐рд░рдХрд╛рд░, IoT рдЬреИрд╕реА рддрдХрдиреАрдХ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ 5G рдХреЗ рд╕рд╛рде рд╣рд╛рдИ-рд╕реНрдкреАрдб рд╡рд╛рдпрд░рд▓реЗрд╕ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдирдХреА рдкреВрд░реА рдХреНрд╖рдорддрд╛ рд╕реЗ рд▓рд╛рдн рдЙрдард╛рдПрдЧрд╛ред

рд╕рд╛рде рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдореЗрдВ рдбрд┐рдЬрд┐рдЯрд▓ рд░реБрдЭрд╛рди, рдореЛрдЯреЛрд░реЛрд▓рд╛ рдХреЗ рдЙрддреНрдкрд╛рдж рдЙрдкрд╛рдзреНрдпрдХреНрд╖ рдбреИрди рдбреЗрд░реА рдиреЗ рдХрд╣рд╛ рдХрд┐ "рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, 5G рддреЗрдЬреА рд╕реЗ рдбреЗрдЯрд╛ рд╢реЗрдпрд░рд┐рдВрдЧ, рдЙрдЪреНрдЪ рдмреИрдВрдбрд╡рд┐рдбреНрде рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛, рдФрд░ рдореМрдЬреВрджрд╛ рд╡рд╛рдпрд░рд▓реЗрд╕ рддрдХрдиреАрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдлреЛрди рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЛ 10 рдЧреБрдирд╛ рддреЗрдЬ рдХрд░ рджреЗрдЧрд╛ред"

рдЗрд╕ рдЖрд▓реЛрдХ рдореЗрдВ, рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХрдВрдкрдирд┐рдпрд╛рдВ рдЖрдзреБрдирд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ 5рдЬреА рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдВрдЧреАред 5G рд░реЛрд▓рдЖрдЙрдЯ рддреЗрдЬреА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ, 20 рд╕реЗ рдЕрдзрд┐рдХ рдСрдкрд░реЗрдЯрд░реЛрдВ рдиреЗ рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХреА рдШреЛрд╖рдгрд╛ рдХреА рд╣реИред рддреЛ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдм рдЙрдЪрд┐рдд рд▓реЗрдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗ рдПрдкреАрдЖрдИ 5G рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП. рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧреА:

  • рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рд╕реБрд░рдХреНрд╖рд╛, рд╡рд┐рд╢реЗрд╖рдХрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдПред
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рдЪрд╛рди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред
  • рдХрдо рд╡рд┐рд▓рдВрдмрддрд╛ рджрд░ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдПрдБ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
  • рдПрдЖрд░/рд╡реАрдЖрд░ рд╕рдХреНрд╖рдо рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛ред

5. рд╕рд╣рдЬ "рдкреНрд░рдорд╛рдгреАрдХрд░рдг"

рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгреАрдХрд░рдг рддреЗрдЬреА рд╕реЗ рдПрдХ рдкреНрд░рднрд╛рд╡реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирддреА рдЬрд╛ рд░рд╣реА рд╣реИред рдкрд░рд┐рд╖реНрдХреГрдд рддрдХрдиреАрдХ рди рдХреЗрд╡рд▓ рд╣реИрдХрд┐рдВрдЧ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдкреНрд░рддрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ, рдмрд▓реНрдХрд┐ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреНрд╡рд╛рдВрдЯрдо рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред рд▓реЗрдХрд┐рди рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рд╛рдЬ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдмрд╛рдпреЛрдореЗрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдЪреЗрд╣рд░реЗ рдХреА рдкрд╣рдЪрд╛рди рдЬреИрд╕реЗ рдирдП рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдмрд╣реБрддрд╛рдпрдд рджреЗрдЦреА рдЬрд╛ рд░рд╣реА рд╣реИред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рд╣реИрдХрд░реНрд╕ рдСрдирд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рдЪрд╛рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рдвреВрдВрдв рд░рд╣реЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреЗ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЛ рдЕрдВрдЧреВрдареЗ рдпрд╛ рдЙрдВрдЧрд▓реА рдХреЗ рдирд┐рд╢рд╛рди рдпрд╛ рдЪреЗрд╣рд░реЗ рдХреЗ рд╕реНрдХреИрди рдХреЗ рд╕рд╛рде рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рдЖрджреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдирдИ рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рд╕рд╛рде рд╣реА рд╕рд╛рдЗрдмрд░ рдЪреЛрд░реА рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рднреА рдХрдо рд╣реЛ рдЬрд╛рдПрдЧреАред рдпрд╣рд╛рдВ рдПрд╕рдПрд╕рдПрд▓ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд╕рд╛рде рдХреБрдЫ рдмрд╣реБ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЙрдкрдХрд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВред

  • рд╕реЙрдлреНрдЯ рдЯреЛрдХрди рдЖрдкрдХреЗ рд╕реНрдорд╛рд░реНрдЯрдлрд╝реЛрди рдХреЛ рдмрд╣реБ-рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгрдХреЛрдВ рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред
  • рдИрдЧреНрд░рд┐рдб рдкреИрдЯрд░реНрди рдЙрджреНрдпреЛрдЧ рдореЗрдВ рдкреНрд░рдорд╛рдгрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рд░реВрдк рд╣реИред
  • рд╡реНрдпрд╡рд╕рд╛рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╣реИрдВ: RSA SecurID Access, OAuth, Ping Identity, Authx, рдФрд░ Aerobaseред

рднрд╛рд░рдд рдФрд░ рд╕рдВрдпреБрдХреНрдд рд░рд╛рдЬреНрдп рдЕрдореЗрд░рд┐рдХрд╛ рдореЗрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХрдВрдкрдирд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рдЙрддреНрдХреГрд╖реНрдЯ рдЖрд╡рд╛рдЬ, рдЪреЗрд╣рд░рд╛, рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдмрд╛рдпреЛрдореЗрдЯреНрд░рд┐рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдЖрдИ рдореЗрдВ рдкреНрд░рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдмрд╛рдпреЛрдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╡рд┐рдЬреНрдЮрд╛рди рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рд╢реЛрдз рдХрд░ рд░рд╣реА рд╣реИрдВред рдЕрдм, рдЖрдк рдбрд┐рдЬрд┐рдЯрд▓ рдЪреИрдирд▓ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдВрдбрдиреЛрдЯреНрд╕

рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ 2020 рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХрдо рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХреА рдЧрддрд┐ рддреЗрдЬ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЙрдкрд▓рдмреНрдз рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛. рдЕрдВрддрддрдГ, рдпрд╣ рдкреНрд░рдЧрддрд┐ рдПрдХ рдирдП рдбрд┐рдЬрд┐рдЯрд▓ рдпреБрдЧ рдХреА рдУрд░ рдЕрдЧреНрд░рд╕рд░ рдПрдХ рдЬреАрд╡рдВрдд рджреБрдирд┐рдпрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧреАред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ