рд╕реЛрдирд╛рдЯрд╛ - SIP рдкреНрд░рд╛рд╡рдзрд╛рди рд╕рд░реНрднрд░

рдорд▓рд╛рдИ рдХреЗрд╕рдБрдЧ рдкреНрд░рд╛рд╡рдзрд╛рди рддреБрд▓рдирд╛ рдЧрд░реНрдиреЗ рдерд╛рд╣рд╛ рдЫреИрдиред рд╕рд╛рдпрдж рдмрд┐рд░рд╛рд▓реЛ рд╕рдВрдЧ? рдпреЛ рдмрд┐рдирд╛ рд╕рдореНрднрд╡ рджреЗрдЦрд┐рдиреНрдЫ, рддрд░ рдпрд╕рдХреЛ рд╕рд╛рде рдпреЛ рдЕрд▓рд┐ рд░рд╛рдореНрд░реЛ рдЫред рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдпрджрд┐ рдпреЛ рдХрд╛рдо рдЧрд░реНрджрдЫ))

рд╕рдорд╕реНрдпрд╛рдХреЛ рд╕реВрддреНрд░реАрдХрд░рдг:

  1. рдо рдЫрд┐рдЯреЛ, рд╕рдЬрд┐рд▓реИ рд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдкрдорд╛ SIP рдлреЛрдирд╣рд░реВ рд╕реЗрдЯрдЕрдк рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред рдлреЛрди рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджрд╛, рд░ рдЕрдЭ рдмрдврд┐ рдпрд╕рд▓рд╛рдИ рдкреБрди: рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрджрд╛ред
  2. рдзреЗрд░реИ рд╡рд┐рдХреНрд░реЗрддрд╛рд╣рд░реВрд╕рдБрдЧ рдЖрдлреНрдиреИ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдврд╛рдБрдЪрд╛рд╣рд░реВ рдЫрдиреН, рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЖрдлреНрдиреИ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ, рд░ рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░реНрдиреЗ рдЖрдлреНрдиреИ рддрд░рд┐рдХрд╛рд╣рд░реВ рдЫрдиреНред рд░ рдо рд╕рдмреИрд╕рдБрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдиред
  3. рдзреЗрд░реИ рдкреНрд░рд╛рд╡рдзрд╛рди рд╕рдорд╛рдзрд╛рдирд╣рд░реВ, рдП) рдПрдХ рд╡рд┐рдХреНрд░реЗрддрд╛ рд╡рд╛ рдПрдХ рдЯреЗрд▓рд┐рдлреЛрди рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдХреЗрдиреНрджреНрд░рд┐рдд рдЫрдиреН, рдЦ) рд▓рд╛рдЧреВ рдЧрд░реНрди рдзреЗрд░реИ рдЧрд╛рд╣реНрд░реЛ рдЫ, рдзреЗрд░реИ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ, рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ, brrr...

рдмрд┐рдиреНрджреБ 3 рдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛, рдо рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЧрд░реНрдиреЗрдЫреБ рдХрд┐ рддреНрдпрд╣рд╛рдБ рдЙрддреНрдХреГрд╖реНрдЯ рдкреНрд░рд╛рд╡рдзрд╛рди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рдЫрдиреН FreePBX рдХреЛ рд▓рд╛рдЧреА, FusionPBX рдХреЛ рд▓рд╛рдЧрд┐, Kazoo рдХреЛ рд▓рд╛рдЧрд┐, рдЬрд╣рд╛рдБ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХреНрд░реЗрддрд╛рд╣рд░реВрдмрд╛рдЯ рдлреЛрдирд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдкрдорд╛ рдЙрдкрд▓рдмреНрдз рдЫрдиреНред рддреНрдпрд╣рд╛рдБ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдЫрдиреН рдЬрд╣рд╛рдБ рддрдкрд╛рдЗрдБ рдкреНрд░рд╛рд╡рдзрд╛рди рдореЛрдбреНрдпреБрд▓рдорд╛ рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрдорд╛рддрд╛рд╣рд░реВрдмрд╛рдЯ рдлреЛрдирд╣рд░реВрдХреЛ рд╕рдЮреНрдЪрд╛рд▓рди рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, Yeastar PBXред

