рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

Kyiv Go Meetup рдордИ 2018:

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

рд▓реАрдб: - рдирдорд╕реНрддреЗ рд╕рдмреИ! рдпрд╣рд╛рдБ рд╣реБрдиреБ рднрдПрдХреЛрдорд╛ рдзрдиреНрдпрд╡рд╛рдж! рдЖрдЬ рд╣рд╛рдореАрд╕рдБрдЧ рджреБрдИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рдХреНрддрд╛рд╣рд░реВ рдЫрдиреН - рд▓рд┐рдпреЛрд╢рд╛ рд░ рд╡рд╛рдиреНрдпрд╛ред рд╣рд╛рдореАрд╕рдБрдЧ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдЫ рднрдиреЗ рддреНрдпрд╣рд╛рдБ рджреБрдИ рдердк рд╣реБрдиреЗрдЫрдиреНред рдкрд╣рд┐рд▓реЛ рд╡рдХреНрддрд╛ Alexey Grachev рд╣реЛ, рдЙрд╣рд╛рдБрд▓реЗ GopherJS рдХреЛ рдмрд╛рд░реЗ рдорд╛ рдмрддрд╛рдЙрдиреБ рд╣реБрдиреЗрдЫред

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн (рдпрд╕рдкрдЫрд┐ - рдПрдЬреА): - рдо Go рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рд╣реБрдБ, рд░ рдо Go рдорд╛ рд╡реЗрдм рд╕реЗрд╡рд╛рд╣рд░реВ рд▓реЗрдЦреНрдЫреБред рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рддрдкрд╛рдИрдВрд▓реЗ рдлреНрд░рдиреНрдЯрдПрдиреНрдбрд╕рдБрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░реНрдиреБрдкрд░реНрдЫ, рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдВ рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫред рдо рдЧреЛ рдЕрди рдлреНрд░рдиреНрдЯрдПрдиреНрдбрдорд╛ рдореЗрд░реЛ рдЕрдиреБрднрд╡ рд░ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред

рдкреМрд░рд╛рдгрд┐рдХ рдХрдерд╛ рдпреЛ рд╣реЛ: рдкрд╣рд┐рд▓реЗ рд╣рд╛рдореА рдХрд┐рди рдЧреЛ рдлреНрд░рдиреНрдЯрдПрдиреНрдбрдорд╛ рдЪрд▓рд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреМрдВ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВ, рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдпреЛ рдХрд╕рд░реА рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рднрдиреЗрд░ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВред рддреНрдпрд╣рд╛рдБ рджреБрдИ рддрд░рд┐рдХрд╛рд╣рд░реВ рдЫрдиреН - рд╡реЗрдм рд╕рднрд╛ рд░ GopherJSред рдпреА рд╕рдорд╛рдзрд╛рдирд╣рд░реВрдХреЛ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╣реЛ рд░ рдХреЗ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рд╣реЗрд░реМрдВред

рдлреНрд░рдиреНрдЯрдПрдиреНрдбрдорд╛ рдХреЗ рдЧрд▓рдд рдЫ?

рдХреЗ рд╕рдмреИрдЬрдирд╛ рд╕рд╣рдордд рдЫрдиреН рдХрд┐ рд╕рдмреИ рдХреБрд░рд╛ рдлреНрд░рдиреНрдЯрдПрдиреНрдб рд╕рдВрдЧ рдареАрдХ рдЫ?

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

рдХреЗ рддреНрдпрд╣рд╛рдБ рдкрд░реНрдпрд╛рдкреНрдд рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЫреИрдирдиреН? рдврд┐рд▓реЛ рдирд┐рд░реНрдорд╛рдг? рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо? рд░рд╛рдореНрд░реЛред

рдлреНрд░рдиреНрдЯрдПрдиреНрдбрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛, рдорд▓рд╛рдИ рдпреЛ рдЙрджреНрдзрд░рдг рдордирдкрд░реНрдЫ рдЬреБрди рдПрдХ рдлреНрд░рдиреНрдЯрдПрдиреНрдб рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдЖрдлреНрдиреЛ рдкреБрд╕реНрддрдХрдорд╛ рднрдиреЗрдХрд╛ рдЫрдиреН:

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

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

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

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

рддреНрдпрд╣рд╛рдБ рдмреНрд░рд╛рдЙрдЬрд░рдорд╛ рдХреБрдиреИ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЫреИрди - рддреНрдпрд╣рд╛рдБ рдХреЗрд╣рд┐ рдирд┐рд░реНрдорд┐рдд рд╡рд╕реНрддреБрд╣рд░реВ рд░ рдмреНрд░рд╛рдЙрдЬрд░рд╣рд░реВрдорд╛ "рдЬрд╛рджреВ" рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдЫрдиреНред рддрд░ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЫреИрдиред рдпреЛ рд╕рдорд╕реНрдпрд╛ рдкрд╣рд┐рд▓реЗ рдиреИ jQuery рджреНрд╡рд╛рд░рд╛ рдПрдХ рдкрдЯрдХ рд╣рд▓ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ (рд╕рдмреИрд▓реЗ рд╕рдмреИ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрд╣рд░реВ, рд╕рд╣рдпреЛрдЧреАрд╣рд░реВ, рдХрд╛рд░реНрдпрд╣рд░реВ рдЬреБрди рдХрд╛рдо рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛ jQuery рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдереЗ)ред рдЕрдм рд╕рдмреИрд▓реЗ Lodash рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ:

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

