å²ç¢ã®ã€ã³ã¿ãŒãã§ã€ã¹
ããè¯ããœãããŠã§ã¢èšèšãšåŒ·åãªæœè±¡åãå®çŸããããã® Go ã§ã®ã€ã³ã¿ãŒãã§ã€ã¹å®è£ ã«é¢ããæŽå¯ãåŸãããšãã§ããŸããGo ããã°ã©ãã³ã°èšèªã§ã®ã€ã³ã¿ãŒãã§ã€ã¹å®è£ ããã¹ã¿ãŒããããã®ãã¹ããã©ã¯ãã£ã¹ããã³ããå®äŸã玹ä»ããŸãã

ã€ã³ã¿ãŒãã§ã€ã¹ã¯Goããã°ã©ãã³ã°èšèªã®åŒ·åãªæ©èœã§ãããã¯ãªãŒã³ã§ã¢ãžã¥ãŒã«åããã容æã« ã¹ã±ãŒã©ãã«ãªãœãããŠã§ã¢ã¢ããªã±ãŒã·ã§ã³ã äœæããã®ã«åœ¹ç«ã¡ãŸããã€ã³ã¿ãŒãã§ã€ã¹ã¯ãSOLIDååã®å®è£ ãä¿é²ããæè»æ§ãšã³ã³ããŒãã³ãã®ãã«ãããªã³ã°ãæäŸããããšã§ãå¹ççãªãœãããŠã§ã¢ã¢ãŒããã¯ãã£ãèšèšããäžã§éèŠãªåœ¹å²ãæãããŸãã
Goã®ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãåäœãšå®è£ ãåãé¢ããç®çã®ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããŠããããããåãšåäœããã³ãŒããæžãããšãå¯èœã«ããŸãããã®æ©èœã¯ãåå©çšå¯èœã§æè»ãªã³ãŒãã³ã³ããŒãã³ããäœæããããè¯ãæžå¿µã®åé¢ãä¿é²ããããã«äžå¯æ¬ ã§ãã
ã€ã³ã¿ãŒãã§ã€ã¹ã®éèŠæ§ãçè§£ãã
ã€ã³ã¿ãŒãã§ãŒã¹ã¯å€ãã®ããã°ã©ãã³ã°èšèªã§éèŠãªåœ¹å²ãæãããéçºè ã«ããã€ãã®å©ç¹ãæäŸããŠããŸããGo ã§ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããäž»ãªå©ç¹ã«ã¯ã次ã®ãããªãã®ããããŸãïŒ
ã³ãŒãã®åå©çšæ§
ã€ã³ã¿ãŒãã§ã€ã¹ã¯åå©çšå¯èœãªã³ãŒããæžãæ¹æ³ãæäŸããŸãããã®ã¢ãããŒãã«ãããã³ãŒãã®æžãçŽããé¿ãããšã©ãŒãççŸãçºçããå¯èœæ§ãæå°éã«æããããšãã§ããŸãã
ã¯ãªãŒã³ãªãœãããŠã§ã¢ã»ã¢ãŒããã¯ãã£
ã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšããããšã§ãããã¯ãªãŒã³ã§ã¢ãžã¥ãŒã«åããããœãããŠã§ã¢ã»ã¢ãŒããã¯ãã£ãäœæããããšãã§ããŸããã€ã³ã¿ãŒãã§ã€ã¹ã»ã³ã³ãã©ã¯ãã¯å¿ èŠãªåäœã匷調ããã®ã§ãã³ãŒãã®ã³ã³ããŒãã³ãã¯ããççµåã«ãªãã管çãããããªããŸãã
æè»ãªã³ãŒã
ã€ã³ã¿ãŒãã§ã€ã¹ã«ãã£ãŠå®¹æã«ãªã£ãã³ã³ããŒãã³ãã®ãã«ãããªã³ã°ã¯ãããæè»ã§å®¹æã«é©å¿å¯èœãªã³ãŒããå¯èœã«ããŸããç¹å®ã®å®è£ ã倿Žããå¿ èŠãããå Žåã§ããã€ã³ã¿ãŒãã§ãŒã¹ã®å¥çŽãå°éãããŠããéããä»ã®ã·ã¹ãã ãžã®åœ±é¿ãæå°éã«æããããšãã§ããã
ãã¹ããšã¢ããã³ã°
ã€ã³ã¿ãŒãã§ãŒã¹ã¯ããã¹ããšã¢ããã³ã°ãããç°¡åã«ããŸããã³ã³ããŒãã³ãã«ã€ã³ã¿ãŒãã§ãŒã¹ãå®çŸ©ããããšã§ããã¹ãäžã«ã¢ãã¯å®è£ ã代çšããããšãã§ããã³ãŒãã®ç¹å®ã®éšåãåé¢ããŠåæããããšãããç°¡åã«ãªããŸãã
ããç°¡åãªã¡ã³ããã³ã¹
ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããããšã§ãã³ãŒãã»ã³ã³ããŒãã³ããããæŽçããã åäžè²¬ä»»åå㫠沿ã£ããã®ã«ãªããŸãã
ã€ã³ã¿ãŒãã§ã€ã¹ã®å®çŸ©ãšå®è£
Goã§ã€ã³ã¿ãŒãã§ã€ã¹ãå®çŸ©ããŠå®è£ ããã«ã¯ã以äžã®ã¹ãããã«åŸãå¿ èŠããããŸãïŒ
- ã€ã³ã¿ãŒãã§ã€ã¹ãå®çŸ©ããïŒ ã€ã³ã¿ãŒãã§ã€ã¹ã®å®çŸ©ïŒãŸããç¹å®ã®ã¡ãœãããšãã®ã·ã°ããã£ã®ã»ããã§ã€ã³ã¿ãŒãã§ã€ã¹ãå®çŸ©ããŸããã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ããåã¯ããããã®ã¡ãœããã«å¯Ÿå¿ããå®è£ ãæäŸããªããã°ãªããŸãããäŸãã°ã`Printer`ãšããåçŽãªã€ã³ã¿ãŒãã§ãŒã¹ãå®çŸ©ããŠã¿ãŸããã: ```go type Printer interface { Print(string) error } }.```
- ãã®ã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ããåãäœæããŸãïŒ å®çŸ©ããã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ããã«ã¯ãå¿ èŠãªã¡ãœããããã¹ãŠå®è£ ããæ°ããåãäœæããŸããæ³šæãã¹ãç¹ã¯ãGoã¯æç€ºçãªã€ã³ã¿ãŒãã§ã€ã¹å®£èšã䜿çšããªããšããããšã§ããã€ã³ã¿ãŒãã§ã€ã¹ã®ã¡ãœããã·ã°ããã£ã«ãããããã¡ãœãããåã«å«ãŸããŠããã°ãGoã¯èªåçã«ãã®åãã€ã³ã¿ãŒãã§ã€ã¹ãæºãããã®ãšããŠèªèããŸãã以äžã¯ `Printer` ã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ãã `TextPrinter` åãå®çŸ©ããäŸã§ãïŒ``go type TextPrinter struct { Prefix string } func (t TextPrinter) Print(s string) error { fmt.Println(t.Prefix + s) return nil }.```
- ã€ã³ã¿ãŒãã§ãŒã¹ã䜿ã ã€ã³ã¿ãŒãã§ãŒã¹ã®äœ¿çšïŒ ã€ã³ã¿ãŒãã§ãŒã¹ãšãããå®è£ ããåãã§ããã®ã§ãã€ã³ã¿ãŒãã§ãŒã¹ã®èŠä»¶ã æºããåã§ããã°ããã®ã€ã³ã¿ãŒãã§ãŒã¹ãã³ãŒãã§äœ¿çšããããšãã§ããŸããå¥ã®å®è£ ãæäŸããã®ã¯ãå¿ èŠãªã¡ãœãããå®è£ ããæ°ããåãäœãã®ãšåããããç°¡åã§ããäŸãã°ã`Printer` ã€ã³ã¿ãŒãã§ãŒã¹ã `TextPrinter` åã§äœ¿ãã«ã¯ã次ã®ããã«ããŸãïŒgo func main() { var p Printer p = TextPrinter{PrefixïŒ"TextïŒ"} p.Print("Hello, World!") }.```
ã³ãŒãã«ã€ã³ã¿ãŒãã§ã€ã¹ã䜿ãããšã§ãããæè»ã§ä¿å®æ§ã®é«ãã·ã¹ãã ãäœãããšãã§ããGo ã®æœè±¡åãšåã·ã¹ãã ã®ãã¯ãŒããã«ã«æŽ»çšããããšãã§ããŸãã
é©åãªã€ã³ã¿ãŒãã§ã€ã¹èšèšãšãã¹ããã©ã¯ãã£ã¹
Go ã§ã€ã³ã¿ãŒãã§ã€ã¹ãèšèšããå Žåãç¹å®ã®ãã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãã³ãŒãããŒã¹ã®ä¿å®æ§ãå¯èªæ§ãæè»æ§ãé«ããããšãã§ããŸãããããã®ååã«åŸãããšã§ãéçºè ã¯ã¢ããªã±ãŒã·ã§ã³ã®ç°ãªãã³ã³ããŒãã³ãéã®ã·ãŒã ã¬ã¹ãªéä¿¡ãå¯èœã«ããã€ã³ã¿ãŒãã§ã€ã¹ãäœæã§ããŸãã
- å°ãããåäžè²¬ä»»ã®ã€ã³ã¿ãŒãã§ãŒã¹ãåªå ããïŒ è€æ°ã®è²¬ä»»ãæã€å€§ããªã€ã³ã¿ãŒãã§ã€ã¹ããããå°ãããŠéäžçãªã€ã³ã¿ãŒãã§ã€ã¹ãåªå ããŸããããåäžè²¬ä»»ã®ååã«åŸãããšã§ãä¿å®æ§ãæ¡åŒµæ§ããã¹ãæ§ãåäžããŸããå°ããªã€ã³ã¿ãŒãã§ã€ã¹ã¯ãããçŽæçã«å®è£ ã»äœ¿çšã§ãããããã³ãŒãããã£ããããŸãã
- ã€ã³ã¿ãŒãã§ã€ã¹ãã³ã³ã·ã¥ãŒãã¬ãã«ã§å®çŸ©ããïŒ Goã§ã€ã³ã¿ãŒãã§ã€ã¹ãèšèšããå Žåãå®è£ è ã®ããŒãºã§ã¯ãªããæ¶è²»è ã®ããŒãºã«åºã¥ããŠã€ã³ã¿ãŒãã§ã€ã¹ãäœæããã®ããã¹ããã©ã¯ãã£ã¹ã§ããã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããããã±ãŒãžã§ã€ã³ã¿ãŒãã§ã€ã¹ãå®çŸ©ããããšã§ãããããåé¢ãå®çŸããããã±ãŒãžéã®äžèŠãªäŸåé¢ä¿ãå¶éããããšãã§ããŸãã
- ã€ã³ã¿ãŒãã§ãŒã¹ã®ååã¯ããã®æ¯ãèãã«åºã¥ããŠã€ããŸãããïŒ ã€ã³ã¿ãŒãã§ã€ã¹ã®ååã¯ããã®ã€ã³ã¿ãŒãã§ã€ã¹ãã«ãã»ã«åããŠããæ¯ãèããåæ ãããã®ã§ãªããã°ãªããŸãããGoã§ã¯ã`Reader`ã`Writer`ã`Sortable`ã®ãããªã€ã³ã¿ãŒãã§ã€ã¹ã衚ãããã«ã"er "ã "able "ã®ãããªæ¥å°ŸèŸã䜿ãã®ãäžè¬çã§ãããã®ãããªååã«ããããšã§ãã€ã³ã¿ãŒãã§ã€ã¹ã®åœ¹å²ãææ¡ãããããªãããã®ã€ã³ã¿ãŒãã§ã€ã¹ãå®è¡ããæäœãäºæž¬ãããããªããŸãã
- ã¡ãœããã¯æç¢ºã§ãç°¡æœã§çè§£ãããããã®ã«ããïŒ ã€ã³ã¿ãŒãã§ã€ã¹ã®ã¡ãœããã¯ããã®ç®çãšæåŸ ãããæ¯ãèããäŒããèªæã§ããããã«èšèšãããã¹ãã§ãããå®è¡ãããåäœã説æããã¡ãœããåã䜿çšããã¡ãœããã®ã·ã°ããã£ãã·ã³ãã«ã§ãæå°éã®ãã©ã¡ãŒã¿ãšæç¢ºãªæ»ãå€ã®åãæã€ããã«ããŸããã€ã³ã¿ãŒãã§ãŒã¹ã¯è€éã§ãªãã»ã©ãå®è£ ãããã䜿ããããã
- å®è£ ã®è©³çŽ°ãæœè±¡åããïŒ ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãæ¥ç¶ããã³ã³ããŒãã³ãã®å®è£ ã®è©³çŽ°ãæœè±¡åããåäœã®ã¿ã«éäžããããã«èšèšãããã¹ãã§ããããã®æœè±¡åã«ãããã³ã³ããŒãã³ãã¯äºãã«äŸåããããšãªãéä¿¡ãå ±åäœæ¥ãè¡ãããšãã§ãããœãããŠã§ã¢ã»ã¢ãŒããã¯ãã£ã®ã¢ãžã¥ãŒã«æ§ãšæè»æ§ãåäžããã
ã€ã³ã¿ãŒãã§ã€ã¹ãèšèšããéã«ãããã®ãã¹ããã©ã¯ãã£ã¹ãèæ ®ããããšã§ãé·æã«ããã£ãŠç®¡çã»ä¿å®ããããã广çã§æ§é åãããã¢ããªã±ãŒã·ã§ã³ãäœæããããšãã§ããŸãã
Goã«ãããã€ã³ã¿ãŒãã§ãŒã¹ã®å®äŸ
Goã«ãããã€ã³ã¿ãŒãã§ã€ã¹ã®ãã¯ãŒãšæè»æ§ã説æããããã«ãããŸããŸãªã¢ããªã±ãŒã·ã§ã³ãã©ã€ãã©ãªã§ã€ã³ã¿ãŒãã§ã€ã¹ãã©ã®ããã«äœ¿ãããŠããããå®éã®äŸãããã€ãèŠãŠã¿ãŸãããã
-
io.Reader ãš io.WriterïŒ io.Reader`ã€ã³ã¿ãŒãã§ãŒã¹ãš `io.Writer` ã€ã³ã¿ãŒãã§ãŒã¹ã¯ãå ¥åºåã¹ããªãŒã ãæ±ãããã«Goã®æšæºã©ã€ãã©ãªã§ãã䜿ãããã€ã³ã¿ãŒãã§ãŒã¹ã§ãã
type Reader interface { Read(p []byte) (n int, err error) } type Writer interface { Write(p []byte) (n int, err error) }ãããã®ã€ã³ã¿ãã§ãŒã¹ãå®è£ ããããšã§ããã¡ã€ã«ããããã¯ãŒã¯æ¥ç¶ãã€ã³ã¡ã¢ãªãããã¡ããã®ä»ã®ã¹ããªãŒã ããŒã¹ã®ããŒã¿ãœãŒã¹ãã·ã³ã¯ãæ±ãããšãã§ããã³ãŒãã®åå©çšãšããè¯ãæœè±¡åãå®çŸã§ããŸãã
-
http.ãã³ãã© Go ã®æšæºã©ã€ãã©ãªã® `http.Handler` ã€ã³ã¿ãŒãã§ãŒã¹ã¯ãHTTP ãªã¯ãšã¹ããåŠçããçæ³çãªæ¹æ³ã§ãã
Type Handler interface { ServeHTTP(ResponseWriter, *Request) }éçºè ããã®ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ãããšãHTTP ãªã¯ãšã¹ããåŠçããããã«ã«ã¹ã¿ã ããžãã¯ã䜿çšããããHTTP ãµãŒããŒãäœæããããã«çµã¿ç«ãŠããããã¢ãžã¥ãŒã«åãããåå©çšå¯èœãªã³ã³ããŒãã³ããäœæãããããããšãã§ããŸãã
-
sort.Interface Go ã®æšæºã©ã€ãã©ãªã® `sort.Interface` ã䜿ããšãéçºè ã¯ä»»æã®ããŒã¿ã³ã¬ã¯ã·ã§ã³ããœãŒãããããšãã§ãã
ã type Interface interface { Len() int Less(i, j int) bool Swap(i, j int) }ãããã®ã¡ãœãããå®è£ ããããšã§ãæäŸãããŠãã `sort.Sort` 颿°ã䜿çšããŠä»»æã®ããŒã¿ã³ã¬ã¯ã·ã§ã³ããœãŒãããããšãã§ããããã®ã€ã³ã¿ãŒãã§ãŒã¹ã¯ãããŒã¿ã®çš®é¡ããšã«ãœãŒãã¢ã«ãŽãªãºã ãåå®è£ ããããšãªããç°ãªãçš®é¡ã®ããŒã¿ããœãŒãããããã®æè»ã§åå©çšå¯èœãªã¢ãããŒããæäŸããã
ãããã®äŸã¯ãGoã«ãããã€ã³ã¿ãŒãã§ã€ã¹ã®ãã¯ãŒã匷調ããã€ã³ã¿ãŒãã§ã€ã¹ãããã«ã¯ãªãŒã³ã§ã¢ãžã¥ãŒã«åãããåå©çšå¯èœãªã³ãŒããå®çŸãã管çããã¹ããä¿å®ã容æã«ãããã瀺ããŠããŸãã
AppMaster ã®No-Code ãã©ãããã©ãŒã ã«ããã Go ã€ã³ã¿ãŒãã§ãŒã¹
No-code ãã©ãããã©ãŒã ã®ãªãŒããŒã§ãã AppMaster ã¯ãGo ã€ã³ã¿ãŒãã§ã€ã¹ã®ãã¯ãŒãšæè»æ§ã掻çšããŠãå¹ççã§ã¹ã±ãŒã©ãã«ãªããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ãçæããŠããŸããAppMasterAppMaster ã® ã¹ããŒãã¬ã¹ããã¯ãšã³ãã¢ããªã±ãŒã·ã§ã³ã¯ Go ã䜿çšããŠçæããããããåŸæ¥ã®ã¢ããªéçºã¢ãããŒããããé«éãªå®è¡ãšå®¹æãªã¡ã³ããã³ã¹ãå®çŸããŸãã
æè¡çè² åµãæžããããšã§ãAppMaster ãéçºè ã¯ãã©ã€ããªããŒã¿ããŒã¹ãšããŠPostgresqläºæã®ããŒã¿ããŒã¹ãšäºææ§ã®ããããã€ãããã¯ã§ããã©ãŒãã³ã¹ã®é«ãã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸããGoã€ã³ã¿ãŒãã§ã€ã¹ã®ãã¯ãŒã掻çšããããšã§ãAppMaster ãã·ãŒã ã¬ã¹ãªéçºãšã¯ã¹ããªãšã³ã¹ã§ã髿§èœã§ã¢ãžã¥ãŒã«åãããã¢ããªã±ãŒã·ã§ã³ã®äœæã容æã«ããŸãã
Goã€ã³ã¿ãŒãã§ã€ã¹ã¯ãåºç€ãšãªãã³ãŒããçæããè€éãªãœãããŠã§ã¢ã¢ãŒããã¯ãã£ãæ±ãããã®åŒ·åãªæœè±¡åãæäŸããäžã§éèŠãªåœ¹å²ãæãããŸãããã®Goã€ã³ã¿ãŒãã§ã€ã¹ã®çµ±åã¯ãã¢ããªã±ãŒã·ã§ã³éçºã10åéãã3åã³ã¹ãå¹çãããããšããAppMaster'sã®äœ¿åœããµããŒãããã ãã§ãªããéçºè ãäŒæ¥ãé«è² è·ã®ãŠãŒã¹ã±ãŒã¹ã«å¯Ÿå¿ã§ããã¹ã±ãŒã©ãã«ãªãœãªã¥ãŒã·ã§ã³ãæ§ç¯ããã®ã«ã圹ç«ã¡ãŸããAppMasterã®ãã©ãããã©ãŒã ã¯ãææ°ã®ãœãããŠã§ã¢éçºã« Go ã€ã³ã¿ãŒãã§ã€ã¹ãã©ã®ããã«æŽ»çšã§ãããã瀺ãåªããäŸãšãªã£ãŠãããæã®è©Šç·Žã«èããããããå¹ççã§ç®¡çããããã¢ããªã±ãŒã·ã§ã³ãžã®éãéããŠããŸãã

ã€ã³ã¿ãŒãã§ã€ã¹ã广çã«äœ¿çšããããã®ãã³ã
Go ã§ã€ã³ã¿ãŒãã§ã€ã¹ã广çã«äœ¿çšãããšãã¢ããªã±ãŒã·ã§ã³ã®èšèšãã³ãŒãå質ãä¿å®æ§ãå€§å¹ ã«åäžãããããšãã§ããŸããããã§ã¯ãã€ã³ã¿ãŒãã§ã€ã¹ãæå€§éã«æŽ»çšããããã«å¿ èŠãªãã³ããããã€ã玹ä»ããŸãïŒ
- å°ããéäžããã€ã³ã¿ãŒãã§ã€ã¹ïŒ åäžè²¬ä»»ã®ååïŒSRPïŒãå®ããç¹å®ã®ç®çã«å¯Ÿå¿ããã€ã³ã¿ãŒãã§ãŒã¹ãäœæãããå°ããªã€ã³ã¿ãŒãã§ãŒã¹ã¯ãçè§£ãããããä¿å®ãããããå®è£ ãããããã€ã³ã¿ãŒãã§ã€ã¹ã¯æžå¿µäºé ã®åé¢ãä¿é²ããã³ãŒãããããã£ãããšã¢ãžã¥ãŒã«åããŸãã
- ã€ã³ã¿ãŒãã§ã€ã¹ãåãå ¥ããæ§é äœãè¿ãïŒ é¢æ°å ã§ã€ã³ã¿ãŒãã§ã€ã¹ãåãå ¥ããæ§é äœãè¿ãã®ã¯äžè¬çãªGoãã¶ã€ã³ãã¿ãŒã³ã§ããã€ã³ã¿ãŒãã§ã€ã¹ãåãå ¥ããããšã§ãããæè»ã§åé¢ããã颿°ãäœæã§ããç°ãªãããŒã¿åãå¶éãªãæ±ãããšãã§ããŸããäžæ¹ãæ§é äœãè¿ããšãç¹å®ã®å®è£ ã®è©³çްãæäŸãããæ»ãå€ã®åäœãæç€ºçã«èšå®ããããããäºæž¬å¯èœãªæ©èœãä¿èšŒãããŸãã
- ã€ã³ã¿ãŒãã§ãŒã¹ã®åæïŒ SRPãå£ãããšãªãããã粟巧ãªã€ã³ã¿ãŒãã§ã€ã¹ãäœæããã«ã¯ãã€ã³ã¿ãŒãã§ã€ã¹ã®åæã䜿çšããŸããGoã¯ã1ã€ã®ã€ã³ã¿ãŒãã§ã€ã¹ãå¥ã®ã€ã³ã¿ãŒãã§ã€ã¹ã«åã蟌ãããšããµããŒãããŠãããã³ãŒãã®åå©çšæ§ãç¶æããªãããããå°ããªã€ã³ã¿ãŒãã§ã€ã¹ãçµã¿åãããŠããå æ¬çãªã€ã³ã¿ãŒãã§ã€ã¹ãäœæã§ããŸãã
- æç€ºçãªãšã©ãŒåŠçïŒ Goã«ã¯ã ãšã©ãŒã管ç ããããã®äŸå€ãtry/catchæ§æã¯ãããŸããããã®ä»£ããã«ãè€æ°ã®æ»ãå€ã䜿çšãããã®ãã¡ã®ã²ãšã€ããšã©ãŒåã«ããããšãæšå¥šãããŠããŸããã€ã³ã¿ãŒãã§ã€ã¹ã®ã¡ãœããã·ã°ããã£ã«ãšã©ãŒåŠçãçµã¿èŸŒãã§ããã¹ãŠã®å®è£ ã§äžè²«ãããšã©ãŒç®¡çãã§ããããã«ããŸãããã
- ãã¹ããšã¢ããã³ã°ïŒ ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãã¢ãã¯å®è£ ãäœæããããšã§ãã¹ããç°¡çŽ åãã ã³ãŒãã®æ£ããæ¯ãèããæ€èšŒããããšãã§ããŸããã€ã³ã¿ãŒãã§ã€ã¹ã䜿ãããšã§ãå®éã®äŸåé¢ä¿ããã¹ãçšã®ã¢ãã¯ã«çœ®ãæããããšãã§ãããã¹ããå€éšèŠå ã«äŸåããããšãªããã¹ã察象ã®ã³ãŒãã«éäžã§ããããã«ãªããŸãã
- ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ïŒ ã¢ããªã±ãŒã·ã§ã³ãéçºãããšãã«ã¯ãã³ãŒãããªãã¡ã¯ã¿ãªã³ã°ããæ©äŒã«æ³šæããå¿ èŠãªãšããã«ã€ã³ã¿ãŒãã§ã€ã¹ãå°å ¥ããŸããããå ·äœçãªå®è£ ãè€æ°ãã£ãããçµåããã€ãã£ããããå Žåã¯ãã€ã³ã¿ãŒãã§ã€ã¹ãå°å ¥ãããšããã§ãããã
çµè«
Goã®ã€ã³ã¿ãŒãã§ãŒã¹ãçè§£ã䜿ãããªãããšã¯ãããã®éçºè ã«ãšã£ãŠå¿ é ã®ã¹ãã«ã§ããã€ã³ã¿ãŒãã§ã€ã¹ã掻çšããããšã§ãããæè»ã§ä¿å®æ§ãé«ãã¹ã±ãŒã©ãã«ãªãœãããŠã§ã¢ã¢ãŒããã¯ãã£ãæ§ç¯ããããšãã§ããæçµçã«ã¯ã¢ããªã±ãŒã·ã§ã³ã®å質ãåäžãããæè¡çè² åµãæžããããšãã§ããŸãã
ãã®èšäºã§ã¯ãã€ã³ã¿ãŒãã§ã€ã¹ã®å©ç¹ãš Go ããã°ã©ãã³ã°èšèªã«ãããã€ã³ã¿ãŒãã§ã€ã¹ã®åœ¹å²ã«ã€ããŠèª¬æããŸããã€ã³ã¿ãŒãã§ã€ã¹ã®èšèšãšå®è£ ããã¹ããã©ã¯ãã£ã¹ãå®äŸãAppMasterno-code ãã©ãããã©ãŒã ãšã®é¢ä¿ã«ã€ããŠèª¬æããŸããããããã®ã¬ã€ãã©ã€ã³ãšãã³ãã«åŸãããšã§ãã€ã³ã¿ãŒãã§ã€ã¹ã广çã«äœ¿çšã§ããããã«ãªããããããããªã³ãŒããããåªããæœè±¡åãåå©çšæ§ã®åäžã«ã€ãªãããŸãã
ãããªããã³ããšããŠãAppMasterno-code ãã©ãããã©ãŒã ãæäŸããå¹ åºãæ©èœæ§ãæ¢çŽ¢ããããšããããããªãã§ãã ãããã¢ããªã±ãŒã·ã§ã³éçºããã»ã¹ã®é«éåãGoã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããããã¯ãšã³ãã¢ããªã±ãŒã·ã§ã³ã®æ¡åŒµããŸãã¯åã«no-code ãœãªã¥ãŒã·ã§ã³ãéçºã¹ã¿ãã¯ã«çµ±åãããéçºè ã«ãšã£ãŠã貎éãªãªãœãŒã¹ãšãªããŸãã
ãããã質å
ã€ã³ã¿ãŒãã§ã€ã¹ãGoã§éèŠãªã®ã¯ãã³ãŒãã®åå©çšæ§ãæè»æ§ãã³ã³ããŒãã³ãã®ãã«ãããªã³ã°ãå¯èœã«ãã匷åãªæœè±¡åãæäŸããããã ãã€ã³ã¿ãŒãã§ã€ã¹ã¯ãã¯ãªãŒã³ã§ã¢ãžã¥ãŒã«åããããœãããŠã§ã¢ã¢ãŒããã¯ãã£ãèšèšããã®ã«åœ¹ç«ã¡ãã¢ããªã±ãŒã·ã§ã³ã®ç®¡çãšã¹ã±ãŒãªã³ã°ã容æã«ããŸãã
ã€ã³ã¿ãŒãã§ã€ã¹ã䜿ãäž»ãªå©ç¹ã¯ãéçºè ãæè»ã§åå©çšå¯èœãªã³ãŒããäœæã§ããããšã ãã€ã³ã¿ãŒãã§ã€ã¹ã¯æ¯ãèããå®çŸ©ããç°ãªãåãåãã¡ãœãããå®è£ ã§ããããã«ããã
Goã§ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããã«ã¯ãå¿ èŠãªã¡ãœãããšãã®ã·ã°ããã£ãæã€ã€ã³ã¿ãŒãã§ã€ã¹ãå®çŸ©ããŸãããã®åŸãã€ã³ã¿ãŒãã§ã€ã¹ã®ã¡ãœããã»ã·ã°ããã£ã«äžèŽããåãšå¯Ÿå¿ããã¡ãœãããäœæãããGoã¯ãããã®åãã€ã³ã¿ãŒãã§ã€ã¹ãæºããããšãèªåçã«èªèããã®ã§ãæç€ºçãªå®£èšã¯å¿ èŠãããŸããã
Goã§ã€ã³ã¿ãŒãã§ã€ã¹ãèšèšããããã®ãã¹ããã©ã¯ãã£ã¹ã«ã¯ãåäžã®è²¬ä»»ãæã€å°ããéäžããã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããããšãåäžè²¬ä»»ã®ååã«åŸãããšãåäœã«åºã¥ããŠã€ã³ã¿ãŒãã§ã€ã¹ãåœåããããšãã€ã³ã¿ãŒãã§ã€ã¹ã¡ãœãããæç¢ºãã€ç°¡æœã«ããããšãçè§£ããããå®è£ ããããã€ã³ã¿ãŒãã§ã€ã¹ãèšèšããããšãªã©ããããŸãã
AppMasterã®ããŒã³ãŒãã»ãã©ãããã©ãŒã ã¯ãå¹ççã§ã¹ã±ãŒã©ãã«ãªããã¯ãšã³ãã»ã¢ããªã±ãŒã·ã§ã³ã®çæã«Goã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšããŠããŸããã¹ããŒãã¬ã¹ã®ããã¯ãšã³ãã¢ããªã±ãŒã·ã§ã³ã¯Goã§çæãããããã©ãŒãã³ã¹ãšã¡ã³ããã³ã¹ã«åªããã¡ãªããããããããŸããAppMaster ãã¢ããªã±ãŒã·ã§ã³ã¯ã¹ã¯ã©ããããçæããããããæè¡çè² åµããªããPostgresqläºæã®ããŒã¿ããŒã¹ãšã®äºææ§ããããŸãã
Goã§ã€ã³ã¿ãŒãã§ã€ã¹ã䜿ãå®çšçãªäŸãšããŠãæšæºã©ã€ãã©ãªã®ãio.Readerããšãio.Writerãã€ã³ã¿ãŒãã§ã€ã¹ãããããããã®æè»ãªã€ã³ã¿ãŒãã§ãŒã¹ã¯æ§ã ãªããŒã¿ãœãŒã¹ãšã·ã³ã¯ããµããŒãããç°ãªãããŒã¿ã¹ããªãŒã ãšã®ã·ãŒã ã¬ã¹ãªçµ±åãå¯èœã«ããŸãããã®çµæãéçºè ã¯åºç€ãšãªããœãŒã¹ããã¹ãã£ããŒã·ã§ã³ã®åãæ°ã«ããããšãªãã倿§ãªããŒã¿åŠçã¿ã¹ã¯ã®ããã®åå©çšå¯èœãªã³ãŒããäœæããããšãã§ããŸãã


