рдкреЗрд╢ рд╣реИ рдЧреЛ рдФрд░ рдПрдордЬреАрдУ рдлреНрд░реЗрдорд╡рд░реНрдХ

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░! рдореИрдВ рдЧреЛ рдореЗрдВ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореИрдВрдиреЗ рдПрдХ рджреГрд╢реНрдпрджрд░реНрд╢реА рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдЕрдкрдирд╛ рд░рд╛рд╕реНрддрд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рддрдм рдореИрдВрдиреЗ рдкрд╛рдпрдерди рдореЗрдВ рдмреИрдХрдПрдВрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░, рдЦреБрдж рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕реА # Asp.Net MVC рдХреЛред рд▓реЗрдХрд┐рди рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЗрд╕ рдЦреВрдмрд╕реВрд░рдд рднрд╛рд╖рд╛ рдЧреЛ рд╕реЗ рдорд┐рд▓рд╛ред

рдХреНрдпреЛрдВ рдЬрд╛рдирд╛ рд╣реИ?


1 - рд╕рдВрдХрд▓рд┐рдд рднрд╛рд╖рд╛ред
2 рдПрдХ рдмрд╣реБрдд рд╣реА рдЕрд╕рд╛рдорд╛рдиреНрдп рднрд╛рд╖рд╛ рд╣реИред

рд╕рдВрд░рдЪрдирд╛рдПрдВ, рдЗрдВрдЯрд░рдлреЗрд╕ ... рдореБрдЭреЗ рдЕрдкрдирд╛ рдорд╕реНрддрд┐рд╖реНрдХ рддреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛, рд░рд╛рд╣рдд рдорд┐рд▓реАред рдФрд░ рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛, рдЦрддреНрдо рдХрд░рдирд╛ рд╣реИред рдХрдХреНрд╖рд╛рдПрдБ рдХрд╣рд╛рдБ рд╣реИрдВ? OOP рдХрд╣рд╛рдВ рд╣реИ? рдЖрдкрдХреЗ рдкрд╕рдВрджреАрджрд╛ рдкреИрдЯрд░реНрди рдХрд╣рд╛рдВ рд╣реИрдВ?

рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд╕рд┐рд░ рдХреЛ рдереЛрдбрд╝рд╛ рддреЛрдбрд╝рдХрд░, рдЧреЛ рднрд╛рд╖рд╛ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓реА рдФрд░ рдореБрдЭреЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ред рдареАрдХ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдкрд╣рд▓реА рдмрд╛рдд рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд╣рд▓реА "рдмрд╛рдЗрдХ" рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЕрд░реНрдерд╛рддреН рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдЬрд┐рд╕реЗ рдПрдордЬреАрдЬреАрдУ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рдЬреЛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдЬрд┐рд╕рдХреА рдореИрдВрдиреЗ рдЖрдХрд╛рдВрдХреНрд╖рд╛ рдХреА рдереА


рдмреЗрд╢рдХ, рдореИрдВ рддреБрд░рдВрдд Asp.Net рдХреА рддрд░рд╣ рдПрдХ MVC рдлреНрд░реЗрдорд╡рд░реНрдХ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЧреЛ рднрд╛рд╖рд╛ рдЕрдЬреАрдм рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реБрдЖ:

рдирд┐рдпрдВрддреНрд░рдХ (рдирд┐рдпрдВрддреНрд░рдХ)


рдирд┐рдпрдВрддреНрд░рдХ рдПрдХ рдРрд╕реА рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рдзрд┐рдпрд╛рдБ рдмрд╛рд╣рд░реА (рдПрдкреАрдЖрдИ) рдФрд░ рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рджреЛрдиреЛрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╡реЗ рдЬреЛ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рддреБрд░рдВрдд, рдПрдХ рд╕рдорд╛рдЪрд╛рд░ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