Habr├й рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХреНрд░реЗрддрд╛рд╣рд░реВрдмрд╛рдЯ рдпрдиреНрддреНрд░рд╣рд░реВ рдХрд╕рд░реА рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рд╡реНрдпрдЮреНрдЬрдирд╣рд░реВрд▓реЗ рднрд░рд┐рдПрдХреЛ рдЫ: рдкрдЯрдХ, ╨┤╨▓╨░ред рддрд░ рддрд┐рдиреАрд╣рд░реВ рднрдиреНрдЫрдиреН, рд╕рдмреИ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐ рдЫред рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдЖрдлреНрдиреИ рдмрд╛рдЗрдХ рдмрдирд╛рдЙрдБрдЫреМрдВред

рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рдврд╛рдБрдЪрд╛

рддрд┐рдиреАрд╣рд░реВ xkcd рдорд╛ рднрдиреНрдЫрдиреН, рдпрджрд┐ рддрдкрд╛рдИрдВ 14 рдврд╛рдБрдЪрд╛рд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдЭреМрддрд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрди рднрдиреЗ - 15 рдХреЛ рд╕рд╛рде рдЖрдЙрдиреБрд╣реЛрд╕реНред рддреНрдпрд╕рдХрд╛рд░рдг, рд╣рд╛рдореА рдХреБрдиреИ рдкрдирд┐ рдлреЛрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ рд░ рд╣рд╛рдореНрд░реЛ рдЖрдлреНрдиреИ json рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдврд╛рдБрдЪрд╛ рдмрдирд╛рдЙрдБрдЫреМрдВред

рдпрд╕реНрддреЛ рдХреЗрд╣рд┐:

{
   "key": "sdgjdeu9443908",
   "token": "590sfdsf8u984",
   "model": "gxp1620",
   "vendor": "grandstream",
   "mac": "001565113af8",
   "timezone_offset": "GMT+03",
   "ntp_server": "pool.ntp.org",
   "status": true,
   "accounts": [
      {
         "name": "╨Ь╨╛╨▒╨╕╨╗╨╛╨╜",
         "line": 1,
         "sip_register": "sip.mobilonsip.ru",
         "sip_name": "sip102",
         "sip_user": "sip102",
         "sip_password": "4321",
         "sip_auth": "sip102"
      }
   ]
}

рддреНрдпрд╕реИрд▓реЗ, рдХреБрдиреИ рдкрдирд┐ рдлреЛрдирдорд╛ рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрдерд╛рдиреАрдп рд╕рдордп рд░ SIP рд▓рд╛рдЗрдирд╣рд░реВ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпрд╣рд╛рдБ рд╕рдмреИ рдХреБрд░рд╛ рд╕рд░рд▓ рдЫред рддрдкрд╛рдИрдВ рдердк рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдпрд╣рд╛рдБ.

рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рд╕рд░реНрднрд░ рдкреНрд░рд╛рд╡рдзрд╛рди

рдирд┐рд░реНрдорд╛рддрд╛рдХреЛ рдореНрдпрд╛рдиреБрдЕрд▓рд╣рд░реВрдорд╛ рддреНрдпрд╣рд╛рдБ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдПрдЙрдЯрд╛ рдмрд┐рдиреНрджреБ рд╣реБрдиреНрдЫ рдЬрд╣рд╛рдБ рдпрд╕рд▓реЗ рднрдиреНрдЫ: csv рд▓рд┐рдиреБрд╣реЛрд╕реН, рдЖрдлреНрдиреЛ рд▓рдЧрдЗрди-рдкрд╛рд╕рд╡рд░реНрдб-рдореНрдпрд╛рдХ-рдареЗрдЧрд╛рдирд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН, рд╣рд╛рдореНрд░реЛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд▓рд┐рдкрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдлрд╛рдЗрд▓рд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреБрд╣реЛрд╕реН, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ Apache рд╡реЗрдм рд╕рд░реНрднрд░ рдЕрдиреНрддрд░реНрдЧрдд рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН рд░ рд╕рдмреИ рдХреБрд░рд╛ рдареАрдХ рд╣реБрдиреЗрдЫред

