BFT - рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкрд░реАрдХреНрд╖рдг

рд╢реБрдн рджреЛрдкрд╣рд░, рдЧреГрд╣рдгрд┐рдпреЛрдВ!

рдЫрд╡рд┐ рдЕрдкрдиреЗ рдЖрдИрдЯреА (рджрд┐рд▓рдЪрд╕реНрдк рдкрд░реАрдХреНрд╖рдг) рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рджрд┐рд▓рдЪрд╕реНрдк рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд░реЛрдорд╛рдВрдЪрдХ рдмрдирд╛рддреЗ рд╣реИрдВред
рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛:

рд╕реНрдЯреНрд░реАрдо рдкрд░реАрдХреНрд╖рдг (BFT - BusinessFlowTesting)

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

Bft рдлреНрд░реЗрдорд╡рд░реНрдХ

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

рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕рдВрд╕реНрдерд╛рдПрдБ:
рдЖрджреЗрд╢ рдХреА рд╕реНрдерд┐рддрд┐:
рдЙрддреНрдкрд╛рдж рдЖрдВрджреЛрд▓рди рдЧреНрд░рд╛рдл

рдЫрд╡рд┐

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

рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдЗрд╕ рдЧреНрд░рд╛рдл рдореЗрдВ рдПрдХ рд░реЗрдЦреАрдп рдкрде рд╣реИ, рдЬреЛ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред

рдЫрд╡рд┐

рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

рд▓реЗрдЦрди рдкрд░реАрдХреНрд╖рдг

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

рдЫрд╡рд┐

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

рдкрд░реАрдХреНрд╖рдг рд╕реНрд╡рдпрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
var SimpleScenario = BusinessGraph.GetScenario(CorrectSimpleData, DefaultControllData);BFTFramework.Run(SimpleScenario, CorrectSimpleData);
BusinessGraph рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ CorrectSimpleData рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ рд░реЗрдЦреАрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрде (Default DefaultControllData) рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдЧреНрд░рд╛рдл рдореЗрдВ рдЬреЛ рд╣рдо SimpleScenario рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
BFTFramework рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ CorrectSimpleData рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ред

рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг

рдЕрдм, рдпрджрд┐ рд╣рдо рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдбреЗрдЯрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХреЗрд╡рд▓ CorrectOtherData рдХреЗ рдЕрдиреНрдп рд╕реЗрдЯреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

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

рдХреБрд▓:


рдЖрд╡реЗрджрди рдХрд╛ рдХреНрд╖реЗрддреНрд░

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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ:

Source: https://habr.com/ru/post/In212567/


All Articles