import mggo type News struct{ ID int Title string Text string } func NewNews() *NewNews{ return &NewNews{} } func init() { //   mggo.RegisterController("news", NewNews) } func(n *News) Read(ctx *mggo.BaseContext) News{ return News{1, "First News", "Text first News"} } func(n *News) IndexView(ctx *mggo.BaseContext, data *mggo.ViewData, path []string){ data.View = "news/news.html" data.Data["News"] data.Data["News"] = n.Read() } 


рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рдорд╛рдЪрд╛рд░ / рд╕рдорд╛рдЪрд╛рд░ / рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ

рдЬрд╣рд╛рдВ рд╕рдорд╛рдЪрд╛рд░ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдирд╛рдо рд╣реИ, рдФрд░ рдореБрдЦреНрдп рдкреГрд╖реНрда рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╡рд┐рдзрд┐ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

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

 func init(){ ... mggo.AppendRight("News.Read", mggo.RRightGuest) } 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП api рдордВрдЧрд▓рд╛рдЪрд░рдг рдХреЗ рд▓рд┐рдП рд░реАрдб рд╡рд┐рдзрд┐ рдЙрдкрд▓рдмреНрдз рд╣реИред

 fetch("/api/", { "method": "POST", "headers": { 'Accept': 'application/json', 'Content-Type': 'application/json' }, "body": JSON.stringify({ "method": "News.Read", "params": {} }) }).then(res => res.Json()).then(console.log) 

рдкрд░рд┐рдгрд╛рдо

 {result: {ID:1, Title:"First News", Text:"Text first News"}} 

рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ред рдкрд░рдореЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрд░рдЪрдирд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

 func(n *News) Read(ctx *mggo.BaseContext) News{ if n.ID ==1 { return News{1, "First News", "Text first News"} } else { return News{} } } 

рдФрд░ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП: 1 - рдкрд░рдорд╕ {рдЖрдИрдбреА: 1})

рдФрд░ рдХреНрдпрд╛?


PostgreSQLред рдЧреЛ-рдкреАрдЬреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдврд╛рдВрдЪреЗ рдореЗрдВ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдЪрд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рддреБрд░рдВрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рд╕рдорд╛рдЪрд╛рд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдкрд╛рд╕ рд╕реНрдереИрддрд┐рдХ рдбреЗрдЯрд╛ рд╣реИред рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдЖрдкрдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд╡рд╣ рд╣реИ рдПрдХ рд╕рдорд╛рдЪрд╛рд░ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдирд╛ред Init рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВред

 func init(){ ... mggo.InitCallback(func(){ mggo.CreateTable([]interface{}{(*News)(nil)}) }) } 

рдЕрдм, рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдмрд╛рдж, рд╣рдо рд╕рдорд╛рдЪрд╛рд░ рддрд╛рд▓рд┐рдХрд╛, рдлрд╝реАрд▓реНрдб рдЖрдИрдбреА, рд╢реАрд░реНрд╖рдХ рдФрд░ рдкрд╛рда рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред

рдкрдврд╝реЗрдВ рд╡рд┐рдзрд┐ рдмрджрд▓реЗрдВ:

 func(n *News) Read(ctx *mggo.BaseContext) News{ mggo.SQL().Select(n) return *n } 

рдпрджрд┐ рд╣рдо рдкреИрд░рд╛рдореАрдЯрд░ рдЖрдИрдбреА: 1 рдХреЗ рд╕рд╛рде News.Read рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдореЗрдВ рдХреБрдВрдЬреА 1 рдХреЗ рд╕рд╛рде рд╕рдорд╛рдЪрд╛рд░ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдорд┐рд▓рддрд╛ рд╣реИред

рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЧреЛ-рдкреАрдЬреА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВред

рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИред рд╕рдм рдХреБрдЫ рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВ рдЬрд▓реНрдж рд╣реА рд╡рд┐рд╕реНрддреГрдд рджрд╕реНрддрд╛рд╡реЗрдЬ рд▓рд┐рдЦреВрдВрдЧрд╛ рдФрд░ рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ред рдпрд╣рд╛рдБ Mggo рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд╛рд░рд╛рдВрд╢ рд╣реИред

Ockets рд╡реЗрдм рд╕реЙрдХреЗрдЯ
Events рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдИрд╡реЗрдВрдЯ
Aching рдХреИрд╢рд┐рдВрдЧ рд╡рд┐рдзрд┐ рдкрд░рд┐рдгрд╛рдо
тБГ JsonRPC рдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ
тБГ рд▓рд┐рдмрд╛ рддреНрд╡рд░рд┐рдд рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдирд┐рд░реНрдорд╛рдг рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП

рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рд▓реЗрдЦ рдЙрдкрдпреЛрдЧреА рдорд┐рд▓реЗрдЧрд╛ред рдмреЗрд╢рдХ, рдЕрдиреНрдп рддреИрдпрд╛рд░-рдирд┐рд░реНрдорд┐рдд рдФрд░ рд╢рд╛рдВрдд рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИред рдореИрдВ рдмрд╕ рдЕрдкрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдЦреБрдж рд╕реЗ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдФрд░ рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ

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


All Articles