golang 開發(fā)后端基礎(chǔ)(1)

目標(biāo):使用 golang 開發(fā) web 應(yīng)用

(半)IDE:visual studio code 油狂,如果沒用過就趕緊體驗(yàn)吧绎谦,下一代的開發(fā)工具。我用 visual studio code 寫 rust golang c++ groovy javascript typescript powershell python显歧, 用了就放不下蒙挑。我除了 c++ 還是喜歡用 visual studio 幾乎全用 visual studio code 來寫

visual studio code 提供了對(duì)許多語言的擴(kuò)展

開始今天分享先介紹一位神一般的人物?

TJ Holowaychuk蔗牡,程序員兼藝術(shù)家,Koa嗅剖、Co辩越、Express、jade信粮、mocha黔攒、node-canvas、commander.js等知名開源項(xiàng)目的創(chuàng)建和貢獻(xiàn)者强缘,TJ絕對(duì)是這一兩年node社區(qū)的“弄潮兒”+“精神領(lǐng)袖”督惰。在我學(xué)習(xí) nodejs 時(shí)候才了解到這位大神。

想一想我也是做效果圖和動(dòng)畫的出身的旅掂,和天才 TJ 比起來... 呵呵赏胚。

他在博客上的告別文章,并不意味著他當(dāng)即完全告別node開發(fā)商虐,co和koa這倆大有前途的框架仍會(huì)繼續(xù)維護(hù)觉阅,其他的項(xiàng)目會(huì)轉(zhuǎn)交給別人維護(hù)(言外之意要將其他爛攤子全部丟掉?)秘车。在他的文中典勇,他提到node不再適合當(dāng)下他開發(fā)的軟件了,并且他選擇了Go鲫尊。

所以我也將學(xué)習(xí)重點(diǎn)從 nodejs 移到了 go 上痴柔。如果自己不會(huì)打牌,就隨別人吧疫向。

上代碼咳蔚,先創(chuàng)建一個(gè) go 項(xiàng)目,結(jié)構(gòu)如下圖搔驼。

第一行代碼谈火,

Main 函數(shù)是我們的入口,程序會(huì)從這里開始執(zhí)行舌涨。

引入 net/http 包糯耍,這個(gè)包提供用于創(chuàng)建一個(gè) web 應(yīng)用的方法。

ListenAndServe 方法第一個(gè)參數(shù)為端口號(hào)囊嘉,第二個(gè)參數(shù) nil 表示使用默認(rèn) mux

golang自帶的http.SeverMux路由實(shí)現(xiàn)簡(jiǎn)單,本質(zhì)是一個(gè)map[string]Handler,是請(qǐng)求路徑與該路徑對(duì)應(yīng)的處理函數(shù)的映射關(guān)系温技。

可以添加其他的路由,以及路由對(duì)應(yīng)的方法扭粱。

我們可以自己創(chuàng)建一個(gè)路由服務(wù)來代替使用默認(rèn) mux 服務(wù)

ServeHTTP 函數(shù)名前如果沒有 (p *person) 則說明 ServeHTTP 只是個(gè)函數(shù)舵鳞,但如果有 (p *person) 說明 ServeHTTP 編程了 person 的一個(gè)方法。(p *person) 是 ServeHTTP 的接收者琢蛤。(如下圖)

Golang 為開發(fā)人員提供很多選擇蜓堕,你可以任意配置您的web 服務(wù)抛虏。

*golang中根據(jù)首字母的大小寫來確定可以訪問的權(quán)限。無論是方法名套才、常量迂猴、變量名還是結(jié)構(gòu)體的名稱,如果首字母大寫背伴,則可以被其他的包訪問沸毁;如果首字母小寫,則只能在本包中使用

首先我們需要多引入了 log 和 io 包挂据,他們分別用于打印日志和讀取文件以清。

path 為請(qǐng)求路由端口后內(nèi)容,可作為 ReadFile 訪問文件路徑崎逃。在 golang 中函數(shù)的返回值可為多個(gè)掷倔, ReadFile 返回值為 data(文件中的數(shù)據(jù))和 err 錯(cuò)誤對(duì)象,這點(diǎn)和 nodejs 很像呦个绍。如果 err 為空我們就輸出讀取的文件內(nèi)容勒葱,相反會(huì)輸出 404 錯(cuò)誤頁面

當(dāng)沒有對(duì)應(yīng)文件就輸出 404?

如果我們?cè)?templates? 下放置文件 home.html 那么路由就可以訪問到這個(gè)文件。

大家注意在 golang 中 := 效果 var xxx = 巴柿。我們無需指定變量類型凛虽,但是這種方式僅可用函數(shù)內(nèi)部有效,外部我們是需要指定變量的類型的广恢,如下圖

還有我們函數(shù)的花括號(hào)如果移到下一行的開頭處凯旋,就需要在函數(shù)結(jié)尾處補(bǔ)上 ;分號(hào)結(jié)束符钉迷,這一點(diǎn)大家需要注意一下至非。

運(yùn)行程序時(shí)需要在?? ?go_web_app 根目錄下運(yùn)行?go run .\src\main.go 。否則會(huì)有問題糠聪。如果在 src 目錄下運(yùn)行 go run main.go 會(huì)找不到 templates/home.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荒椭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子舰蟆,更是在濱河造成了極大的恐慌趣惠,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件身害,死亡現(xiàn)場(chǎng)離奇詭異味悄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)塌鸯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門傍菇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人界赔,你說我怎么就攤上這事丢习。” “怎么了淮悼?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵咐低,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我袜腥,道長(zhǎng)见擦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任羹令,我火速辦了婚禮鲤屡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘福侈。我一直安慰自己酒来,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布肪凛。 她就那樣靜靜地躺著堰汉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪伟墙。 梳的紋絲不亂的頭發(fā)上翘鸭,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音戳葵,去河邊找鬼就乓。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拱烁,可吹牛的內(nèi)容都是我干的生蚁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼邻梆,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼守伸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起浦妄,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤尼摹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后剂娄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蠢涝,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年阅懦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了和二。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡耳胎,死狀恐怖惯吕,靈堂內(nèi)的尸體忽然破棺而出惕它,到底是詐尸還是另有隱情,我是刑警寧澤废登,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布淹魄,位于F島的核電站,受9級(jí)特大地震影響堡距,放射性物質(zhì)發(fā)生泄漏甲锡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一羽戒、第九天 我趴在偏房一處隱蔽的房頂上張望缤沦。 院中可真熱鬧,春花似錦易稠、人聲如沸缸废。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呆奕。三九已至,卻和暖如春衬吆,著一層夾襖步出監(jiān)牢的瞬間梁钾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工逊抡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留姆泻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓冒嫡,卻偏偏與公主長(zhǎng)得像拇勃,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子孝凌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容