рдЕрдЪреНрдЫреЗ рдХрд╛ рджреБрд╢реНрдорди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИ

рдЪрд┐рддреНрд░ 12

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

SelfTester


рд╣рдо C, C ++, C # рдФрд░ Java рдХреЗ рд▓рд┐рдП PVS-Studio рд╕реНрдЯреИрдЯрд┐рдХ рдХреЛрдб рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд╕рдВрд╡рд░реНрдзрди рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЖрдВрддрд░рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд╛рдореВрд╣рд┐рдХ рд░реВрдк рд╕реЗ рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдорд░реНрдерд┐рдд рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХрд╛ рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╣реИ, рдФрд░ рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЗрд╕ рд╕рдордп, рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдХреНрд░рдорд╢рдГ C \ C ++, C # рдФрд░ Java рдХреЗ рд▓рд┐рдП рддреАрди рдЖрдВрддрд░рд┐рдХ рд╕реЗрд▓реНрдлрд╕реНрдЯрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдЖрдЧреЗ, рдореИрдВ C \ C ++ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП SelfTester рдХреЗ рд╡рд┐рдВрдбреЛрдЬ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рдЗрд╕реЗ рдХреЗрд╡рд▓ SelfTester рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдкрд░реАрдХреНрд╖рдХ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдХрддрд╛рд░ рдореЗрдВ рдкрд╣рд▓рд╛ рдерд╛, рдпрд╣ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рдФрд░ рд╕рдмрд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИред

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

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

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

рддреЛ, рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХрд╛ рдХрд╛рдо рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдкреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ (рд╡реИрд╕реЗ, рд╕реА / рд╕реА ++ рдХреЗ рд▓рд┐рдП рдЙрдирдореЗрдВ рд╕реЗ 120 рд╕реЗ рдЕрдзрд┐рдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИрдВ)ред рдкреВрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ (рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2010 рд╕реЗ рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ 2019 рддрдХ) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рдиреЛрдЯ : рдореИрдВ рд╕рдорд╛рдзрд╛рди рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░ рджреВрдВрдЧрд╛, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрдирд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдкреНрд░рдерд╛рдЧрдд рд╣реИред

SelfTester рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

рдЪрд┐рддреНрд░ 3

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