рдореНрдпрд╛рдиреБрдЕрд▓рдХреЛ рдЕрд░реНрдХреЛ рдЕрдиреБрдЪреНрдЫреЗрджрд▓реЗ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рддрдкрд╛рдИрд▓рд╛рдИ рдмрддрд╛рдЙрдБрдЫ рдХрд┐ рддрдкрд╛рдИрд▓реЗ рдЙрддреНрдкрдиреНрди рдХрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓ рдЗрдиреНрдХреНрд░рд┐рдкреНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рддрд░ рдпреА рд╕рдмреИ рдХреНрд▓рд╛рд╕рд┐рдХ рдЫрдиреНред Smoothies рд░ Twitter рдХреЛ рд╕рд╛рде рдЖрдзреБрдирд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рднрдиреНрдЫ рдХрд┐ рддрдкрд╛рдИрд▓реЗ рдПрдХ рд░реЗрдбрд┐рдореЗрдб рд╡реЗрдм рд╕рд░реНрднрд░ рдмрдирд╛рдЙрдиреБ рдкрд░реНрдЫ рдЬреБрди Apache рдЬрддреНрддрд┐рдХреИ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реБрдиреЗрдЫреИрди, рддрд░ рдПрдЙрдЯрд╛ рд╕рд╛рдиреЛ рдХреБрд░рд╛ рдорд╛рддреНрд░ рдЧрд░реНрдиреЗрдЫред рд▓рд┐рдЩреНрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реНред

рдпрд╣рд╛рдБ рд░реЛрдХреМрдВ рд░ рдпрд╛рдж рдЧрд░реМрдВ рдХрд┐ рд▓рдЧрднрдЧ рд╕рдмреИ SIP рдлреЛрдирд╣рд░реВрд▓реЗ рдЕрдм http/https рдорд╛рд░реНрдлрдд рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВ (ftp, tftp, ftps) рд╡рд┐рдЪрд╛рд░ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреИрдиреМрдВред рддреНрдпрд╕рдкрдЫрд┐, рдкреНрд░рддреНрдпреЗрдХ рдлреЛрдирд▓рд╛рдИ рдЖрдлреНрдиреИ MAC рдареЗрдЧрд╛рдирд╛ рдерд╛рд╣рд╛ рд╣реБрдиреНрдЫред рддреНрдпрд╕рдХрд╛рд░рдг, рд╣рд╛рдореА рджреБрдИ рд▓рд┐рдЩреНрдХрд╣рд░реВ рдмрдирд╛рдЙрдиреЗрдЫреМрдВ: рдПрдЙрдЯрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд - рдЙрдкрдХрд░рдг рдХреБрдЮреНрдЬреАрдорд╛ рдЖрдзрд╛рд░рд┐рдд, рджреЛрд╕реНрд░реЛ рд╕рд╛рдорд╛рдиреНрдп, рдЬрд╕рд▓реЗ рд╕рд╛рдЭрд╛ рдЯреЛрдХрди рд░ MAC рдареЗрдЧрд╛рдирд╛рдХреЛ рд╕рдВрдпреЛрдЬрди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрд╛рдо рдЧрд░реНрджрдЫред

рд╕рд╛рдереИ, рдо рд╢реВрдиреНрдп рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рдмрд╕реНрдиреЗ рдЫреИрди, рдЕрд░реНрдерд╛рддреНред рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рдлреЛрди рд╕реЗрдЯ рдЕрдк рдЧрд░реНрджреИ, рдЕрд░реНрдерд╛рддреН рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдкреНрд▓рдЧ рдЧрд░реНрдиреБрднрдпреЛ рд░ рдпрд╕рд▓реЗ рдХрд╛рдо рдЧрд░реНрди рдерд╛рд▓реНрдпреЛред рд╣реЛрдЗрди, рдореЗрд░реЛ рдкрд░рд┐рджреГрд╢реНрдпрдорд╛, рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдкреНрд▓рдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдкреНрд░реЛрднрд┐рдЬрдирд┐рдЩ рд╕рд░реНрднрд░рдмрд╛рдЯ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдпрд╕рд▓рд╛рдИ рд╕реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН), рд░ рддреНрдпрд╕рдкрдЫрд┐ рдкрд┐рдирд╛ рдХреЛрд▓рд╛рдбрд╛ рдкрд┐рдЙрдиреБрд╣реЛрд╕реН рд░ рдкреНрд░рд╛рд╡рдзрд╛рди рдорд╛рд░реНрдлрдд рдлреЛрдирд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдиреБрд╕рд╛рд░ рдкреБрди: рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рд╡рд┐рддрд░рдг рд╡рд┐рдХрд▓реНрдк 66 DHCP рд╕рд░реНрднрд░рдХреЛ рдЬрд┐рдореНрдореЗрд╡рд╛рд░реА рд╣реЛред

рд╡реИрд╕реЗ, рдо "рдкреНрд░реЛрднрд┐рдЬрдирд┐рдЩ" рднрдиреНрджреИ рдкреВрд░реИ рдерд╛рдХреЗрдХреЛ рдЫреБ, рддреНрдпрд╕реИрд▓реЗ рд╢рдмреНрджрд▓рд╛рдИ "рдкреНрд░реЛрднрд┐рдЬрди" рдорд╛ рдЫреЛрдЯреЛ рдкрд╛рд░рд┐рдпреЛ, рдХреГрдкрдпрд╛ рдорд▓рд╛рдИ рд▓рд╛рдд рдирдорд╛рд░реНрдиреБрд╣реЛрд╕реНред

рд░ рдЕрд░реНрдХреЛ рдХреБрд░рд╛: рд╣рд╛рдореНрд░реЛ рдкреНрд░рд╛рд╡рдзрд╛рди рд╕рд░реНрднрд░рд╕рдБрдЧ UI рдЫреИрди, рдЕрд░реНрдерд╛рддреНред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдиреНрдЯрд░рдлреЗрд╕ред рд╕рд╛рдпрдж, рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐, рддрд░ рдирд┐рд╢реНрдЪрд┐рдд рдЫреИрди, рдХрд┐рдирдХрд┐ ... рдорд▓рд╛рдИ рдпрд╕рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЫреИрдиред рддрд░ рддреНрдпрд╣рд╛рдБ рд╕реЗрдЯрд┐рдЩреНрд╣рд░реВ рдмрдЪрдд/рдореЗрдЯрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдкреАрдЖрдИ рдЫ, рд╕рдорд░реНрдерд┐рдд рд╡рд┐рдХреНрд░реЗрддрд╛рд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ, рдореЛрдбреЗрд▓рд╣рд░реВ, рд╕рдмреИ рдХреБрд░рд╛ рд╕реНрд╡реЗрдЧрд░ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдХреЛ рдХреНрдпрд╛рдирдиреНрд╕ рдЕрдиреБрд╕рд╛рд░ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫред

рдХрд┐рди API рд░ UI рдЫреИрди? рдХрд┐рдирднрдиреЗ рдорд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рдореЗрд░реЛ рдЖрдлреНрдиреИ рдЯреЗрд▓рд┐рдлреЛрди рдкреНрд░рдгрд╛рд▓реА рдЫ, рддреНрдпрд╕рдкрдЫрд┐ рдорд╕рдБрдЧ рдкреНрд░рдорд╛рдгрд╣рд░реВрдХреЛ рд╕реНрд░реЛрдд рдЫ, рдЬрд╣рд╛рдБ рдореИрд▓реЗ рдпреЛ рдбрд╛рдЯрд╛ рд▓рд┐рди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЖрд╡рд╢реНрдпрдХ json рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдпрд╕рд▓рд╛рдИ рдкреНрд░рд╛рд╡рдзрд╛рди рд╕рд░реНрднрд░рдорд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред рд░ рдкреНрд░реЛрднрд┐рдЬрдирд┐рдЩ рд╕рд░реНрднрд░рд▓реЗ, json рдлрд╛рдЗрд▓рдорд╛ рддреЛрдХрд┐рдПрдХрд╛ рдирд┐рдпрдорд╣рд░реВ рдЕрдиреБрд╕рд╛рд░, рдЖрд╡рд╢реНрдпрдХ рдпрдиреНрддреНрд░рд▓рд╛рдИ рдпрд╕рдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рджрд┐рдиреЗрдЫ рд╡рд╛ рдпрджрд┐ рдпрдиреНрддреНрд░ рд╕рд╣реА рдЫреИрди рд╡рд╛ рдпреЛ json рдорд╛ рддреЛрдХрд┐рдПрдХреЛ рдорд╛рдкрджрдгреНрдб рдкреВрд░рд╛ рдЧрд░реНрджреИрди рднрдиреЗ рдпрд╕рд▓рд╛рдИ рджрд┐рдиреЗрдЫреИрдиред