рдХрд▓рдмреНрдпрд╛рдХ рдирд░рдХред рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рд╕рдмреИрд▓реЗ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб 5 рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ рджреЗрдЦреЗ, рд░ рдпреЛ рдХрд▓рдмреНрдпрд╛рдХрд╣рд░реВрдХреЛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЬрдЯрд┐рд▓рддрд╛рдХреЛ "рдиреВрдбрд▓" рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдереНрдпреЛред рдЕрдм рдпреЛ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рднрдПрдХреЛ рдЫ (ES-15 рд╡рд╛ ES-16 рдХреЛ рд░рд┐рд▓реАрдЬ рд╕рдВрдЧ), рдкреНрд░рддрд┐рдЬреНрдЮрд╛рд╣рд░реВ Javascript рдорд╛ рдердкрд┐рдПрдХреЛ рдЫ рд░ рд╕рдмреИрд▓реЗ рдХреЗрд╣рд┐ рд╕рдордп рдХреЛ рд▓рд╛рдЧреА рд╕рдЬрд┐рд▓реЛ рд╕рд╛рд╕ рдлреЗрд░реНрди рд╕рдХреНрдЫрдиреНред

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

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

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

рдПрд╕рд┐рдиреНрдХреНрд░реЛрдиреАрдХреЛ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рднрдпреЛред Async/await рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдПрдХрджрдореИ рд▓реЛрдХрдкреНрд░рд┐рдп рдЖрджрд┐рдо рд╣реЛред рдкрд╛рдЗрдерди рд░ рдЕрдиреНрдпрд╕рдБрдЧ рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЫ - рдпреЛ рдПрдХрджрдо рд░рд╛рдореНрд░реЛ рдЫред рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рднрдпреЛред

рдХреЗ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рд╣реБрдБрджреИрди? рдврд╛рдБрдЪрд╛рдХреЛ рддреАрд╡реНрд░ рд░реВрдкрдорд╛ рдмрдвреНрджреЛ рдЬрдЯрд┐рд▓рддрд╛, рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдордХреЛ рдЬрдЯрд┐рд▓рддрд╛ рд░ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рдЖрдлреИрдВрдорд╛ред

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

  • Javascript рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рдЕрд▓рд┐ рдЕрдиреМрдареЛ рдЫред рд╣рд╛рдореА рд╕рдмреИрд▓рд╛рдИ рдПрд░реЗ рд░ рд╡рд╕реНрддреБ рд░ рдЕрдиреНрдп рдЪреБрдЯрдХреБрд▓реЗ рдердкреНрдиреЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдерд╛рд╣рд╛ рдЫред
  • рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд╣реБ-рдкреНрд░рддрд┐рдорд╛рди рд╣реЛред рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдзреЗрд░реИ рдареВрд▓реЛ рд╣реБрдБрджрд╛ рдпреЛ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рджрдмрд╛рдм рджрд┐рдиреЗ рдкреНрд░рдгрд╛рд▓реА рд╣реЛ:
    • рд╕рдмреИрд▓реЗ рдлрд░рдХ рд╢реИрд▓реАрдорд╛ рд▓реЗрдЦреНрдЫрдиреН - рдХреЛрд╣реА рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд░реВрдкрдорд╛ рд▓реЗрдЦреНрдЫрдиреН, рдХреЛрд╣реАрд▓реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдкрдорд╛ рд▓реЗрдЦреНрдЫрдиреН, рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рддрд░рд┐рдХрд╛рд▓реЗ рд▓реЗрдЦреНрдЫрдиреН;
    • рд╡рд┐рднрд┐рдиреНрди рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдмрд╛рдЯ, рд╡рд┐рднрд┐рдиреНрди рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рддрд┐рдорд╛рдирд╣рд░реВ;
    • Javasript рдорд╛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рдВрдЧ рдзреЗрд░реИ "рд░рдорд╛рдЗрд▓реЛ" рдЫ - rambda рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреЗрдЦрд╛ рдкрд░реНтАНрдпреЛ рд░ рдЕрдм рдХрд╕реИрд▓реЗ рдкрдирд┐ рдпрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рд▓реЗрдЦрд┐рдПрдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рдкрдвреНрди рд╕рдХреНрджреИрдиред

  • рдпреА рд╕рдмреИрд▓реЗ рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдордорд╛ рдареВрд▓реЛ рдкреНрд░рднрд╛рд╡ рдкрд╛рд░реНрдЫ, рд░ рдпреЛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдкрдорд╛ рдмрдвреЗрдХреЛ рдЫред рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдПрдХрдЕрд░реНрдХрд╛рд╕рдБрдЧ рдЕрд╕рдВрдЧрдд рдЫрдиреН: рдХреЗрд╣реА рдкреНрд░рддрд┐рдЬреНрдЮрд╛рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫрдиреН, рдХреЗрд╣реА async/рдкреНрд░рддреАрдХреНрд╖рд╛рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫрдиреН, рдХреЗрд╣реА рдХрд▓рдмреНрдпрд╛рдХрд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫрдиреНред рддрд┐рдиреАрд╣рд░реВ рдкрдирд┐ рдлрд░рдХ-рдлрд░рдХ рдкреНрд░рддрд┐рдорд╛рдирдорд╛ рд▓реЗрдЦреНрдЫрдиреН!
  • рдЬрд╕рд▓реЗ рдЧрд░реНрджрд╛ рдЖрдпреЛрдЬрдирд╛ рд╕рдЮреНрдЪрд╛рд▓рдирдорд╛ рдХрдард┐рдирд╛рдЗ рд╣реБрдиреНрдЫ ред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдХреЛрдб рдкрдвреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди рднрдиреЗ рдмрдЧ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рдЧрд╛рд╣реНрд░реЛ рдЫред

