рд╕реНрд╡реИрдЧрд░ - рдЖрдкрдХреЗ рд░реИрд╕реНрдЯрдлреБрд▓ рд╡реЗрдм рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рд╕реНрдорд╛рд░реНрдЯ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди - рдиреНрдпреВрдмрд╛рдп рдХреЗ рд▓рд┐рдП рдЬреВрдирд┐рдпрд░ рдмреИрдХ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░ рд╕рдореАрдХреНрд╖рд╛



рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛


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

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


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

рдЕрдЪреНрдЫрд╛, рддреЛ рд╕реНрд╡реИрдЧрд░ рдХреНрдпрд╛ рд╣реИ рдФрд░ рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ?


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



рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ - рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореЙрдбрд▓, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб, рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореАрдЯрд░ рд╕рд╣рд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╡рд┐рд╡рд░рдгред

рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?


ASP.NET рдХреЛрд░ рдореЗрдВ рд╕реНрд╡реИрдЧрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдврд╝рд┐рдпрд╛ рдЧрд╛рдЗрдб
рдЦрд░реЛрдВрдЪ рд╕реЗ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдпрд╣рд╛рдБ рд╣реИред

рдПрдкреАрдЖрдИ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:





рд╕реНрд╡реИрдЧрд░ рдХреЛрдбрдЧреЗрди




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

  • API рдХреНрд▓рд╛рдЗрдВрдЯ: ActionScript, Ada, Apex, Bash, C # (.net 2.0, 3.5 рдпрд╛ рдмрд╛рдж рдореЗрдВ), C ++ (cpprest, Qt5, Tizen), Clojure, Dart, Elixir, Elm, Eiffel, Erlang, Go, Groovy, Haskell (http) -client, рд╕рд░реНрд╡реЗрдВрдЯ), рдЬрд╛рд╡рд╛ (Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign, RestTemplate, RESTEasy, Vertx, Java рдХреЗ рд▓рд┐рдП Google рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдмрд╛рдХреА рдХрд╛ рдЖрд╢реНрд╡рд╛рд╕рди рджрд┐рдпрд╛), рдХреЛрдЯрд▓рд┐рди, рд▓реБрдЖ, Node.js (ES5, ES6, Google рдХреНрд▓реЛрдЬрд░ рдХрдореНрдкрд╛рдЗрд▓рд░ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде AngularJS) рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА, рдкрд░реНрд▓, рдкреАрдПрдЪрдкреА, рдкреЙрд╡рд░рд╢реЗрд▓, рдкрд╛рдпрдерди, рдЖрд░, рд░реВрдмреА, рдЬрдВрдЧ (рдЬрдВрдЧ, рдЬрдВрдЧ-рд╕рд░реНрд╡рд░, рд╕реНрдХреИрд▓рд╛ (рдЕрдХреНрдХрд╛, http4s, swagger-async) httpclient), рд╕реНрд╡рд┐рдлреНрдЯ (2.x, 3.x, 4.x), рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ (Angular1.x, Angular2.x, Fetch, jQuery, Node)
  • рд╕рд░реНрд╡рд░ рд╕реНрдЯрдмреНрд╕: Ada, C # (ASP.NET Core, NancyFx), C ++ (Pistache, Restbed), Erlang, Go, Haskell (Servant), Java (MSF4J, Spring, Undertow, JAX-RS: CDI, CXF, Inflector, RestEasy , рдкреНрд▓реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ, рдкреАрдХреЗрдПрдордПрд╕рдЯреА), рдХреЛрдЯрд▓рд┐рди, рдкреАрдПрдЪрдкреА (рд▓реБрдореЗрди, рд╕реНрд▓рд┐рдо, рд╕рд┐рд▓реЗрдХреНрд╕, рд╕рд┐рдореНрдлрдиреА, рдЬреЗрдВрдб рдПрдХреНрд╕рдкреНрд░реЗрд╕рд┐рд╡), рдкрд╛рдпрдерди (рдлреНрд▓рд╛рд╕реНрдХ), рдиреЛрдбрдЬреЗрдПрд╕, рд░реВрдмреА (рд╕рд┐рдирд╛рддреНрд░рд╛, рд░реЗрд▓реНрд╕ 5), рд░рд╕реНрдЯ (рд░рд╕реНрдЯ-рд╕рд░реНрд╡рд░), рд╕реНрдХрд╛рд▓рд╛ (рдлрд┐рдВрдЪ, рд▓рд╛рдЧреЛрдо,) Scalatra)
  • рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрди рдЬрдирд░реЗрдЯрд░: HTML, рд╕рдВрдЧрдо рд╡рд┐рдХреА
  • рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ: Apache2
  • рдЕрдиреНрдп: jmeter
рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП рд╣реИрдВ:
рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА

рдФрд░ рдпрд╣рд╛рдБ: рд╡рд┐рд╡рд░рдг

рдирд┐рд╖реНрдХрд░реНрд╖


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

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


All Articles