以我就說(shuō)只會(huì) JavaScript 啊 Java EE 啊 PHP 的就不要冒充程序員了……
堅(jiān)守“ 做人真誠(chéng) · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都發(fā)電機(jī)回收小微創(chuàng)業(yè)公司專業(yè)提供企業(yè)網(wǎng)站設(shè)計(jì)營(yíng)銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺(jué)設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁(yè)布局、功能開(kāi)發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。
先看看 Go 的 net 包和 net/http 包?;?net 包里相對(duì)低級(jí)的接口,用 TCP 寫基本的 C/S 通信程序。如果需要權(quán)威參考書,Unix Network Programming 是唯一正確的選擇。另有 Beej‘s Guide to Network Programming 方便入門。
之后去看 rfc1945 實(shí)現(xiàn)基本的 HTTP/1.0。再之后開(kāi)始實(shí)現(xiàn) HTTP/1.1 的各種細(xì)節(jié)的時(shí)候才需要 http 權(quán)威指南吧。
方案一:
利用GOLANG自帶的HTTP模塊,很少的代碼就能實(shí)現(xiàn)一個(gè)HTTPWEB服務(wù)器。
方案二:自己造輪子
首先,最基本的是http1.1(RFC2616)要徹底搞清楚弄明白?,F(xiàn)在是2018年了,http2.0也是必選項(xiàng)了;
其次,GOLANG的基本編程技能,尤其是TCP/IP編程要熟練;
再次,多線程/協(xié)程/高并發(fā)處理是一個(gè)難點(diǎn),要有必要的經(jīng)驗(yàn);
最后,請(qǐng)參考Nginx,這個(gè)高性能、可靠、易用的WEB服務(wù)器。
可以先直接使用go自帶的http server 框架,這個(gè)框架涵蓋了絕大多數(shù)的功能,比如request response 的基本封裝,簡(jiǎn)單的路由管理,文件上傳處理。
如果發(fā)現(xiàn)Go 自帶的框架解決不了問(wèn)題,可以引入相應(yīng)的第三方組件,比如ORM可以采用中國(guó)人寫的gorm 比如web 的session 管理可以使用gorilla/session
當(dāng)然你也可以直接上大一統(tǒng)的框架比如你提到的beego 還有大名鼎鼎的martini 。不過(guò)不推薦,因?yàn)檫@樣的大框架和Go 語(yǔ)言本身的模塊設(shè)計(jì)有沖突。
實(shí)際開(kāi)發(fā)建議用vscode 加Go 插件來(lái)做IDE,基本包含了其他成熟IDE的所有功能,而且還自帶強(qiáng)大的debug 功能。其他IDE debug 用起來(lái)非常麻煩比如idea 和liteIDE。題主也可以自己試下。