рд╡реЗрдм рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд╣реЛ?

рдореЛрдЬрд┐рд▓рд╛ рдлрд╛рдЙрдиреНрдбреЗрд╕рди рд░ рдЕрдиреНрдп рдзреЗрд░реИ рдХрдореНрдкрдиреАрд╣рд░реВрдХрд╛ рд╕рд╛рд╣рд╕реА рдХреЗрдЯрд╛рд╣рд░реВ рд╡реЗрдм рдПрд╕реЗрдореНрдмрд▓реА рдЬрд╕реНрддрд╛ рдХреБрд░рд╛рдХреЛ рд╕рд╛рде рдЖрдПред рдпреЛ рдХреЗ рд╣реЛ?

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

  • рдпреЛ рдмрд╛рдЗрдирд░реА рдврд╛рдБрдЪрд╛рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рдмреНрд░рд╛рдЙрдЬрд░рдорд╛ рдирд┐рд░реНрдорд┐рдд рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рд╣реЛред
  • рдмрд╛рдЗрдирд░реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВ рддреНрдпрд╣рд╛рдБ рдкреБрдЧреНрдЫрдиреН рд░ рд▓рдЧрднрдЧ рдиреЗрдЯрд┐рдн рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реБрдиреНрдЫрдиреН, рддреНрдпреЛ рд╣реЛ, рдмреНрд░рд╛рдЙрдЬрд░рд▓реЗ рд╣рд░реЗрдХ рдкрдЯрдХ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдбрдХреЛ рд╕рдмреИ "рдиреВрдбрд▓реНрд╕" рдкрд╛рд░реНрд╕ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред
  • рд╕рдмреИ рдмреНрд░рд╛рдЙрдЬрд░рд╣рд░реВрд▓реЗ рд╕рдорд░реНрдерди рдШреЛрд╖рдгрд╛ рдЧрд░реЗрдХрд╛ рдЫрдиреНред
  • рдпреЛ рдмрд╛рдЗрдЯрдХреЛрдб рднрдПрдХреЛрд▓реЗ, рддрдкрд╛рдЗрдБ рдХреБрдиреИ рдкрдирд┐ рднрд╛рд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рдХрдореНрдкрд╛рдЗрд▓рд░ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
  • рдЪрд╛рд░ рдкреНрд░рдореБрдЦ рдмреНрд░рд╛рдЙрдЬрд░рд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рд╡реЗрдм рд╕рднрд╛ рд╕рдорд░реНрдердирдХреЛ рд╕рд╛рде рдкрдард╛рдЗрдПрдХрд╛ рдЫрдиреНред
  • рд╣рд╛рдореА рдЪрд╛рдБрдбреИ Go рдорд╛ рд╕реНрдерд╛рдиреАрдп рд╕рдорд░реНрдердирдХреЛ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реНрджреИрдЫреМрдВред рдпреЛ рдирдпрд╛рдБ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдердкрд┐рдПрдХреЛ рдЫ: GOARCH=wasm GOOS=js (рдЪрд╛рдБрдбреИ)ред рдЕрд╣рд┐рд▓реЗ рд╕рдореНрдо, рдореИрд▓реЗ рдмреБрдЭреЗ рдЕрдиреБрд╕рд╛рд░, рдпреЛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЫреИрди, рддрд░ рддреНрдпрд╣рд╛рдБ рдПрдХ рдХрдерди рдЫ рдХрд┐ рдпреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдкрдорд╛ Go рдорд╛ рд╣реБрдиреЗрдЫред

рдЕрдм рдХреЗ рдЧрд░реНрдиреЗ? рдЧреЛрдлрд░рдЬреЗрдПрд╕

