рдореИрдВ, рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рддрд░рд╣,
рдЯреАрдбреАрдбреА рдкреНрд░рдерд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕реБрдирд╛ рдФрд░ рдкрдврд╝рд╛ рд╣реИред рдореБрдЭреЗ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреЗ рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХреЗ рд▓рд╛рднреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ - рдФрд░ рдЗрд╕рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдЦрддрд░реЗ - рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдореЗрд░реЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рд╕реЗ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЕрдкрдиреЗ рд╢реБрджреНрдз рд░реВрдк рдореЗрдВ TDD рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рджреВрд╕рд░реЗ рджрд┐рди рдЕрдкрдирд╛ рдЧреЗрдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдореМрдХрд╛ рдерд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдВрддрд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╡рд░реНрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реБрдП рднреА рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рд▓рд┐рдЦреВрдВрдЧрд╛ рдФрд░ рдЕрдВрдд рдореЗрдВ рдЙрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рджреЗрдЦреЗ рдереЗред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╖рдп рдЯреАрдбреАрдбреА рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡реА рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рд╕реЗ рдореИрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рдЖрд▓реЛрдЪрдирд╛рдУрдВ рдХреЛ рд╕реБрдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдореИрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, TestNG рдХрд╛ рдЙрдкрдпреЛрдЧ рдпреВрдирд┐рдЯ-рдЯреЗрд╕реНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХрд╛рд░реНрдп
рдореИрдВрдиреЗ рдПрдХ рдЗрдХрд╛рдИ - рдПрдХ рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рд╕реНрддрд░ рдкрд░, рдореБрдЭреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдФрд░ рдХреНрд╖рддрд┐ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреЗ рд▓рд┐рдП рдЗрдХрд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рдЕрдиреНрдп рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рдХрд░ рд╕рдХрддреА рд╣реИред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд░рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
public class Unit { private int health; private int damage; public int getHealth() { return health; } public int setHealth(int health) { this.health = health; } public int getDamage() { return damage; } public int setDamage(int damage) { this.damage = damage; } }
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣реБрдд рднреЛрд▓реА рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЬрдм рдореИрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ, рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдЖрджрд┐ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВ рдЕрднреА рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рддреЛ, рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдкрд╛рд░рдВрдкрд░рд┐рдХ "рдорд╛рдереЗ" рд╡рд┐рдзрд┐ рд╣реИред рдЕрдм рдЯреАрдбреАрдбреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрд╕реА рд╡рд░реНрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред
TDD рд▓рд╛рдЧреВ рдХрд░реЗрдВ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдерд╛, рд╢реБрд░реВ рдореЗрдВ рдХреЛрдИ рдЗрдХрд╛рдИ рд╡рд░реНрдЧ рдореМрдЬреВрдж рдирд╣реАрдВ рдерд╛ред рд╣рдо рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
@Test public class UnitTest { }
рд╣рдо рдПрдХ рдЗрдХрд╛рдИ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреА рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЗрдХрд╛рдИ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЕрдкрдиреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдФрд░ рдХреНрд╖рддрд┐ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ред рддреЛ рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВред
@Test public class UnitTest { @Test public void youCreateAUnitGivenItsHealthAndDamage() { new Unit(100, 25); } }
рдкрд░реАрдХреНрд╖рдг, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕рдВрдХрд▓рди рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рдЧреБрдЬрд░ рдЬрд╛рдПред
public class Unit { public Unit(int health, int damage) { } }
рдЕрднреА рддрдХ рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рд╣рдо рдЕрдЧрд▓рд╛ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ - рдореИрдВ рдЗрдХрд╛рдИ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
@Test public class UnitTest { @Test public void youCreateAUnitGivenItsHealthAndDamage() { new Unit(100, 25); } @Test public void youCheckUnitHealthWithGetter() { Unit unit = new Unit(100, 25); assertEquals(100, unit.getHealth()); } }
рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - рдпреВрдирд┐рдЯ рд╡рд░реНрдЧ рдХреЗ рдкрд╛рд╕ рдПрдХ рдЧреЗрдЯрд▓рд┐рде рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред рд╣рдо рдХреЛрдб рдХреЛ рд╕рд╣реА рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рд╣реЛ рдЬрд╛рдПред
public class Unit { private int health; public Unit(int health, int damage) { this.health = health; } public int getHealth() { return health; } }
рдлрд┐рд░ рд╕реЗ рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рд╣рдо рдЖрдЧреЗ рд╕реЛрдЪрддреЗ рд╣реИрдВ - рдпреВрдирд┐рдЯ рдХреЛ рдиреБрдХрд╕рд╛рди рдЙрдард╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╢рд╛рдпрдж рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
@Test public class UnitTest { @Test public void youCreateAUnitGivenItsHealthAndDamage() { new Unit(100, 25); } @Test public void youCheckUnitHealthWithGetter() { Unit unit = new Unit(100, 25); assertEquals(100, unit.getHealth()); } @Test public void unitCanTakeDamage() { Unit unit = new Unit(100, 25); unit.takeDamage(25); } }
рд╣рдо рдХреЛрдб рдХреЛ рд╕рд╣реА рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рд╣реЛ рдЬрд╛рдПред
public class Unit { private int health; public Unit(int health, int damage) { this.health = health; } public int getHealth() { return health; } public void takeDamage(int damage) { } }
рдЕрд░реЗ рд╣рд╛рдБ, рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХреНрд╖рддрд┐ рдХреЛ рдЗрдХрд╛рдИ рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕реЗ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреВрдВрдЧрд╛ред
@Test public class UnitTest { @Test public void youCreateAUnitGivenItsHealthAndDamage() { new Unit(100, 25); } @Test public void youCheckUnitHealthWithGetter() { Unit unit = new Unit(100, 25); assertEquals(100, unit.getHealth()); } @Test public void unitCanTakeDamage() { Unit unit = new Unit(100, 25); unit.takeDamage(25); } @Test public void damageTakenReducesUnitHealth() { Unit unit = new Unit(100, 25); unit.takeDamage(25); assertEquals(75, unit.getHealth()); } }
рдкрд╣рд▓рд╛ рдкрд░реАрдХреНрд╖рдг рдЬреЛ рд╡рд░реНрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдХрд╛рд░рдг рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛрддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рд░ред
public class Unit { private int health; public Unit(int health, int damage) { this.health = health; } public int getHealth() { return health; } public void takeDamage(int damage) { health -= damage; } }
рдпрд╣рд╛рдВ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдереЛрдбрд╝рд╛ рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдЖрдк рдЗрд╕реЗ рдРрд╕реЗ рд╣реА рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреНрд▓рд╛рд╕ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЧреЗрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
public class Unit { private int health; public Unit(int health, int damage) { this.health = health; } public void takeDamage(int damage) { health -= damage; } public int getHealth() { return health; } }
рд╣рдо рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реА рдЗрдХрд╛рдИ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЖрд░рдХреНрд╖рд┐рдд рд╣реИ рдФрд░ рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдЙрд╕реЗ рд╕рд┐рдЦрд╛рдПрдВрдЧреЗ рдХрд┐ рдЕрдиреНрдп рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдБрдЪрд╛рдпрд╛ рдЬрд╛рдП!
@Test public class UnitTest { @Test public void youCreateAUnitGivenItsHealthAndDamage() { new Unit(100, 25); } @Test public void youCheckUnitHealthWithGetter() { Unit unit = new Unit(100, 25); assertEquals(100, unit.getHealth()); } @Test public void unitCanTakeDamage() { Unit unit = new Unit(100, 25); unit.takeDamage(25); } @Test public void damageTakenReducesUnitHealth() { Unit unit = new Unit(100, 25); unit.takeDamage(25); assertEquals(75, unit.getHealth()); } @Test public void unitCanDealDamageToAnotherUnit() { Unit damageDealer = new Unit(100, 25); Unit damageTaker = new Unit(100, 25); damageDealer.dealDamage(damageTaker); } }
рд╣рдо рдпреВрдирд┐рдЯ рдХреНрд▓рд╛рд╕ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗ рд░рд╣реЗ рд╣реИрдВред
public class Unit { private int health; public Unit(int health, int damage) { this.health = health; } public void takeDamage(int damage) { health -= damage; } public void dealDamage(Unit damageTaker) { } public int getHealth() { return health; } }
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдорд╛рд░реА рдЗрдХрд╛рдИ рдиреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдЗрдХрд╛рдИ рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рдпрд╛ рд╣реИ, рддреЛ рдХрд┐рд╕реА рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдореЗрдВ рдХрдореА рдЖ рд╕рдХрддреА рд╣реИред
@Test public class UnitTest { @Test public void youCreateAUnitGivenItsHealthAndDamage() { new Unit(100, 25); } @Test public void youCheckUnitHealthWithGetter() { Unit unit = new Unit(100, 25); assertEquals(100, unit.getHealth()); } @Test public void unitCanTakeDamage() { Unit unit = new Unit(100, 25); unit.takeDamage(25); } @Test public void damageTakenReducesUnitHealth() { Unit unit = new Unit(100, 25); unit.takeDamage(25); assertEquals(75, unit.getHealth()); } @Test public void unitCanDealDamageToAnotherUnit() { Unit damageDealer = new Unit(100, 25); Unit damageTaker = new Unit(100, 25); damageDealer.dealDamage(damageTaker); } @Test public void unitThatDamageDealtToTakesDamageDealerUnitDamage() { Unit damageDealer = new Unit(100, 25); Unit damageTaker = new Unit(100, 25); damageDealer.dealDamage(damageTaker); assertEquals(75, damageTaker.getHealth()); } }
рддрд╛рдЬрд╛ рд▓рд┐рдЦрд┐рдд рдкрд░реАрдХреНрд╖рд╛ рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рд╣реЛрддреА рд╣реИ - рд╣рдо рдЗрдХрд╛рдИ рд╡рд░реНрдЧ рдХреЛ рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗред
public class Unit { private int health; private int damage; public Unit(int health, int damage) { this.health = health; this.damage = damage; } public void takeDamage(int damage) { health -= damage; } public void dealDamage(Unit damageTaker) { damageTaker.takeDamage(damage); } public int getHealth() { return health; } }
рдЖрдЗрдП рдереЛрдбрд╝рд╛ рдЪрдордХ рд▓рд╛рдПрдВ: рдХреНрд╖рддрд┐ рдЪрд░ рдЕрдВрддрд┐рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЯреЗрдХрдбреИрдореЗрдЬ рд╡рд┐рдзрд┐ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рд╡рд░реНрдЧ рдЪрд░ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рди рд╣реЛред
public class Unit { private int health; private final int damage; public Unit(int health, int damage) { this.health = health; this.damage = damage; } public void takeDamage(int incomingDamage) { health -= incomingDamage; } public void dealDamage(Unit damageTaker) { damageTaker.takeDamage(damage); } public int getHealth() { return health; } }
рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╢реВрдиреНрдп рд╕реЗ рдиреАрдЪреЗ рдирд╣реАрдВ рдЧрд┐рд░ рд╕рдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рд╢реВрдиреНрдп рдкрд░ рд╣реИ рддреЛ рдпреВрдирд┐рдЯ рдХреЛ рдпрд╣ рдХрд╣рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдорд░ рдЪреБрдХрд╛ рд╣реИ, рдЖрджрд┐ред рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рддреНрд░рд╛ рдирд╣реАрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдпрд╣рд╛рдВ рд░реБрдХреВрдВрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдФрд░ рдХреБрдЫ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
- "рд╣реЗрдб-рдСрди" рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╡рд░реНрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рдмрд╛рд░ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрд╛ - рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЯреАрдбреАрдбреА рдореЗрдВ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдФрд░ рдЧреИрд░-рддрдХрдиреАрдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЗрддрдиреА рдмрд╛рд░ рдбрд░рд╛рддрд╛ рд╣реИред
- рдЖрдк рдкрд╣рд▓реЗ рднреЛрд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдкрд┐рдЫрд▓реЗ рдкреНрд░рд╛рдкреНрдд TDD рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рд╣реИ, рдЖрдк рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдпреВрдирд┐рдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рднреА рдЕрдзрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рд╣реЛрдЧрд╛ред
- рдХрдХреНрд╖рд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕реЗрдЯ рдорд┐рд▓рд╛ред рдореБрдЭреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдиреБрднрд╡ рд╕реЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╡рд░ рдХрд┐рдП рдЧрдП рдХреЛрдб рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдн рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИред рдЙрд╕реА рдЕрдиреБрднрд╡ рд╕реЗ, рдпрджрд┐ рдХреЛрдб рдХреЗ рдмрд╛рдж рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рддреЛ рдкреВрд░реНрдг рдХрд╡рд░реЗрдЬ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рд╡реЗ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рднреВрд▓ рдЬрд╛рдПрдВрдЧреЗ, рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд░рд▓ рд▓рдЧреЗрдЧрд╛, рдЖрджрд┐ред рдкрд░реАрдХреНрд╖рдг рд╕реНрд╡рдпрдВ рдЕрдХреНрд╕рд░ рдЬрдЯрд┐рд▓ рдФрд░ рдмреЛрдЭрд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдХреЗ рдХрдИ рдкрд╣рд▓реБрдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдХрд░реНрд╖рдХ рд╣реИред рдпрд╣рд╛рдВ рд╣рдореЗрдВ рд╕рд░рд▓, рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдордЭрдиреЗ рд╡рд╛рд▓реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдорд┐рд▓рд╛, рдЬрд┐рд╕реЗ рдмрдирд╛рдП рд░рдЦрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред
- рд╣рдореЗрдВ рд▓рд╛рдЗрд╡ рдХреЛрдб рдкреНрд░рд▓реЗрдЦрди рдорд┐рд▓рд╛! рдХрд┐рд╕реА рдХреЛ рднреА рд▓реЗрдЦрдХ рдХреЗ рд╡рд┐рдЪрд╛рд░, рдЙрджреНрджреЗрд╢реНрдп рдФрд░ рд╡рд░реНрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдирд╛рдо рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреЛрдб рдХреЛ рд╕рдордЭрдирд╛, рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдирд╛, рдкрд░рд┐рдорд╛рдг рдХрд╛ рдПрдХ рдХреНрд░рдо рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ рдФрд░ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рдордЭрд╛ рдЬрд╛рдПред
- рдкреВрд░реНрд╡рд╡рд░реНрддреА рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреНрдЮрд╛рдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдмрдирд╛рдпрд╛ рд╣реИ - рдЬрдм рдЯреАрдбреАрдбреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХрдХреНрд╖рд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЗрд╕рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИред рдкрд╣рд▓реЗ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдШрдЯрдХреЛрдВ рдХреА рдЕрдЪреНрдЫреА рд╕рдордЭ рд╣реЛрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
- рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣рд╛рдВ рдПрдХ рдФрд░ рдмрд┐рдВрджреБ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рдЕрдзрд┐рдХ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЖрдХрд▓рди рдХрд░рддреЗ рд╣реИрдВ - рдЖрдк рд╣рдореЗрд╢рд╛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рдкреВрд░рд╛ рд╣реЛрдирд╛ рдмрд╛рдХреА рд╣реИред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд┐рдирд╛, рдЖрдкрдХреЛ рдЕрдХреНрд╕рд░ рдпрд╣ рдорд╣рд╕реВрд╕ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд┐рдЦрд╛ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╣реИ рдФрд░ рдореИрдВ рдЖрдкрд╕реЗ рдЗрд╕рдореЗрдВ рдЧрд▓рддреА рдирд╣реАрдВ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВред рд╡рд┐рд╖рдп рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдХрд┐ рджреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдПрдХ рдХрдХреНрд╖рд╛ рдХреИрд╕реЗ рд▓рд┐рдЦреА рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдЖрдк рдРрд╕реЗ рдкреНрд░рд╛рдердорд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рднреА TDD рдХреЗ рд▓рд╛рднреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред рдЙрдиреНрдирдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рддрдХрдиреАрдХреЛрдВ рдХреЛ рдЬрд╛рдиреЗрдВ рдФрд░ рдЕрдкрдиреЗ рдХрд╛рдо рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ!