рдЧреЛ рднрд╛рд╖рд╛: ORM рдЪрдпрди

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

рдЖрд╡реЗрджрди


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

рдЬрд╛рдУ: рд╡рд┐рдХрд╛рд╕ рдФрд░ рдорд╛рдиреНрдпрддрд╛


Google рдореЗрдВ, рдЧреЛ рднрд╛рд╖рд╛ рдХрд╛ рд╡рд┐рдХрд╛рд╕ 2007 рдореЗрдВ рд╢реБрд░реВ рд╣реБрдЖред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдХрдВрдкрдиреА рдЬрд╛рд╡рд╛, рдкрд╛рдпрдерди рдФрд░ рд╕реА ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рдереА, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдирдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдХрдорд┐рдпрд╛рдВ рдереАрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЙрдЪреНрдЪ рдореЗрдореЛрд░реА рдЦрдкрдд) рдпрд╛ рд╕реАрдорд┐рдд рдЙрдкрдпреЛрдЧред рдлрд┐рд░ Google рдиреЗ рдЙрдирдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рднрд╛рд╖рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред

рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВ:

  • рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ (рдХреЛрдИ рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ)
  • рддреЗрдЬреА рд╕реЗ рд╕рдВрдХрд▓рди
  • рдлрд╛рд╕реНрдЯ рд░рдирдЯрд╛рдЗрдо (рдХрдо рд╕реЗ рдХрдо рдЬрд╛рд╡рд╛ рдФрд░ C ++ рдХреЗ рдмрд░рд╛рдмрд░)
  • рдХрдЪрд░рд╛ рд░рд┐рд╕рд╛рд╡ рдХрдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕рдВрд╕рд╛рдзрди рд░рд┐рд╕рд╛рд╡
  • рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рди
  • рд╕реНрдереИрддрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ
  • рдЕрддрд┐рд╕реВрдХреНрд╖реНрдорд╡рд╛рдж
  • рд╕рд┐рдВрдереЗрдЯрд┐рдХ рд▓рд╛рдЗрдЯрдиреЗрд╕
  • рдмрд╣реБрдкрджрддрд╛ (рдЕрдирд┐рд╡рд╛рд░реНрдп, рдХрд╛рд░реНрдпрд╛рддреНрдордХ, рд╡рд╕реНрддреБ рдЙрдиреНрдореБрдЦ)

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЧреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВред Google рдиреЗ 2007 рдореЗрдВ рднрд╛рд╖рд╛ рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рд░рд┐рд▓реАрдЬрд╝ 1.0 2012 рдореЗрдВ рд╣реБрдИ рдереА, рдФрд░ 2015 рдореЗрдВ рд░рд┐рд▓реАрдЬрд╝ 1.5, рд╕реА ++ рдХреЛрдб рдХреА рдПрдХ рднреА рдкрдВрдХреНрддрд┐ рдХреЗ рдмрд┐рдирд╛ рдкрд╣рд▓реЗ рд╣реА рд░рд┐рд▓реАрдЬрд╝ рд╣реЛ рдЧрдИ рдереАред рдЙрд╕ рдХреНрд╖рдг рд╕реЗ, рднрд╛рд╖рд╛ рдЦреБрдж рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдЧреЛ рдкрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред

рд╕рдореБрджрд╛рдп рдореЗрдВ рдПрдХ рдирдИ рднрд╛рд╖рд╛ рдХреА рдорд╛рдиреНрдпрддрд╛ рдХреА рдФрд╕рдд рдЖрдпреБ рд▓рдЧрднрдЧ 10 рд╡рд░реНрд╖ рд╣реИ, рд▓реЗрдХрд┐рди рдЧреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЬреВрди 2019 рдореЗрдВ, TIOBE рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рджреБрдирд┐рдпрд╛ рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЧреЛ 15 рд╡реЗрдВ рд╕реНрдерд╛рди рдкрд░ рд╣реИ, рдЬреЛ рдПрдХ рд╡рд░реНрд╖ рдореЗрдВ рддреАрди рд╕реНрдерд╛рди рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рдХреА рд╕рдлрд▓рддрд╛ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдкреИрдХреЗрдЬ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ (рд╕реВрдЪреА рдЕрдкреВрд░реНрдг рд╣реИ):



рдЪрд┐рддреНрд░рдг - github.com/ashleymcnamara/gophers

рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЧрддрд┐ рдХреЗ рд╕рд╛рде рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдк рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП:
  • рд░рдЬрд┐рд╕реНрдЯрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдЖрдпрд╛рдд: рдЖрдпрд╛рдд _ "рд╢реБрджреНрдз / http / pprof"
  • рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ http рд╕рд░реНрд╡рд░ рдЬреЛрдбрд╝реЗрдВ: http.ListenAndServe ("0.0.0.0:8080", nil) рдкрд░ рдЬрд╛рдПрдВ