рдЬрдмрдХрд┐ рд╣рд╛рдореАрд╕рдБрдЧ рд╡реЗрдм рдЕрд╕реЗрдореНрдмрд▓реАрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдЫреИрди, рддреНрдпрд╣рд╛рдБ GopherJS рдЬрд╕реНрддреИ рдЯреНрд░рд╛рдиреНрд╕рдкрд╛рдЗрд▓рд░ рдЫред

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

  • рдЧреЛ рдХреЛрдб "рд╢реБрджреНрдз" рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рдЯреНрд░рд╛рдиреНрд╕рдкрд┐рд▓ рдЧрд░рд┐рдПрдХреЛ рдЫред
  • рд╕рдмреИ рдмреНрд░рд╛рдЙрдЬрд░рд╣рд░реВрдорд╛ рдЪрд▓реНрдЫ - рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдЫреИрдирдиреН рдЬреБрди рдХреЗрд╡рд▓ рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд░рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдЫрдиреН (рдпреЛ рднреНрдпрд╛рдирд┐рд▓рд╛ JS рд╣реЛ, рдЬреБрди рдХреБрдиреИ рдкрдирд┐ рдХреБрд░рд╛рдорд╛ рдЪрд▓реНрдЫ)ред
  • Go рдХрд╛ рд▓рдЧрднрдЧ рд╕рдмреИ рдЪреАрдЬрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдЫ, рдЧреЛрд░рд╛рдЙрдЯрд┐рдирд╣рд░реВ рд░ рдЪреНрдпрд╛рдирд▓рд╣рд░реВ рд╕рд╣рд┐рдд... рд╣рд╛рдореАрд▓реЗ рдорди рдкрд░рд╛рдЙрдиреЗ рд░ рдзреЗрд░реИ рдЬрд╛рдиреНрдиреЗ рд╕рдмреИ рдХреБрд░рд╛рд╣рд░реВред
  • рд▓рдЧрднрдЧ рд╕рдореНрдкреВрд░реНрдг рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рдорд░реНрдерд┐рдд рдЫ, рддреА рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдмрд╛рд╣реЗрдХ рдЬреБрди рдпрд╕рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд░рдорд╛ рд╕рдорд░реНрдерди рдЧрд░реНрди рдХреБрдиреИ рдЕрд░реНрде рд░рд╛рдЦреНрджреИрди: syscall, рдиреЗрдЯ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ (рддреНрдпрд╣рд╛рдБ рдиреЗрдЯ/http рдХреНрд▓рд╛рдЗрдиреНрдЯ рдЫ, рддрд░ рдХреБрдиреИ рд╕рд░реНрднрд░ рдЫреИрди, рд░ рдЧреНрд░рд╛рд╣рдХ XMLHttpRequest рдорд╛рд░реНрдлрдд рдЗрдореБрд▓реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ)ред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рд╕рдореНрдкреВрд░реНрдг рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЙрдкрд▓рдмреНрдз рдЫ - рдпрд╣рд╛рдБ рдпреЛ рдмреНрд░рд╛рдЙрдЬрд░рдорд╛ рдЫ, рдпрд╣рд╛рдБ Go рдХреЛ stdlib рдЫ, рдЬреБрди рд╣рд╛рдореАрд▓рд╛рдИ рдордирдкрд░реНрдЫред
  • Go рдорд╛ рд╕рдореНрдкреВрд░реНрдг рдкреНрдпрд╛рдХреЗрдЬ рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо, рд╕рдмреИ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ (рдЯреЗрдореНрдкреНрд▓реЗрдЯрд┐рдВрдЧ, рдЖрджрд┐) GopherJS рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рд░ рдмреНрд░рд╛рдЙрдЬрд░рдорд╛ рдЪрд▓рд╛рдЙрди рд╕рдХрд┐рдиреНрдЫред

GopherJS рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдзреЗрд░реИ рд╕рдЬрд┐рд▓реЛ рдЫ - рдпреЛ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рдпрдорд┐рдд Go рдкреНрдпрд╛рдХреЗрдЬ рд╣реЛред рд╣рд╛рдореА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЬрд╛рдиреНрдЫреМрдВ, рд░ рд╣рд╛рдореАрд╕рдБрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди GopherJS рдЖрджреЗрд╢ рдЫ:

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

рдпрд╕реНрддреЛ рдЫ рд╕рд╛рдиреЛ рд╣реЗрд▓реЛ рд╕рдВрд╕рд╛рд░...

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

...рдПрдХ рдирд┐рдпрдорд┐рдд рдЧреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо, рдирд┐рдпрдорд┐рдд рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп fmt рдкреНрдпрд╛рдХреЗрдЬ рд░ Binding Js рдмреНрд░рд╛рдЙрдЬрд░ API рдорд╛ рдкреБрдЧреНрдиред Println рдЕрдиреНрддрддрдГ рдХрдиреНрд╕реЛрд▓ рд▓рдЧрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рд╣реБрдиреЗрдЫ рд░ рдмреНрд░рд╛рдЙрдЬрд░рд▓реЗ "рд╣реЗрд▓реЛ рдЧреЛрдлрд░рд╣рд░реВ" рд▓реЗрдЦреНрдиреЗрдЫ! рдпреЛ рдПрдХрджрдо рд╕рд░рд▓ рдЫ: рд╣рд╛рдореА GopherJS рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдЫреМрдВ - рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдмреНрд░рд╛рдЙрдЬрд░рдорд╛ рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВ - рд╕рдмреИ рдХрд╛рдо рдЧрд░реНрджрдЫ!

рддрдкрд╛рдИрдВрд╕рдБрдЧ рдЕрд╣рд┐рд▓реЗ рдХреЗ рдЫ? рдмрд╛рдЗрдиреНрдбрд┐рдЩрд╣рд░реВ

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

рддреНрдпрд╣рд╛рдБ рд╕рдмреИ рд▓реЛрдХрдкреНрд░рд┐рдп js рдлреНрд░реЗрдорд╡рд░реНрдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдмрд╛рдЗрдиреНрдбрд┐рдЩрд╣рд░реВ рдЫрдиреН:

  • JQuery;
  • Angular.js;
  • D3.js рдкреНрд▓рдЯрд┐рдЩ рд░ рдареВрд▓реЛ рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА;
  • React.js;
  • VueJS;
  • рддреНрдпрд╣рд╛рдБ рдЗрд▓реЗрдХреНрдЯреНрд░реЛрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдкрдирд┐ рдЫ (рдЕрд░реНрдерд╛рдд, рд╣рд╛рдореА рдкрд╣рд┐рд▓реЗ рдиреИ рдЗрд▓реЗрдХреНрдЯреНрд░реЛрдирдорд╛ рдбреЗрд╕реНрдХрдЯрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рд▓реЗрдЦреНрди рд╕рдХреНрдЫреМрдВ);
  • рд░ рд╕рдмреИрднрдиреНрджрд╛ рд░рдорд╛рдЗрд▓реЛ рдХреБрд░рд╛ WebGL рд╣реЛ (рд╣рд╛рдореА рдереНрд░реАрдбреА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕, рд╕рдВрдЧреАрдд рд░ рд╕рдмреИ рдЪреАрдЬрд╣рд░реВ рд╕рд╣рд┐рддрдХрд╛ рдЦреЗрд▓рд╣рд░реВ рд╕рд╣рд┐рдд рдкреВрд░реНрдг-рдЧреНрд░рд╛рдлрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдмрдирд╛рдЙрди рд╕рдХреНрдЫреМрдВ);
  • рд░ рд╕рдмреИ рд▓реЛрдХрдкреНрд░рд┐рдп рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдорд╛ рдЕрдиреНрдп рдзреЗрд░реИ рдмрд╛рдЗрдиреНрдбрд┐рдЩрд╣рд░реВред

рдлреНрд░реЗрдорд╡рд░реНрдХ

  1. рддреНрдпрд╣рд╛рдБ GopherJS - Vecty рдХреЛ рд▓рд╛рдЧреА рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдЫред рдпреЛ React.js рдХреЛ рдкреВрд░реНрдг рдПрдирд╛рд▓рдЧ рд╣реЛ, рддрд░ GopherJS рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рд╣рд░реВ рд╕рд╣рд┐рдд Go рдорд╛ рдорд╛рддреНрд░ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред
  2. рддреНрдпрд╣рд╛рдБ рдЦреЗрд▓ рдЭреЛрд▓рд╛рд╣рд░реВ рдЫрдиреН (рдЖрд╢реНрдЪрд░реНрдп!) рдореИрд▓реЗ рджреБрдИ рд╕рдмреИрднрдиреНрджрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдлреЗрд▓рд╛ рдкрд╛рд░реЗ:
    • рдЗрдиреНрдЧреЛ;
    • рдЗрдмрд┐рдЯреЗрдиред

рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рдпреЛ рдХрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рд░ рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ Go рдорд╛ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рднрдиреНрдиреЗ рдХреЗрд╣реА рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рджреЗрдЦрд╛рдЙрдиреЗрдЫреБ:

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

рд╡рд╛ рдпреЛ рд╡рд┐рдХрд▓реНрдк (рдореИрд▓реЗ 3D рд╢реВрдЯрд░ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рди, рддрд░ рдпреЛ рдЕрд╡рд╕реНрдерд┐рдд рд╣реБрди рд╕рдХреНрдЫ):

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

рдо рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрджреИ рдЫреБ?

рдЕрдм рдлреНрд░рдиреНрдЯ-рдПрдиреНрдб рдЙрджреНрдпреЛрдЧ рдпрд╕реНрддреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдЫ рдХрд┐ рдкрд╣рд┐рд▓реЗ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрдмрд╛рдЯ рд░реЛрдПрдХрд╛ рд╕рдмреИ рднрд╛рд╖рд╛рд╣рд░реВ рддреНрдпрд╣рд╛рдБ рд╣рддрд╛рд░рд┐рдиреЗрдЫрдиреНред рдЕрдм рд╕рдмреИ рдХреБрд░рд╛ "рд╡реЗрдм рдПрд╕реЗрдореНрдмрд▓реА" рдорд╛ рдХрдореНрдкрд╛рдЗрд▓ рд╣реБрдиреЗрдЫред рд╣рд╛рдореАрд▓реЗ рддреНрдпрд╣рд╛рдБ рдЧреЛрдлрд░рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рд╣рд╛рдореНрд░реЛ рд╕рд╣реА рдард╛рдЙрдБ рд▓рд┐рди рдХреЗ рдЪрд╛рд╣рд┐рдиреНрдЫ?

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

Go рд▓реЗ рдкрд░рдореНрдкрд░рд╛рдЧрдд рд░реВрдкрдорд╛ рдорд╛рдиреЗрдХреЛ рдЫ рдХрд┐ рдпреЛ рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ рд╣реЛ, рд░ UI рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдкрдорд╛ рдХреБрдиреИ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдЫреИрдирдиреНред рддреНрдпрд╣рд╛рдБ рдХреЗрд╣рд┐ рдЫ, рддрд░ рдпреЛ рдЖрдзрд╛ рдкрд░рд┐рддреНрдпрд╛рдЧ рдЫ, рдЖрдзрд╛ рдЧреИрд░-рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЫред

