JSF GUI рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдЕрдиреБрднрд╡

рдореИрдВ рд▓рдЧрднрдЧ 12 рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдЖрдзрд╛рд░рд┐рдд GUIs рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреЛ рдореБрдЭреЗ рд╕рд░реНрд╡рд▓реЗрдЯреНрд╕, рдЬреЗрдПрд╕рдкреА, рдПрдХреНрд╕рдПрдордПрд▓ / рдПрдХреНрд╕рдПрд╕рдПрд▓рдЯреА, рд╕реНрдЯреНрд░рдЯреНрд╕, рдЯреЗрдкреЗрд╕реНрдЯреНрд░реА (3,4,5), рд╡рд┐рдХреЗрдЯ, рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдорд╡реАрд╕реА рдФрд░ рдЬреАрдбрдмреНрд▓реНрдпреВрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реИред

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

рд╕рдордп рдмреАрдд рдЧрдпрд╛, JSF рдорд░рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╣реА рд╕рдВрд╕реНрдХрд░рдг 2.1 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдПрдХ рдкрд╛рдпрд▓рдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рдореИрдВ рд╣рд░ рд╕рд╛рд▓ рд▓рдЧрднрдЧ 3 рдорд╣реАрдиреЗ рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реВрдВ - рдЕрдкрдиреЗ рдХреНрд╖рд┐рддрд┐рдЬ рдХреЛ рд╡реНрдпрд╛рдкрдХ рдмрдирд╛рдиреЗ рдФрд░ рдЙрдмрд╛рдК рдкрд░рд╛рдорд░реНрд╢ рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЬреЛ рдореИрдВ рд╢реЗрд╖ 9 рдорд╣реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рджреВрдз рдХреЗ рд▓рд┐рдП рдмрдЪреНрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдорд╛рддрд╛ рд╣реВрдВ)ред



рдирдВрдЧреЗ HTML рд░реВрдкреЛрдВ рдкрд░, 21 рд╡реАрдВ рд╕рджреА рдореЗрдВ GUI рдХрд░рдирд╛ рд╕реАрдзрд╛, рдЕрд╢реЛрднрдиреАрдп рд╣реИред рдЗрд╕рд▓рд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореИрдВ AJAX рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ рдФрд░ рдпреМрди рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЬрд┐рд╕реЗ рд╕рд╣реА рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдпрд╣ рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рджреЛ рдЪреМрдЦрдЯреЗ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдХрдЯ рдЧрдП рдереЗ (рдЬрдп рд╕реЗ рдкрд╣рд▓реЗ!

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

<panelTabSet>

<panelTab label="First tab">
...
</panelTab>

<panelTab label="Second tab">
...
</panelTab>
...

</panelTabSet>


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

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

ICEFaces, рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ, рди рдХреЗрд╡рд▓ рдЯреИрдм рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рдереЗ, рдмрд▓реНрдХрд┐ рдРрд╕реЗ рдШрдЯрдХ рднреА рдереЗ рдЬреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддреЗ рдереЗред

рдирддреАрдЬрддрди, рд▓рдЧрднрдЧ 120 рдШрдВрдЯреЗ рдХреЗ рдХрд╛рдо рдореЗрдВ, рдореМрдЬреВрджрд╛ рдХрд░реНрдиреЗрд▓ (12 рдмрдбрд╝реЗ рдФрд░ рдЬрдЯрд┐рд▓ рд░реВрдкреЛрдВ) рдореЗрдВ рдПрдХ рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рдЬреАрдпреВрдЖрдИ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛, рдХреЗрд╡рд▓ рдлреЗрд╕рд▓реЗрдЯреНрд╕ рдорд╛рд░реНрдХрдЕрдк (рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ) рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ, рдФрд░ рдЬрд╛рд╡рд╛ рдореЗрдВ, рдЕрд░реНрдерд╛рддреНред рдХрд┐рд╕реА рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ред

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

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

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

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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
- рдорд╛рд╡реЗрди, рдареАрдХ рд╣реИ, рдЬрд╣рд╛рдВ рдЙрд╕рдХреЗ рдмрд┐рдирд╛
- ICEFaces, рдКрдкрд░ рджреЗрдЦреЗрдВред
- рдорд╛рдирдХ Mojarra рдХреЗ рдмрдЬрд╛рдп MyFaces - рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмреЗрд╣рддрд░ рдирд┐рджрд╛рди рдХреЗ рдХрд╛рд░рдгред
- рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЛрд░
- рд╡рд╕рдВрдд рд╕реБрд░рдХреНрд╖рд╛
- рд╕реЗрд▓реЗрдирд┐рдпрдо
- рдЬреЗрдЯреНрдЯреА

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

рд╕рднреА рд╡рд┐рдХрд╛рд╕ IntelliJ IDEA рдореЗрдВ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдП рдЧрдП рдереЗред рд▓реЗрдХрд┐рди, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдПрдХреНрд▓рд┐рдкреНрд╕ / рдиреЗрдЯрдмреАрдиреНрд╕ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдмрд╕ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрд░реЗ рд╣рд╛рдБ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдпрд╣ рд╕рдм рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ ...

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЗрд╕рдХрд╛ рд╕рд╛рд░ рдбрд┐рд╕реНрдЯрд┐рд▓реНрдб рдерд╛ рдФрд░ рдЧрд┐рдереБрдм рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдпрд╣ рдорд╛рдореВрд▓реА рдХрд▓рд╛рдХреГрддрд┐ ред
рдореИрдВ рдЗрд╕реЗ рдорд╛рд╡реЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд▓рд╕реНрдп рдмрди рдЧрдпрд╛ред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдКрдкрд░ рдмрддрд╛рдИ рдЧрдИ рд╕рднреА рдЪреАрдЬреЗрдВ рд╣реИрдВ, рдФрд░ рдореВрд▓ рд▓реЙрдЧрд┐рди / рд▓реЙрдЧрдЖрдЙрдЯ рдлреЙрд░реНрдо рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕реЗрд▓реЗрдирд┐рдпрдо рдкрд░реАрдХреНрд╖рдг рднреА рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЧрд┐рдЯрд╣рдм README рдореЗрдВ рд╡рд┐рд╡рд░рдгред

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

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


All Articles