рдЙрдкрдХрд░рдг рдЬрд╛рдУ


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

  • рдмреЗрдВрдЪрдорд╛рд░реНрдХ - рдмреЗрдВрдЪрдорд╛рд░реНрдХ рддреБрд▓рдирд╛, рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди
  • рдЯреВрд▓ рдХрд╡рд░ - рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
  • рдЧреЛрдбреЛрдХ - рдЯрд┐рдкреНрдкрдгреА-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рд▓реЗрдЦрди рдкреАрдврд╝реА
  • goimports - рдЖрдпрд╛рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг (рдЕрдкреНрд░рдпреБрдХреНрдд рдХреЛ рд╣рдЯрд╛рдХрд░, рдЕрдиреБрдкрд▓рдмреНрдз рдЬреЛрдбрд╝рдирд╛)
  • рдЧреЛрд░реЗрдирдо - refactoring
  • рд╡рд░реНрддрдорд╛рди - рдкреНрд░рд╕реНрддреБрддрд┐ рдЯреНрдпреВрдирд┐рдВрдЧ
  • рдЬрд╛рдУ рдкрд╢реБ рдЪрд┐рдХрд┐рддреНрд╕рдХ - рдЕрдХреНрд╕рд░ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рддреНрд░реБрдЯрд┐ рд▓рд╛рдЗрдирд░
  • рдЧреЛ рдЯреЗрд╕реНрдЯ - рд░рди рдЯреЗрд╕реНрдЯ рдФрд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХ
  • рдЧреЛ рдлрд┐рдХреНрд╕ - рдПрдкреАрдЖрдИ рдмрджрд▓рддреЗ рд╕рдордп рдкрд░рд┐рд╡рд░реНрддрди рдареАрдХ рдХрд░реЗрдВ (рд░рд┐рд▓реАрдЬ рд╕реЗ рдкрд╣рд▓реЗ 1.0)
  • рдЯреВрд▓ рдЯреВрд▓ рдкреНрд░рд┐рдЯрд┐рдВрдЧ - рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ
  • рдЬрд╛рдУ fmt - рдХреЛрдб рд╢реИрд▓реА рджреНрд╡рд╛рд░рд╛ рдХреЛрдб рд╕реНрд╡рд░реВрдкрдг
  • рд░реЗрд╕ рдбрд┐рдЯреЗрдХреНрдЯрд░ - рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдбреЗрдЯрд╛ рд░реЗрд╕ рдвреВрдВрдврдирд╛

рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛


рдЧреЛ рдХреА рдПрдХ рдФрд░ рддрд╛рдХрдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрд╕ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред



рдЬрд╛рдУ рдкреНрд░рд╢рд┐рдХреНрд╖рдг


рдпрджрд┐ рдЖрдк рдЧреЛ рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдо рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдбреЗрд╡рд▓рдкрд░реНрд╕ - рдХреЛрд░ рдЯреАрдо - рд░реВрд╕реА рд╕рд╣рд┐рдд рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдП рдЯреВрд░ рдСрдл рдЧреЛ рдХреЛрд░реНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдХреЛрд░реНрд╕ рд╕рд┐рд░реНрдл 1-3 рджрд┐рдиреЛрдВ рдореЗрдВ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдЦрдиреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЧреЛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

рддреЛ рдХреНрдпрд╛ рдкрдврд╝реЗрдВ:


рдУрдЖрд░рдПрдо рдЗрди рдЧреЛ


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

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

рдбреЗрдЯрд╛рдмреЗрд╕ / sql рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирдореВрдирд╛ рдЪрдпрди рдХреНрд╡реЗрд░реА


defer rows.Close() for rows.Next() { var message string err := rows.Scan(&message) if err != nil { log.Panic(err) } fmt.Println(message) } if err := rows.Err(); err != nil { log.Panic(err) } 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд░ рдмрд╛рд░ рдмрд╣реБрдд рд╕рд╛рд░реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  • рдХрд░реАрдм рдХреА рдкрдВрдХреНрддрд┐ рд╡рд╕реНрддреБ: рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдПрдВред рдмрдВрдж рдХрд░реЗрдВ ()
  • рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ: = row.Err (); рдХреЗ рдмрд╛рдж рд╕реЗ! рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВ рдкрдВрдХреНрддрд┐рдпрд╛рдБ .Next () рдиреЗ рд╣рдореЗрдВ рдЧрд▓рдд рд▓реМрдЯрд╛рдпрд╛

рдЗрд╕ рд╕рдм рд╕реЗ, рдореИрдВ рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдФрд░ рд╕рд░рд▓ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдУрдЖрд░рдПрдоред

рдУрдЖрд░рдПрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдкреНрд░рдХрд╛рд░


рдЬрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЧреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдЖрд░рдПрдо рдХреА рдкрд╕рдВрдж рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдХреНрд╕рд░ рдЧрд┐рдЯрдм рдкрд░ рд░реЗрдЯрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рд╣рдордиреЗ рдУрдЖрд░рдПрдо рдХреЛ рдЕрдкрдиреЗ рд▓рд┐рдП рдЪреБрдирд╛, рддреЛ рдмреАрдЧреЛ рдХреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд░реЗрдЯрд┐рдВрдЧ (18 рд╣рдЬрд╛рд░ "рд╕реНрдЯрд╛рд░") рдорд┐рд▓реАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, ORM рдврд╛рдВрдЪреЗ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд╛рдлреА рдЙрджреНрджреЗрд╢реНрдп рдирд╣реАрдВ рд╣реИ (рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ ORM рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ)ред рдиреЗрддрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЧреЛрд░реНрдо, рдЬреЛ 2013 рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдирджреЗрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдИ рдЕрдиреНрдп рдлрд╛рдпрджреЗ рд╣реИрдВред



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

  • рддреБрд░рдВрдд рдЧреБрд░реБ рдореЗрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ
  • рдЯреИрдЧ рдЫреВрдЯ рд░рд╣реЗ рд╣реИрдВ
  • рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд sql рдмрд┐рд▓реНрдбрд░

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

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рджреЗрдирд╛


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

рд╕рдорд╛рд░рд╛ рдореЗрдВ рд╣реЙрдЯ рдмреИрдХрдПрдВрдб рдмреИрдардХ рдореЗрдВ рд╣рдорд╛рд░реА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓реЗрдЦ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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


All Articles