рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдкрд┐рдЯреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореНрдпреВрдЯреЗрд╢рди рдкрд░реАрдХреНрд╖рдг

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

рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдкрд░реАрдХреНрд╖рдг рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред рдХреЗрд▓ рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХреА рдЧрд┐рдирддреА рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд░реИрдВрдбрдо рдХреНрд▓рд╛рд╕реЗрд╕, рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдиреНрдпрдерд╛ рдореНрдпреВрдЯреЗрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ , рдХреЛ рдЖрдкрдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмрд╛рдЗрдЯрдХреЛрдб рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рдПрдХ рднреА рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реБрдЖ, рдЬреЛ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рдВрднрд╛рд╡рд┐рдд рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдЙрджрд╛рд╣рд░рдг:
рдпрд╣ рдерд╛:
if(somevalue < threshold) { doSomething(); } 
рдпрд╣ рдмрди рдЧрдпрд╛:
 if(somevalue >= threshold) { doSomething(); } 
рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛рдлреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдХреЗ рдЗрд╕ рдмреНрд▓реЙрдХ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧрд┐рд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрдЯреМрддреА рдХреЗ рддрд╣рдд, рдореИрдВ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рдкрд┐рдЯрд╕реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ , рдпрд╣ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП, рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдореЗрдВ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрдВред

рд╕рд░рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛

рдЖрдЗрдП рдПрдХ рдПрдХрд▓ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ [ рдЧрд┐рдЯрдм ] рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВ:
 1 2 3 4 5 6 8 
 public class ClassToTest { private static final double THRESHOLD = 10.0; public static boolean threshold(double value) { return value >= THRESHOLD; } } 
рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ:
 1 2 3 4 5 
 @Test public void testThreshold() { Assert.assertTrue(ClassToTest.threshold(10.0)); Assert.assertFalse(ClassToTest.threshold(9.0)); } 


рдкрд┐рдЯрд╛рд░реЗрд╕реНрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЗрд╕рдХреЗ рдкреНрд▓рдЧрдЗрди рдХреЛ рдорд╛рд╡реЗрди рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
 1 2 3 4 5 6 7 8 9 10 11 12 13 
 <plugin> <groupId>org.pitest</groupId> <artifactId>pitest-maven</artifactId> <version>0.25</version> <configuration> <inScopeClasses> <param>com.example*</param> </inScopeClasses> <targetClasses> <param>com.example*</param> </targetClasses> </configuration> </plugin> 
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░: inScopeClasses рдЙрди рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдХрдХреНрд╖рд╛рдПрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред targetClasses рдЙрди рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЬрд┐рдирдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ ред

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

рдФрд░ рдорд╛рд╡реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦреБрд╢реА рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВ:
 mvn org.pitest:pitest-maven:mutationCoverage 

рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рд╕рдордЭрдирд╛

рдЪреЗрдХ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рд▓реЙрдЧ рдХреА рдПрдХ рдмрдбрд╝реА рд╢реАрдЯ рдорд┐рд▓рддреА рд╣реИред рдЗрд╕реЗ рдкрдврд╝рдирд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди target/pit-reports/%TIMESTAMP% рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХреЗ рд╕рдорд╛рди рдПрдХ HTML рд░рд┐рдкреЛрд░реНрдЯ рднреА рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕рдХрд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:



рдпрд╣рд╛рдВ рд▓рд╛рдЗрди 14 рдХреЗ рдкрд╛рд╕ рдирдВрдмрд░ рддреАрди рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕ рд▓рд╛рдЗрди рдореЗрдВ рдХрд┐рддрдиреЗ рдореНрдпреВрдЯреЗрд╢рди рд▓рдЧрд╛рдП рдЧрдП рд╣реИрдВред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдЦрдВрдб рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдереЗ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рдерд╛ред

рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо


рдореНрдпреВрдЯреЗрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░


рдлрд┐рд▓рд╣рд╛рд▓, рдХреЗрд╡рд▓ 11 рдореНрдпреВрдЯреЗрд╢рди рд╣реИрдВред рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рд╡реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИрдВредрд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреА рд╢рд┐рдХрд╛рдпрдд рдХрд░рдирд╛


рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдирдореВрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдореНрдпреВрдЯреЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ (2 рдкреАрд╕реА) рдФрд░ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдореЗрдВ рдереЗред рдЕрдм рдЕрдзрд┐рдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрдХреНрд╖рд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
 1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 
 public class ClassToTest { private int invocationCount = 0; private static final double OFFSET = 1.0; private final double threshold; public ClassToTest(double threshold) { this.threshold = threshold; } public boolean threshold(double value) { logInvocation(); return value >= threshold + OFFSET; } private void logInvocation() { invocationCount++; } } 
рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╣рдо рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ:
 1 2 3 4 5 6 7 
 @Test public void testThreshold() { ClassToTest classToTest = new ClassToTest(10.0); Assert.assertTrue(classToTest.threshold(11.0)); Assert.assertFalse(classToTest.threshold(10.0)); } 
рдХреЛрдб рдХрд╡рд░реЗрдЬ рдЪрд▓рд╛рддреЗ рд╕рдордп, рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЬрд▓реНрджреА рд╕реЗ рд╣рдореЗрдВ рд╣рд╛рде рд╕реЗ рдкрдХрдбрд╝ рд▓реЗрдВрдЧреЗ рдФрд░ рдХрд╣реЗрдВрдЧреЗ: рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ!



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

рдХреНрдпреЛрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдмреБрд░рд╛?

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

рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЬрд╛рдБрдЪ рдХрд░реЗрдВ

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


рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░

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

рдЖрдкрдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рд╣реИ!

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


All Articles