рдПрдЯрд▓рд╕рд┐рдпрди рдХреЙрдиреНрдлреНрд▓реБрдПрдВрд╕ рдФрд░ рд╕реНрдкреАрд╢реА рдХреЗ рд╕рд╛рде JIRA рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░

рдХреНрдпреЛрдВ?





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



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




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



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



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



рдЗрд╕рдХреА рдЬрд░реВрд░рдд рдХрд┐рд╕реЗ рд╣реИ?


рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рд╕реНрдкреАрдХрд╕реА рдХреЛ рдПрдХ рдЬрди рддрдХрдиреАрдХ рдХрд╣рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реБрднрд╛ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ JIRA рдФрд░ Confluence рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ (рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ), рдЖрдкрдХреЛ рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреМрд╢рд▓ рдФрд░ рдПрдЪрдЯреАрдПрдордПрд▓ + рд╕реАрдПрд╕рдПрд╕ рд▓реЗрдЖрдЙрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдЯрд▓рд╕рд┐рдпрди рдПрд╕рдбреАрдХреЗ рдкрд░ рдбреЙрдХ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ! рдФрд░ рдпрд╣, рдПрдХ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП, рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдкреЗрдЪреАрджрд╛ рдкреГрд╖реНрдаред



рдЗрд╕рд▓рд┐рдП, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдЬреЛ рд╕реНрдкреАрдХрд╕реА рд╕реЗ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рд░реИрдВрдХ рдХрд░реВрдВрдЧрд╛:




рдФрд░ рддреБрд░рдВрдд рд▓рдбрд╝рд╛рдИ рдХреЗ рд▓рд┐рдП!


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



рдЙрджрд╛рд╣рд░рдг 0, рдЬреЛ рдХрд┐ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИ - рд╕реНрдкреАрдХрд┐рдВрдЧ рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди


рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдкреАрдХрд╕реА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред



рд╕реНрдкреАрдХрд╕реА рдПрдХреНрд╕рдЪреЗрдВрдЬ рдореЗрдВ рддрд╛рдЬрд╝реЗ рдФрд░ рдмрд╣реБрдд рдирд╣реАрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реА рдорд╛рд╡реЗрди рднрдВрдбрд╛рд░ рдореЗрдВ ред



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



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



рдЙрджрд╛рд╣рд░рдг 1 - рдРрддрд┐рд╣рд╛рд╕рд┐рдХ


рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдкреГрд╖реНрда рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдПрдХ рдкреНрд░рдореБрдЦ рд╕реНрдерд╛рди рдкрд░ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ рддрд╛рдХрд┐ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рдореЗрдВ рд╣рд░ рдмрд╛рд░ рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдХреНрд░реЙрд▓ рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред



рд╣рдо Speakeasy рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд╛рд▓реЗ рдкреЗрдЬ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред




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




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





рд╣рдо main.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдореБрдЦреНрдп рддрд░реНрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред



/** * @context page */ var $ = require('speakeasy/jquery').jQuery; $(document).ready(function() { var href = $('a#action-view-history-link').attr('href'); $('a#view-change-link').after(", <a href='"+ href +"'>view history</a>"); }); 


рдРрд╕реА рд▓рд╛рдЗрдиреЗрдВ рд▓рд┐рдЦрдирд╛ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рднреА рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬреЛ JS рдФрд░ jQuery рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рджреЛрд╕реНрдд рдирд╣реАрдВ рд╣реИрдВ, рд╡реЗ Google рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рди рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЕрд▓рдЧ-рдЕрд▓рдЧ, рдореИрдВ рдХреЗрд╡рд▓ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ "@context рдкреЗрдЬ" рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд┐рд╕ рд╕рдВрджрд░реНрдн (рдкрдврд╝реЗрдВ, рдкреГрд╖реНрда рдкреНрд░рдХрд╛рд░) рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдм рд╣рдо рдХреЗрд╡рд▓ рд╡рд┐рдХрд┐ рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рд╕рдВрджрд░реНрднреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓ рд╕рдХрддреА рд╣реИред



рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдореЗрдВ рдпрд╣рд╛рдБ рдорд┐рд▓рддрд╛ рд╣реИ:




рдЙрджрд╛рд╣рд░рдг 2 - рд╕реВрдЪрдирд╛рддреНрдордХ


рдорд╛рдирдХ UI рдореЗрдВ рдХреБрдЫ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рднреА рдмреЗрд╣рддрд░ рдЬрдм рд╣рдо рд╕рдВрд╢реЛрдзрд┐рдд UI рдХреЛ рдХреБрдЫ рдирдИ рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рднрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЖрдк JavaScript / JQuery - REST, SOAP, XML-RPC рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, Confluence рдФрд░ JIRA рдореЗрдВ рдРрд╕реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реИрдВ ред



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



рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


 /** * @context page */ var $ = require('speakeasy/jquery').jQuery; $(document).ready(function() { var pageId = $('input#pageId').attr('value'); var serviceUrl = '/rest/prototype/1/content/' + pageId + '.json'; $.getJSON( serviceUrl, function(data) { $('li.page-metadata-modification-info a:first').after(" on " + data.createdDate.friendly); }); }); 


рдФрд░ рдпрд╣рд╛рдБ рд╕рдВрд╢реЛрдзрд┐рдд UI рд╣реИ:




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



рдЙрджрд╛рд╣рд░рдг 3 - рд╕рдордп рдХрд╛ рдкрд╛рдмрдВрдж


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



рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдЕрдВрджрд░ рд╡реЗрдм-рдЖрдЗрдЯрдо.рдЬрд╕рди рдлрд╝рд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХрд╛ рд╡рд░реНрдгрди рд╣реЛрддрд╛ рд╣реИред рдЪрд▓реЛ рд╕реАрдзреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВ:



 [ { "section" : "system.content.action/primary", "label" : "Revert", "url" : "", "cssName" : "stiltsoft-web-item", "weight" : 25 } ] 


рдпрд╣ рдЯреВрд▓ рдореЗрдиреВ рдореЗрдВ рд░рд┐рд╡рд░реНрдЯ рдирд╛рдордХ рдПрдХ рдирдпрд╛ рдЖрдЗрдЯрдо рдмрдирд╛рддрд╛ рд╣реИред URL рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдкрддреЗ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдереЛрдбрд╝рд╛ рдкреЗрдЪреАрджрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ URL рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЗрд╕ рдЖрдЗрдЯрдо рдореЗрдВ рддрд░реНрдХ рдЬреЛрдбрд╝реЗ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред



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



 /** * @context atl.general */ var $ = require('speakeasy/jquery').jQuery; $(document).ready(function() { var pageId = $('input#pageId').attr('value'); var revision = $("meta[name='page-version']").attr('content'); $('a.revert-web-item').attr('href','/pages/revertpagebacktoversion.action?pageId='+pageId+'&version='+(revision-1)); }); 


рдпрд╣ рдЖрдЗрдЯрдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:




рдЙрджрд╛рд╣рд░рдг 4 - рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡


SpeakEasi Developers рд╕реБрдВрджрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрдорд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рднреВрд▓рддреЗ рдереЗред Speakeasy рдореЗрдВ рд╣реА OpenOnePanelDialog рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, Confluence / JIRA рдХреА рд╢реИрд▓реА рдореЗрдВ рдПрдХ рд╕реБрдВрджрд░ рд╕рдВрд╡рд╛рдж рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдХреЛрдб рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:



 /** * The main module * * @context atl.general */ var $ = require('speakeasy/jquery').jQuery; var dialog = require('speakeasy/dialog'); $(document).ready(function() { $('span#title-text').after("<span class='stiltsoft-source'><a href='#' id='stiltsoft-view-source'>View source</a></span>"); $('a#stiltsoft-view-source').click(function(){ var url=$('a#action-view-source-link').attr('href'); $.get(url,function(data){ dialog.openOnePanelDialog( { 'header':'Page source', 'content':$(data).find('div#content'), 'submitLabel':'OK', 'cancelClass':'stiltsoft-cancel', 'submit':function(dialog,callback){ callback.success(); } }); } ); return false; }); }); 


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



рдХреБрдЫ рдЗрд╕ рддрд░рд╣, рдпрд╣ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрддрд╛ рд╣реИ:




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



рдЗрд╕ рддрдХрдиреАрдХ рдореЗрдВ рддреБрд░рдВрдд "рдбреБрдмрдХреА" рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рдПрдпреВрдЖрдИ рдбреЗрдореЛ , рдПрдпреВрдЖрдИ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХреА рдпрд╛рддреНрд░рд╛ рдХрд░рдиреЗ рдФрд░ рд╡рд╣рд╛рдВ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЦреЗрд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред



рдЙрджрд╛рд╣рд░рдг 5 - рдЬрд╛рджреВ


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



рдФрд░, рдмреЗрд╢рдХ, рдПрдХ рдмрд╛рд░ рджреЗрдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рд╡реАрдбрд┐рдпреЛ:




рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?


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

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


All Articles