рд╕реЛрдирд╛рдЯрд╛ - SIP рдкреНрд░рд╛рд╡рдзрд╛рди рд╕рд░реНрднрд░

рдпрд╕рд░реА рднрдпреЛ рдкреНрд░реЛрднрд┐рдЬрдирд┐рдЩ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕ред рдмреЛрд▓рд╛рдЗрдпреЛ рд╕реЛрдирд╛рдЯрд╛, рд╕реНрд░реЛрдд рдХреЛрдб GitHub рдорд╛ рдЙрдкрд▓рдмреНрдз рдЫ, рддреНрдпрд╣рд╛рдБ рдкрдирд┐ рдЫ рддрдпрд╛рд░ рдбрдХрд░ рдЫрд╡рд┐, рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ.

рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реБ:

  • рдХреБрдиреИ рдкрдирд┐ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╕рдордп рдЕрдиреБрд╕рд╛рд░ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рд╕реАрдорд┐рдд рдкрд╣реБрдБрдЪ, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд 10 рдорд┐рдиреЗрдЯред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлреЗрд░рд┐ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЙрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреБрди: рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред

  • рд╕рдмреИ рд╡рд┐рдХреНрд░реЗрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдврд╛рдБрдЪрд╛, рд╕рдмреИ рд╕рдорд╛рдпреЛрдЬрдирд╣рд░реВ рд╕реЛрдирд╛рдЯрд╛рдорд╛ рд╣рдЯрд╛рдЗрдиреНрдЫ, рддрдкрд╛рдИрдВрд▓реЗ рдорд╛рдирдХреАрдХреГрдд json рдкрдард╛рдЙрдиреБрд╣реБрдиреНрдЫ, рдХреБрдиреИ рдкрдирд┐ рдЙрдкрд▓рдмреНрдз рдЙрдкрдХрд░рдгрд╣рд░реВ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

  • рдпрдиреНрддреНрд░рд╣рд░реВрдорд╛ рдЬрд╛рд░реА рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рд▓рдЧ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН, рд╕рдмреИ рд╕рдорд╕реНрдпрд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рд▓рдЧрдорд╛ рд╣реЗрд░реНрди рд╕рдХрд┐рдиреНрдЫ рд░ рддреНрд░реБрдЯрд┐рд╣рд░реВ рджреЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫред

  • рдЯреЛрдХрдирдХреЛ рд╕рд╛рде рдПрдЙрдЯрд╛ рд╕рд╛рдЭрд╛ рд▓рд┐рдЩреНрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫ; рдкреНрд░рддреНрдпреЗрдХ рдлреЛрдирд▓реЗ рдореНрдпрд╛рдХ рдареЗрдЧрд╛рдирд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрд░ рдЖрдлреНрдиреИ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред рд╡рд╛ рдХреБрдЮреНрдЬреА рдорд╛рд░реНрдлрдд рд╡реНрдпрдХреНрддрд┐рдЧрдд рд▓рд┐рдЩреНрдХред

  • рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди) рд░ рдлреЛрдирд╣рд░реВрдорд╛ рдХрдиреНрдлрд┐рдЧрд╣рд░реВ (рдкреНрд░реЛрднрд┐рдЬрдирд┐рдЩ) рдХреЛ рдкреНрд░рд╛рд╡рдзрд╛рдирдХрд╛ рд▓рд╛рдЧрд┐ API рдкреЛрд░реНрдЯрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдЫрдиреНред

  • рдкрд░реАрдХреНрд╖рдгрд╣рд░реВред рдЬрд╛рд░реА рдЧрд░рд┐рдПрдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдХреЛ рдврд╛рдБрдЪрд╛ рдареАрдХ рдЧрд░реНрди рд░ рдкрд░реАрдХреНрд╖рдгрдХреЛ рд╕рд╛рде рдХрдиреНрдлрд┐рдЧ рдЬрд╛рд░реА рдЧрд░реНрдиреЗ рд╕рдмреИ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рд╕реНрдерд╛рд╣рд░реВ рдХрднрд░ рдЧрд░реНрди рдпреЛ рдореЗрд░реЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдерд┐рдпреЛред рддрд╛рдХрд┐ рдпреЛ рд╕рдмреИ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫред

Cons:

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

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

рдЕрдиреНрддрдорд╛ рдХреЗ рднрдпреЛ?

рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирдХреЛ рд▓рд╛рдЧрд┐ API рдХреЛ рд╕рд╛рде рдзреЗрд░реИ рдлреЛрди рдореЛрдбреЗрд▓рд╣рд░реВ рдкреНрд░рд╛рд╡рдзрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рд╕рд╛рдиреЛ рд░ рд╕рд░рд▓ рд╡реЗрдм рд╕рд░реНрднрд░ред

рдлреЗрд░рд┐, рдпреЛ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдиреЗ рдорд╛рдирд┐рдиреНрдЫ?

  1. рд╕реЛрдирд╛рдЯрд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИред
  2. рд╣рд╛рдореА json рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ рд░ рдпрд╕рд▓рд╛рдИ рд╕реЛрдирд╛рдЯрд╛рдорд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрдЫреМрдВред
  3. рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореАрд▓реЗ рд╕реЛрдирд╛рдЯрд╛рдмрд╛рдЯ рдПрдХ рдкреНрд░рд╛рд╡рдзрд╛рди рд▓рд┐рдЩреНрдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫреМрдВред
  4. рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдЯреЗрд▓рд┐рдлреЛрдирдорд╛ рдпреЛ рд▓рд┐рдЩреНрдХ рд╕рдВрдХреЗрдд рдЧрд░реНрдЫреМрдВред
  5. рдпрдиреНрддреНрд░рд▓реЗ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд▓реЛрдб рдЧрд░реНрджреИрдЫ

рддреНрдпрд╕рдкрдЫрд┐рдХреЛ рдЕрдкрд░реЗрд╢рдирдорд╛ рдХреЗрд╡рд▓ рджреБрдИ рдЪрд░рдгрд╣рд░реВ рдЫрдиреН:

  1. рд╣рд╛рдореА json рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ рд░ рдпрд╕рд▓рд╛рдИ рд╕реЛрдирд╛рдЯрд╛рдорд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрдЫреМрдВ
  2. рдпрдиреНрддреНрд░рд▓реЗ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд▓реЛрдб рдЧрд░реНрджреИрдЫ

рдХреБрди рдлреЛрди рдкреНрд░рд╡рд░реНрджреНрдзрди рдЧрд░рд┐рдиреЗрдЫ?

рд╡рд┐рдХреНрд░реЗрддрд╛рд╣рд░реВ рдЧреНрд░рд╛рдиреНрдбрд╕реНрдЯреНрд░реАрдо, рдлреНрдпрд╛рдирднрд┐рд▓, рдпреЗрд▓рд┐рдВрдХред рд╡рд┐рдХреНрд░реЗрддрд╛ рднрд┐рддреНрд░ рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рдХрдо рд╡рд╛ рдХрдо рд╕рдорд╛рди рдЫрдиреН, рддрд░ рдлрд░реНрдорд╡реЗрдпрд░рдХреЛ рдЖрдзрд╛рд░рдорд╛ рдлрд░рдХ рд╣реБрди рд╕рдХреНрдЫ - рдпреЛ рдердк рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрди рд╕рдХреНрдЫред

рддрдкрд╛рдИрдВ рдХреЗ рдирд┐рдпрдорд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ?

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

Sonata рд╕рдБрдЧ рдХрд╕рд░реА рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдиреЗ?

API рдорд╛рд░реНрдлрдд, http рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЧрд░реНрджреИред API рддрдкрд╛рдЗрдБрдХреЛ рд╕реНрдерд╛рдкрдирд╛ рдорд╛ рдЙрдкрд▓рдмреНрдз рд╣реБрдиреЗрдЫред рдХрд┐рдирднрдиреЗ API рд▓реЗ swagger рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рддрдкрд╛рдЗрдБ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЕрдирд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧрд┐рддрд╛ API рдорд╛ рдкрд░реАрдХреНрд╖рдг рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ред