рдЧреНрд░реЗ "рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ" рдирд┐рд╢рд╛рди рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдорд╛рдзрд╛рди рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдЪрдпрдирд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреВрд▓ рдореЗрдВ рдХреБрдЫ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рдПрдХ рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ рдЬреЛ рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рдорд╛рдзрд╛рди рдХреЛ Visual Studio рдХреЗ рд╕рднреА рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг "smart_ptr_check.sln" рд╣реИ (рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред

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

SelfTester рдХрд╛рдо рдХреЗ рдкреНрд░рд╕реНрддреБрдд рдкрд░рд┐рдгрд╛рдо рд╣рдореЗрд╢рд╛ html-рд░рд┐рдкреЛрд░реНрдЯ (рдЕрдВрддрд░ рд▓реЙрдЧ) рдореЗрдВ рджреЛрд╣рд░рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред

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

рдЧрддрд┐ рдХреНрдпреЛрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ:

  1. рд░рд╛рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рджреМрд░рд╛рди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдкрд░реАрдХреНрд╖рдг рдЬрд┐рддрдиреА рддреЗрдЬрд╝реА рд╕реЗ рдкрд╛рд╕ рд╣реЛрдВрдЧреЗ, рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред рдФрд░ рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХрд╛ рдФрд╕рдд рдкрд░рд┐рдЪрд╛рд▓рди рд╕рдордп рд╡рд░реНрддрдорд╛рди рдореЗрдВ 2 рдШрдВрдЯреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ;
  2. рджрд┐рди рдХреЗ рджреМрд░рд╛рди рд╕реЗрд▓реНрдлрд╕реНрдЯрд░ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╕рдордп, рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рдХрдо рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╢реНрд░рдо рдЙрддреНрдкрд╛рджрдХрддрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред

рдпрд╣ рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХреЗ рдХрд╛рдо рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдереА рдЬрд┐рд╕рдиреЗ рдЗрд╕ рдмрд╛рд░ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ред

рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдореЗрдВ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ


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

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

рдЕрдиреБрд╕реВрдЪрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛ рд╕реНрддрд░реЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рд╕рдорд╛рдзрд╛рди рд╕реНрддрд░ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ PVS-Studio_Cmd.exe рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ .sln рд╕рдорд╛рдзрд╛рди рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред PVS-Studio_Cmd.exe рдХреЗ рдЕрдВрджрд░ (рд╕реНрд░реЛрдд рдХреЛрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд╕реНрддрд░ рдкрд░) рдПрдХ рд╣реА рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рдбрд┐рдЧреНрд░реА рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░рд╡рд╛рдж рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рдеред

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

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

рдиреЛрдЯ : рдЖрдЧреЗ рд╣рдо рдЗрд╕ рдмрд╛рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХрд╛рд░реНрдп рдХреЛ рд╕рдорд╛рдирддрд╛ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбрд┐рдЧреНрд░реА рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

LimitedConcurrencyLevelTaskScheduler рдЕрдиреБрд╕реВрдЪрдХ рдХреЛ System.Threading.Tasks.TaskSaskuler рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ рдФрд░ ThreadPool рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕рдорд╛рдирд╛рдВрддрд░рддрд╛ рдХрд╛ рдЕрдзрд┐рдХрддрдо рд╕реНрддрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╖реНрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдкрджрд╛рдиреБрдХреНрд░рдо:

LimitedConcurrencyLevelTaskScheduler : PausableTaskScheduler { .... } PausableTaskScheduler: TaskScheduler { .... } 

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

рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╢рд░реНрддреЗрдВ


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

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

рд▓реЗрдХрд┐рди рдЬрдм рдХрдИ рдЫреЛрдЯреЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдорд╛рдзрд╛рди рдмрдбрд╝рд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ 50 рдлрд╛рдЗрд▓реЗрдВ (рдЕрдзрд┐рдХрддрдо рдЖрда рдзрд╛рдЧреЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ), рдФрд░ рдЕрдиреНрдп рддреАрди рдореЗрдВ рддреАрди, рдЪрд╛рд░ рдФрд░ рдкрд╛рдВрдЪ рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ 20 рдереНрд░реЗрдбреНрд╕ (8 + 3 + 4 + 5) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╕рдордп рдФрд░ рд╕рдордЧреНрд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрдореА рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВред

рдиреЛрдЯ : рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдбрд╝рдЪрди, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрднреА рднреА рдбрд┐рд╕реНрдХ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рд╣реИ, рдкреНрд░реЛрд╕реЗрд╕рд░ рдирд╣реАрдВред

рд╢реЛрдзрди


рдПрдХ рд╕реБрдзрд╛рд░ рдЬреЛ рдЦреБрдж рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ, рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддреБрдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рдХреА рд░реИрдВрдХрд┐рдВрдЧ рд╣реИред рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА "рд╕рд╣реА" рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЬрдорд╛ рдХрд░рдХреЗ рдПрдХ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдереНрд░реЗрдбреНрд╕ (32) рдХреА рджреА рдЧрдИ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЗрд╖реНрдЯрддрдо рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦреЗрдВ, рдЬрдм рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдирд┐рдореНрди рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЪрд╛рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: 50, 3, 4, рдФрд░ 5. рдПрдХ рдХрд╛рд░реНрдп рдЬреЛ рддреАрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рд╢рд╛рдпрдж рдЬрд▓реНрдж рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдПрдХ рд╕рдорд╛рдзрд╛рди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╖реНрдЯрддрдо рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЖрда рдпрд╛ рдЕрдзрд┐рдХ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ (рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рдЖрда рдЙрдкрд▓рдмреНрдз рдзрд╛рд░рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдлрд┐рд░ рдХреБрд▓ рдореЗрдВ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 25 рдзрд╛рдЧреЗ (8 + 8 + 4 + 5) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд╛рдд рдзрд╛рдЧреЗ рдЕрднреА рднреА рдЕрдкреНрд░рдпреБрдХреНрдд рдЫреЛрдбрд╝ рджрд┐рдП рдЧрдП рдереЗред рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рдФрд░ рд╢реЛрдзрди рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЙрдарддрд╛ рд╣реИ, рд╕рдорд╛рдзрд╛рди рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рдереНрд░реЗрдбреНрд╕ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рджрд░рдЕрд╕рд▓, рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЖрдк рдПрдХ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХрдИ рд╕рдорд╛рдзрд╛рди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рднреА 32 рдереНрд░реЗрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдФрд░ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рддреАрди рдФрд░ рдЪрд╛рд░ рдлрд╛рдЗрд▓реЗрдВред рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЕрдкреНрд░рдпреБрдХреНрдд рдереНрд░реЗрдбреНрд╕ рдореЗрдВ "рдЕрдВрддрд░" рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ 32 (8 + 8 + 4 + 5 + 3 + 4 ) рд╣реЛрдВрдЧреЗред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрди рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рднреА рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред рд╕рдм рдХреБрдЫ рдПрдХ рджрд┐рди рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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

рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЛ рдкрд░рд┐рд╖реНрдХреГрдд рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рдерд╛: рдЙрд╕реЗ 32 рдереНрд░реЗрдб рдХрд╛ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╡рдЬрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдзрд╛рди рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЦрд╛рдирд╛ред рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдПрдХ рд╕рд╛рде рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдзрд╛рдЧреЗ рдХреЗ рдЖрд╡рдВрдЯрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

рдЕрдВрдд рдореЗрдВ, рд╕рднреА рдкреВрд▓ рд╕рдорд╛рдзрд╛рди (MSBuild API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореВрд▓реНрдпрд╛рдВрдХрди) рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдФрд░ рд╕рдорд╛рдзрд╛рди рднрд╛рд░ (рд╕реНрд░реЛрдд рдХреЛрдб рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрджрдо рдЙрдард╛рдпрд╛ред

рдкрд░рд┐рдгрд╛рдо


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЗрддрдиреЗ рд▓рдВрдмреЗ рдкрд░рд┐рдЪрдп рдХреЗ рдмрд╛рдж, рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рдерд╛ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╢реВрдиреНрдп рдерд╛ред

рдЪрд┐рддреНрд░ 15

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рд╕реБрдзрд╛рд░ рд╕рд░рд▓ рдФрд░ рддреНрд╡рд░рд┐рдд рдереЗред

рдЦреИрд░, рдЕрдм, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, "рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдПрдБ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рдм рд╣реИред

рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ


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

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

рдФрд░ рдлрд┐рд░ ...

рдЪрд┐рддреНрд░ 5

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

рдЪрд┐рддреНрд░ 8

рдЗрд╕ рдмрд╛рд░ рдХреЗ рдвреЗрд░ рдореЗрдВ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдереА - xml рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ред рд╕рдВрднрд╡рддрдГ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ Proto_IRC.vcxproj (рдЗрд╕рдХреА xml- рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡) рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдХреБрдЫ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╣реА рд╣реБрдЖ, рдЗрд╕рд▓рд┐рдП XmlTextReader рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред

рд╕рдордп рдХреА рдХрд╛рдлреА рдХрдо рдЕрд╡рдзрд┐ рдореЗрдВ рджреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдиреЗ рд╣рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдХрд╣рд╛, SelfTester рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдмрд╣реБрдд рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ: рдЬрд┐рд╕ рдХреЛрдб рдкрд░ рддреНрд░реБрдЯрд┐ рд╣реБрдИ, рдЙрд╕рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд╡рдпрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ ( PVS-Studio_Cmd.exe ) рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реАрд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреА рдУрд░ рдзреНрдпрд╛рди рдЧрдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдореЗрдВ рдХреЛрдИ рд╕рдорд╛рди рдмреВрдВрджреЗрдВ рдирд╣реАрдВ рд╣реБрдИрдВред

рдЗрд╕ рдмреАрдЪ, SelfTester рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЯрд┐рдХрдЯ рдХреЛ рдирдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рднрд░ рджрд┐рдпрд╛ рдЧрдпрд╛:

рдЪрд┐рддреНрд░ 9

рдФрд░ рдлрд┐рд░ рд╕реЗ XmlException ред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред SelfTester рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

  1. рдирд┐рд░реНрдгрдп рднрд╛рд░ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЧрдгрдирд╛ рдХреЗ рджреМрд░рд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди: рдПрдХ рдирдпрд╛ рдХрджрдо рдЬреЛ рд╢реБрд░реВ рдореЗрдВ рд╕рдВрджреЗрд╣ рдкреИрджрд╛ рдХрд░рддрд╛ рдерд╛;
  2. рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛: рд╕рддреНрдпрд╛рдкрди рд╕реЗ рдкрд╣рд▓реЗ рддреБрд░рдВрдд рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ (рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЕрдВрддрд░ рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ) рдФрд░ рдХрд╛рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП;
  3. рд╕рддреНрдпрд╛рдкрди рдХреЗ рджреМрд░рд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди: рдбреАрдмрдЧ рдХрд┐рдП рдЧрдП рдереНрд░реЗрдб-рд╕реБрд░рдХреНрд╖рд┐рдд рддрдВрддреНрд░, рдЬреЛ PVS-Studio_Cmd.exe рд╕реЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
  4. рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ (рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрджрд░реНрдн .vcxproj рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдореВрд▓ рд╕рдВрджрд░реНрдн рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде) рдХреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЕрдВрддрд┐рдо рдЪрд░рдг, рдЬреЛ рдЕрдиреНрдп рддрдВрддреНрд░реЛрдВ рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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

рдлрд┐рд░, рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕реНрд░реЛрдд рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдереЗред

рджрд░реНрдж


рдЕрдЧрд▓реЗ рдорд╣реАрдиреЗ, рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рд╕рдордп-рд╕рдордп рдкрд░ рдЧрд┐рд░рддрд╛ рд░рд╣рд╛ред рдЯрд┐рдХрдЯ рдХреЛ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рднрд░рд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдЗрд╕ рдбреЗрдЯрд╛ рдХрд╛ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреНрд░реИрд╢ рд╕рднреА рд╕рдорд╛рди XmlException рдХреЗ рд╕рд╛рде рдереЗред рдХрднреА-рдХрднреА рдХреБрдЫ рдФрд░ рднреА рд╣реЛрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди PVS-Studio_Cmd.exe рд╕реЗ рд╕рдорд╛рди рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреЛрдб рдкрд░ред

рдЪрд┐рддреНрд░ 1

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

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

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

рдЕрдВрдд рдореЗрдВ, рд╣рдорд╛рд░реА рддреАрд╕рд░реА рдЧрд▓рддреА ред рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдЖрдиреЗ рдФрд░ рдЙрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдиреЗ рддрдХ рдХрд┐рддрдирд╛ рд╕рдордп рдмреАрдд рдЪреБрдХрд╛ рд╣реИ? рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд╣реАрдВ, рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЧрд┐рдиреЗрдВред рдЗрд╕ рдШрдЯрдирд╛ рдХреЛ 09/17/2018 рдХреЛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ 02/20/2019 рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╡рд╣рд╛рдБ 40 рд╕реЗ рдЕрдзрд┐рдХ (рдЪрд╛рд▓реАрд╕) рд╕рдВрджреЗрд╢ рд╣реИрдВред рджреЛрд╕реНрддреЛрдВ, рдпрд╣ рдмрд╣реБрдд рд╕рдордп рд╣реИ! рд╣рдордиреЗ рдЦреБрдж рдХреЛ рдкрд╛рдВрдЪ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдИрдЯреА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА ред рдЙрд╕реА рд╕рдордп (рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ), рд╣рдо рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2019 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рдереЗ, рдЬрд╛рд╡рд╛ рднрд╛рд╖рд╛ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП, MISRA C / C ++ рдорд╛рдирдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, C # рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛, рд╕рдореНрдореЗрд▓рдиреЛрдВ рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рднрд╛рдЧ рд▓рд┐рдпрд╛, рд▓реЗрдЦреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд▓рд┐рдЦрд╛, рдЖрджрд┐ред рдФрд░ рдЗрди рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмреЗрд╡рдХреВрдл рдЧрд▓рддреА SelfTester рдХреЗ рдХрд╛рд░рдг рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рдордп рдирд╣реАрдВ рдорд┐рд▓рд╛ред

рдирд╛рдЧрд░рд┐рдХ, рд╣рдорд╛рд░реА рдЧрд▓рддрд┐рдпреЛрдВ рд╕реЗ рд╕реАрдЦрддреЗ рд╣реИрдВ рдФрд░ рдРрд╕рд╛ рдХрднреА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рд╣рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдм рдХреБрдЫ рд╣реИред

рдЪрд┐рддреНрд░ 17

рдмреЗрд╢рдХ, рдпрд╣ рдПрдХ рдордЬрд╛рдХ рд╣реИ, рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рдереА :)

рдмрд┐рдВрдЧреЛ!


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

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

рдЪрд┐рддреНрд░ 16

рд▓реЗрдХрд┐рди рддрдм рд╡рд╣ рдЪрд▓реА рдЧрдИ рдереАред

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

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

рдЪрд┐рддреНрд░ 4

рдЬрд┐рд╕рдХреЗ рдмрд╛рдж SelfTester рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрддрд╛ рд╣реИ ред рдареАрдХ рд╣реИ, рдкрд╣рд▓реЗ, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рдЦреБрдж рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛, рдкрд░реАрдХреНрд╖рдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ред

рдбреАрдмреНрд░реАрдлрд┐рдВрдЧ рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖


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

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХреА рдЦреЛрдЬ рдХреЗ рджреМрд░рд╛рди рд╣рдорд╛рд░реА рдореБрдЦреНрдп рдЧрд▓рддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЖрддреНрдо-рдзреНрд╡рдЬреАрдХрд░рдг рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд╣рдо рд▓реЛрдЧ рднреА рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЧрд▓рдд рд╣реИрдВред рдЕрдкрдиреА рдЧрд▓рддрд┐рдпреЛрдВ рд╕реЗ рд╕реАрдЦрдирд╛ рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣рд╛рдБ рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИрдВ:

  • рдХрд╛рд░реНрдп рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЯреНрд░реИрдХ рдФрд░ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ;
  • рд╕рдордп рдореЗрдВ рдмрдВрдж рдХрд░реЛ;
  • рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде рджреГрд╢реНрдп "рдзреБрдВрдзрд▓рд╛" рд╣реИ, рдФрд░ рджреЗрдЦрдиреЗ рдХрд╛ рдХреЛрдг рд╕рдВрдХреБрдЪрд┐рдд рд╣реИ;
  • рдкреБрд░рд╛рдиреЗ рдпрд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдбрд░реЛ рдорддред

рдЕрдм рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдпрд╣ рдмрд╛рдд рд╣реИред рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╕рднреА рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдХреЛрдб рдХреЗ рд▓рд┐рдП!



рдпрджрд┐ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рд╕рд░реНрдЧреЗрдИ рдЦреНрд░реЗрдиреЛрд╡ред рдЕрдЪреНрдЫреЗ рдХрд╛ рджреБрд╢реНрдорди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИ ред

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


All Articles