рд░ рдЕрдм Go рдорд╛ UI рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдмрдирд╛рдЙрдиреЗ рд░рд╛рдореНрд░реЛ рдореМрдХрд╛ рд╣реЛ рдЬреБрди GopherJS рдорд╛ рдЪрд▓реНрдиреЗрдЫ! рддрдкрд╛рдИрдВ рдЕрдиреНрддрддрдГ рдЖрдлреНрдиреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ! рдпреЛ рд╕рдордп рд╣реЛ рдЬрдм рддрдкрд╛рдЗрдБ рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд░ рдпреЛ рдкрд╣рд┐рд▓реЛ рдордзреНрдпреЗ рдПрдХ рд╣реБрдиреЗрдЫ рд░ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдЧреНрд░рд╣рдг рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫ, рд░ рддрдкрд╛рдЗрдБ рдПрдХ рддрд╛рд░рд╛ рд╣реБрдиреБрд╣реБрдиреЗрдЫ (рдпрджрд┐ рдпреЛ рд░рд╛рдореНрд░реЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реЛ)ред

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

рддрдкрд╛рдИрдВ рдПрдХ рдЦреЗрд▓ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ! рд░рдорд╛рдЗрд▓реЛрдХреЛ рд▓рд╛рдЧреА рдорд╛рддреНрд░реИ...

рдореИрд▓реЗ рднрдиреНрди рдЦреЛрдЬреЗрдХреЛ рдпрддрд┐ рд╣реЛред

рдПрд▓реЗрдХреНрд╕реА рдЧреНрд░рд╛рдЪреЗрдн: рдЕрдЧрд╛рдбрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН

рддрдкрд╛рдИрдВрдХрд╛ рдкреНрд░рд╢реНрдирд╣рд░реВ

рдкреНрд░рд╢реНрди (рдпрд╕рдкрдЫрд┐ Q рдХреЛ рд░реВрдкрдорд╛ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХреЛ рдЫ): - рдХреЗ рдо Go рд╡рд╛ Js рдорд╛ рд▓реЗрдЦреНрдЫреБ?

AG: - рддрдкрд╛рдИрдВ рджрд┐рдирдЪрд░реНрдпрд╛, рдЪреНрдпрд╛рдирд▓рд╣рд░реВ, рд╕рдВрд░рдЪрдирд╛рд╣рд░реВ, рдЗрдореНрдмреЗрдбрд┐рдЩ - Go рдорд╛ рд╕рдмреИ рдХреБрд░рд╛ рд▓реЗрдЦреНрдиреБрд╣реБрдиреНрдЫ... рддрдкрд╛рдИрдВ рдШрдЯрдирд╛рдХреЛ рд╕рджрд╕реНрдпрддрд╛ рд▓рд┐рдиреБрд╣реБрдиреНрдЫ, рддреНрдпрд╣рд╛рдБ рд╕рдорд╛рд░реЛрд╣ рдкрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

IN: - рддреНрдпрд╕реЛрднрдП рдо "рдирдЧреНрди" рдЬреЗрдПрд╕рдорд╛ рд▓реЗрдЦреНрдЫреБ?

AG: - рд╣реЛрдЗрди, рддрдкрд╛рдИрдВрд▓реЗ Go рдорд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН рд░ рдмреНрд░рд╛рдЙрдЬрд░ API рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдПрдкреАрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рдЫреИрди)ред рддрдкрд╛рдИрдВ рдЖрдлреНрдиреЛ рдмрд╛рдЗрдиреНрдбрд┐рдЩрд╣рд░реВ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рддрд╛рдХрд┐ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЪреНрдпрд╛рдирд▓рдорд╛ рдкрдард╛рдЗрдиреНрдЫ - рдпреЛ рдЧрд╛рд╣реНрд░реЛ рдЫреИрдиред

IN: - рдореЛрдмрд╛рдЗрд▓рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗ рд╣реЛ?

AG: - рдореИрд▓реЗ рдкрдХреНрдХреИ рджреЗрдЦреЗрдХреЛ рдЫреБ: рддреНрдпрд╣рд╛рдБ рдХрд░реНрдбреЛрднрд╛ рдкреНрдпрд╛рдЪрдХреЛ рд▓рд╛рдЧрд┐ рдмрд╛рдЗрдиреНрдбрд┐рдЩрд╣рд░реВ рдЫрдиреН рдЬреБрди Js рдЪрд▓реНрдЫред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореВрд▓ рдорд╛ - рдорд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫреИрди; рд╣реБрдирд╕рдХреНрдЫ рддреНрдпрд╣рд╛рдБ рдЫ, рд╕рд╛рдпрдж рдЫреИрди (рдорд▓рд╛рдИ рд╡рд┐рд╢реЗрд╖ рдЪрд╛рд╕реЛ рдерд┐рдПрди)ред N-go рдЦреЗрд▓ рдЗрдиреНрдЬрд┐рдирд▓реЗ рджреБрдмреИ рдореЛрдмрд╛рдЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ - рджреБрдмреИ рдЖрдИрдУрдПрд╕ рд░ рдПрдиреНрдбреНрд░реЛрдЗрдбред

IN: - рд╡реЗрдм рд╕рднрд╛ рдХреЛ рдмрд╛рд░реЗ рдорд╛ рдкреНрд░рд╢реНрдиред рдХрдореНрдкреНрд░реЗрд╕рди рд░ "рдЬрд┐рдкрд┐рдЩ" рдХреЛ рдмрд╛рд╡рдЬреБрдж, рдЕрдзрд┐рдХ рд░ рдЕрдзрд┐рдХ рдард╛рдЙрдБ рд▓рд┐рдЗрдПрдХреЛ рдЫ... рдХреЗ рд╣рд╛рдореА рдпрд╕рд░реА рдЕрдЧрд╛рдбрд┐-рдЕрдиреНрдд рд╕рдВрд╕рд╛рд░рд▓рд╛рдИ рдЕрдЭ рдмрдвреА рдорд╛рд░реНрдиреЗ рдЫреИрдиреМрдВ?

AG: - рд╡реЗрдм рдПрд╕реЗрдореНрдмрд▓реА рдмрд╛рдЗрдирд░реА рдврд╛рдБрдЪрд╛ рд╣реЛ, рд░ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдмрд╛рдЗрдирд░реА рдЕрдиреНрддрд┐рдо рд░рд┐рд▓реАрдЬрдорд╛ рдкрд╛рда рднрдиреНрджрд╛ рдмрдвреА рд╣реБрди рд╕рдХреНрджреИрди... рддрдкрд╛рдИрдВ рд░рдирдЯрд╛рдЗрдордорд╛ рдЖрдХрд░реНрд╖рд┐рдд рд╣реБрдиреБрд╣реБрдиреНрдЫ, рддрд░ рдпреЛ рддреНрдпрд╣рд╛рдБ рдирднрдПрдХреЛ рдмреЗрд▓рд╛ рдорд╛рдирдХ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓рд╛рдИ рддрд╛рдиреНрдиреБ рдЬрд╕реНрддреИ рд╣реЛ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдХреЗрд╣рд┐ Lodash рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдорд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫреИрди Lodash рдХрддрд┐ рд▓рд┐рдиреНрдЫред

IN: - рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рд░рдирдЯрд╛рдЗрдо рднрдиреНрджрд╛ рдХрдо ...

AG: - "рд╢реБрджреНрдз" рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛?

IN: - рд╣реЛред рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдкрдард╛рдЙрдиреБ рдЕрдШрд┐ рдХрдореНрдкреНрд░реЗрд╕ рдЧрд░реНрдЫреМрдВ ...

AG: - рддрд░ рдпреЛ рдкрд╛рда рд╣реЛ... рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдзреЗрд░реИ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ, рддрд░ рдпреЛ рдорд╛рддреНрд░ рд╣реЛ (рддрдкрд╛рдИрдВрд╕рдБрдЧ рд╕рдореНрдкреВрд░реНрдг рд░рдирдЯрд╛рдЗрдо рдЫ)ред рдЕрд░реНрдХреЛ, рддрдкрд╛рдЗрдБ рддрдкрд╛рдЗрдБрдХреЛ рдЖрдлреНрдиреИ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рд▓реЗрдЦреНрдиреБрд╣реБрдиреНрдЫ, рдЬрд╕рд▓реЗ рддрдкрд╛рдЗрдБрдХреЛ рдмрд╛рдЗрдирд░реА 1% рд▓реЗ рдмрдврд╛рдЙрдБрдЫред рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рдореИрд▓реЗ рдпреЛ рдлреНрд░рдиреНрдЯрдПрдиреНрдбрд▓рд╛рдИ рдорд╛рд░реЗрдХреЛ рджреЗрдЦреНрджрд┐рдиред рдпрд╕рдмрд╛рд╣реЗрдХ, рд╡реЗрдм рдЕрд╕реЗрдВрдмрд▓реАрд▓реЗ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрдиреНрджрд╛ рдЫрд┐рдЯреЛ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫ - рдпрд╕рд▓рд╛рдИ рдкрд╛рд░реНрд╕ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред

IN: - рдпреЛ рдЕрдЭреИ рдкрдирд┐ рдПрдХ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдмрд┐рдиреНрджреБ рд╣реЛ ... "рд╡рд╕реНрдорд╛" (рд╡реЗрдм тАЛтАЛрдЕрд╕реЗрдореНрдмрд▓реА) рдХреЛ рдХреБрдиреИ рдкрдирд┐ рд╕рдиреНрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЫреИрди рдХрд┐ рдХрд╕реИрд▓реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдиреНрдпрд╛рдп рдЧрд░реНрди рд╕рдХреНрдЫред рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдкрдорд╛, рд╣реЛ: рд╣рд╛рдореА рд╕рдмреИ рдмреБрдЭреНрдЫреМрдВ рдХрд┐ рдмрд╛рдЗрдирд░реА рдЫрд┐рдЯреЛ рд╣реБрдиреБрдкрд░реНрдЫ, рддрд░ рдЙрд╣реА V8 рдХреЛ рд╣рд╛рд▓рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдзреЗрд░реИ рдХреБрд╢рд▓ рдЫред

AG: - рд╣реЛред

IN: - рддреНрдпрд╣рд╛рдБ рд╕рдВрдХрд▓рди рд╕рд╛рдБрдЪреНрдЪреИ рдзреЗрд░реИ рд░рд╛рдореНрд░реЛ рдХрд╛рдо рдЧрд░реНрджрдЫ рд░ рдпреЛ рдПрдХ рдареВрд▓реЛ рдлрд╛рдЗрджрд╛ рд╣реБрдиреЗрдЫ рднрдиреНрдиреЗ рддрдереНрдп рд╣реЛрдЗрдиред

AG: - рд╡реЗрдм рд╕рднрд╛ рдкрдирд┐ рдареВрд▓рд╛ рдорд╛рдиреНрдЫреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИрдПрдХреЛ рд╣реЛред

IN: - рдпреЛ рдорд▓рд╛рдИ рдЕрдЭреИ рдкрдирд┐ рд╡реЗрдм рд╕рднрд╛ рдиреНрдпрд╛рдп рдЧрд░реНрди рдЧрд╛рд╣реНрд░реЛ рдЫ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫред рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рд╡рд░реНрд╖рдХреЛ рд▓рд╛рдЧрд┐ рдХреБрд░рд╛рдХрд╛рдиреАрд╣рд░реВ рдЫрдиреН, рддрд░ рддреНрдпрд╣рд╛рдБ рдХреЗрд╣реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрд▓рдмреНрдзрд┐рд╣рд░реВ рдЫрдиреН рдЬреБрди рдорд╣рд╕реБрд╕ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

AG: - рд╣реБрдирд╕рдХреНрдЫред рд╣рд╛рдореА рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдиреЗ рдЫреМрдБред

IN: - рд╣рд╛рдореАрд╕рдБрдЧ рдмреНрдпрд╛рдХрдПрдиреНрдбрдорд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЫреИрдирдиреН ... рд╕рд╛рдпрдж рд╣рд╛рдореАрд▓реЗ рдпреА рд╕рдорд╕реНрдпрд╛рд╣рд░реВрд▓рд╛рдИ рдлреНрд░рдиреНрдЯрдПрдиреНрдбрдорд╛ рдЫреЛрдбреНрдиреБрдкрд░реНрдЫ? рддреНрдпрд╣рд╛рдБ рдХрд┐рди рдЬрд╛рдиреЗ ?

AG: тАУ рд╣рд╛рдореАрд▓реЗ рдЕрдЧреНрд░рдкрдВрдХреНрддрд┐рдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рдХрд░реНрдордЪрд╛рд░реА рд░рд╛рдЦреНрдиреБрдкрд░реНрдЫ ред

рдХреЗрд╣реА рд╡рд┐рдЬреНрдЮрд╛рдкрдирд╣рд░реВ ЁЯЩВ

рд╣рд╛рдореАрд╕рдБрдЧ рд░рд╣рдиреБ рднрдПрдХреЛрдорд╛ рдзрдиреНрдпрд╡рд╛рджред рддрдкрд╛рдИрд▓рд╛рдИ рд╣рд╛рдореНрд░рд╛ рд▓реЗрдЦрд╣рд░реВ рдордирдкрд░реНрдЫ? рдердк рд░реЛрдЪрдХ рд╕рд╛рдордЧреНрд░реА рд╣реЗрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ? рд╣рд╛рдореАрд▓рд╛рдИ рдЕрд░реНрдбрд░ рдЧрд░реЗрд░ рд╡рд╛ рд╕рд╛рдереАрд╣рд░реВрд▓рд╛рдИ рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реЗрд░ рд╕рдорд░реНрдерди рдЧрд░реНрдиреБрд╣реЛрд╕реН, $4.99 рдмрд╛рдЯ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХреНрд▓рд╛рдЙрдб VPS, рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐-рд╕реНрддрд░ рд╕рд░реНрднрд░рд╣рд░реВрдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдПрдирд╛рд▓рдЧ, рдЬреБрди рд╣рд╛рдореАрд▓реЗ рддрдкрд╛рдИрдВрдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдЧрд░реЗрдХреЛ рд╣реЛ: VPS (KVM) E5-2697 v3 (6 рдХреЛрд░) 10GB DDR4 480GB SSD 1Gbps $ 19 рдмрд╛рдЯ рд╡рд╛ рдХрд╕рд░реА рд╕рд░реНрднрд░ рд╕рд╛рдЭрд╛ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рд╕рдореНрдкреВрд░реНрдг рд╕рддреНрдп? (RAID1 рд░ RAID10 рд╕рдБрдЧ рдЙрдкрд▓рдмреНрдз, 24 рдХреЛрд░ рд╕рдореНрдо рд░ 40GB DDR4 рд╕рдореНрдо)ред

рдбреЗрд▓ R730xd 2x рдПрдореНрд╕реНрдЯрд░реНрдбрдордХреЛ рдЗрдХреНрд╡рд┐рдирд┐рдХреНрд╕ рдЯрд┐рдпрд░ IV рдбрд╛рдЯрд╛ рд╕реЗрдиреНрдЯрд░рдорд╛ рд╕рд╕реНрддреЛ рдЫ? рдпрд╣рд╛рдБ рдорд╛рддреНрд░ 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV $199 рдмрд╛рдЯ рдиреЗрджрд░рд▓реНрдпрд╛рдгреНрдб рдорд╛! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - $99 рдмрд╛рдЯ! рдмрд╛рд░реЗ рдкрдвреНрдиреБрд╣реЛрд╕реН рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдХрд░реНрдкреЛрд░реЗрд╢рди рдХрд╕рд░реА рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреЗред рдбреЗрд▓ R730xd E5-2650 v4 рд╕рд░реНрднрд░рд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧрдХреЛ рд╕рд╛рде рдПрдХ рдкреИрд╕рд╛рдХреЛ рд▓рд╛рдЧрд┐ 9000 рдпреВрд░реЛ рдореВрд▓реНрдпрдХреЛ рд╡рд░реНрдЧ?

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

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