рдПрдХрджрдо рд░рд╛рдореНрд░реЛред рд░рд╛рдореНрд░реЛ рд╕рд╛рдорд╛рди, рдХрд╕рд░реА рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗ?

рд╕рдмреИрднрдиреНрджрд╛ рд╕рдЬрд┐рд▓реЛ рддрд░реАрдХрд╛ рднрдиреЗрдХреЛ рднрдгреНрдбрд╛рд░рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдбрдХрд░ рдЫрд╡рд┐ рддреИрдирд╛рде рдЧрд░реНрдиреБ рд╣реЛ рд╕реЛрдирд╛рдЯрд╛-рдирдореВрдирд╛ред рднрдгреНрдбрд╛рд░рдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдЫрдиреНред

рдпрджрд┐ рдорд▓рд╛рдИ node.js рдерд╛рд╣рд╛ рдЫ рднрдиреЗ рдХреЗ рд╣реБрдиреНрдЫ?

рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ JavaScript рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЕрдиреБрднрд╡ рдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдЪрд╛рдБрдбреИ рдерд╛рд╣рд╛ рдкрд╛рдЙрдиреБрд╣реБрдиреЗрдЫ рдХрд┐ рдпрд╣рд╛рдБ рд╕рдмреИ рдХреБрд░рд╛ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрджрдЫред

рд╕реЛрдирд╛рдЯрд╛рдХреЛ рд╡рд┐рдХрд╛рд╕ рд╣реЛрд▓рд╛ ?

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

рд╕рд╛рд░рд╛рдВрд╢ рд░ рд╕реНрд╡реАрдХреГрддрд┐рд╣рд░реВ

рдо рд░рдЪрдирд╛рддреНрдордХ рд╕реБрдЭрд╛рд╡ / рдЖрдкрддреНрддрд┐ / рдЯрд┐рдкреНрдкрдгреА рд░ рдкреНрд░рд╢реНрдирд╣рд░реВ рдкрд╛рдЙрдБрджрд╛ рдЦреБрд╕реА рд╣реБрдиреЗрдЫреБ, рдХрд┐рдирдХрд┐ ... рдЙрд╕рд▓реЗ рдирдмреБрдЭреЗрдХреЛ рдХреБрд░рд╛рдХреЛ рд╡рд░реНрдгрди рдЧрд░реЗрдХреЛ рд╣реБрди рд╕рдХреНрдЫред

рдо рдореЗрд░рд╛ рд╕рдмреИ рд╕рд╣рдХрд░реНрдореАрд╣рд░реВрд▓рд╛рдИ рдкрдирд┐ рдХреГрддрдЬреНрдЮрддрд╛ рд╡реНрдпрдХреНрдд рдЧрд░реНрджрдЫреБ рдЬрд╕рд▓реЗ рдорджреНрджрдд, рд╕рд▓реНрд▓рд╛рд╣, рдкрд░реАрдХреНрд╖рдг, рд░ рдкрд░реАрдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рдлреЛрдирд╣рд░реВ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдП/рджрд╛рди рдЧрд░реЗред рд╡рд╛рд╕реНрддрд╡рдорд╛, рдзреЗрд░реИ рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рдЬрд╕рд╕рдБрдЧ рдореИрд▓реЗ рдХрд╛рдордорд╛ рдХреБрд░рд╛рдХрд╛рдиреА рдЧрд░реЗрдВ рддрд┐рдиреАрд╣рд░реВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрд╡рд┐рднрд┐рдиреНрди рдбрд┐рдЧреНрд░реАрдорд╛ рд╕рдВрд▓рдЧреНрди рдЫрдиреН, AsterConf'рдИ, рдЪреНрдпрд╛рдЯ рд░ рдЗрдореЗрд▓рд╣рд░реВрдорд╛ред рд╡рд┐рдЪрд╛рд░ рд░ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд▓рд╛рдЧреА рдзрдиреНрдпрд╡рд╛рджред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди