Go語(yǔ)言。他主要是在一些網(wǎng)頁(yè)版的服務(wù)器中用于系統(tǒng)編程的一種語(yǔ)言。他是谷歌開發(fā)的一種編程語(yǔ)言。在一定程度上,谷歌有一定的壟斷作用。不能隨隨便便的在語(yǔ)言當(dāng)中添加其他的語(yǔ)言成分。
成都創(chuàng)新互聯(lián)公司作為成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問(wèn)題,行業(yè)涉及食品包裝袋等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。
前端框架越來(lái)越豐富,前后端分離已經(jīng)是大多數(shù)軟件團(tuán)隊(duì)采取的模式了。vue使用的場(chǎng)景也越來(lái)越多。
go本來(lái)使用template模板來(lái)進(jìn)行前端的表現(xiàn),現(xiàn)在可以用vue來(lái)分擔(dān)很大一部分工作了。
通常直接使用go語(yǔ)言寫后端,然后使用靜態(tài)模板加載渲染前端,前端獲取后端提供的數(shù)據(jù)是使用{{ }}符號(hào),2個(gè)套在一起的花括號(hào)。這個(gè)也是vue使用的數(shù)據(jù)表現(xiàn)方式。
如果go+vue來(lái)協(xié)同工作的話,需要對(duì)vue進(jìn)行一點(diǎn)設(shè)置。比如把{{ }}的方式改為[[ ]]的方式。
首先我們要知道,vue的使用,需要在頁(yè)面中加載vue.js或vue.min.js
純靜態(tài)網(wǎng)頁(yè)使用vue是這樣的(給個(gè)html例子)
然后我們實(shí)現(xiàn)一個(gè)go的簡(jiǎn)單web服務(wù)和模板頁(yè)面
這個(gè)go服務(wù)器通過(guò)端口 1989 展示服務(wù)器頁(yè)面,提供了一個(gè)靜態(tài)文件路徑 htmlpage,我們把vue.js和index.html文件都放置在htmlpage路徑里。
go服務(wù)器還用模板給前臺(tái)頁(yè)面提供了一個(gè)News結(jié)構(gòu)的數(shù)據(jù),數(shù)據(jù)包括:Title,Content,Author的值。
在index.html頁(yè)面中,加載vue.js的時(shí)候需要帶上靜態(tài)路徑 htmlpage
在 new 一個(gè) vue 變量的時(shí)候,必須有一句來(lái)設(shè)置包裹數(shù)據(jù)的符號(hào),我們這里設(shè)置這個(gè)符號(hào)為[[ ]]
同時(shí),所有需要由 vue 渲染的數(shù)據(jù),都寫成類似這樣的樣子
在 go + vue 方式下的完整模板文件 index.html
此頁(yè)面中{{ }}包裹的數(shù)據(jù)是由go從后端提供的數(shù)據(jù)( 例如:{{.Title}}),而[[ ]]包裹的數(shù)據(jù),是vue渲染的數(shù)據(jù)。
只是把 Vue里的數(shù)據(jù),改為由go后端提供即可。
好吧,作者已經(jīng)在向月亮示愛(ài)了。呵呵 _
運(yùn)行一下程序,看修改模板后的效果。
go語(yǔ)言適用的領(lǐng)域有:
Go語(yǔ)言主要用作服務(wù)器端開發(fā),其定位是用來(lái)開發(fā)“大型軟件”的,適合于很多程序員一起開發(fā)大型軟件,并且開發(fā)周期長(zhǎng),支持云計(jì)算的網(wǎng)絡(luò)服務(wù)。
Go語(yǔ)言作為服務(wù)器編程語(yǔ)言,很適合處理日志、數(shù)據(jù)打包、虛擬機(jī)處理、文件系統(tǒng)、分布式系統(tǒng)、數(shù)據(jù)庫(kù)代理等;網(wǎng)絡(luò)編程方面,Go語(yǔ)言廣泛應(yīng)用于Web應(yīng)用、API應(yīng)用、下載應(yīng)用等;除此之外,Go語(yǔ)言還可用于內(nèi)存數(shù)據(jù)庫(kù)和云平臺(tái)領(lǐng)域,目前國(guó)外很多云平臺(tái)都是采用Go開發(fā)。
Go語(yǔ)言能夠讓程序員快速開發(fā),并且在軟件不斷的增長(zhǎng)過(guò)程中,它能讓程序員更容易地進(jìn)行維護(hù)和修改。它融合了傳統(tǒng)編譯型語(yǔ)言的高效性和腳本語(yǔ)言的易用性和富于表達(dá)性。
Go語(yǔ)言作為一門大型項(xiàng)目開發(fā)語(yǔ)言,在很多大公司相繼使用,甚至完全轉(zhuǎn)向Go開發(fā),其中代表有Google、Facebook、騰訊、百度、阿里巴巴、京東、小米以及360、美團(tuán)、滴滴以及新浪等,因此,Go語(yǔ)言的開發(fā)前景還是很不錯(cuò)的!
適合。框架足夠成熟了 A Survey of 5 Go Web Frameworks
小型項(xiàng)目你甚至不用框架,用net/http http - The Go Programming Language
常用庫(kù)也成熟了 Top - Go Search
golang的web后端即使不concurrent也比php,ruby,python快很多很多
golang里用concurrent真的非常方便,非常非常快,超大web項(xiàng)目golang scale成本低
如果你想,golang的部署可以比php更方便,使用go get和http.ServeAndListen()可以不用nginx和apache
對(duì)于文件改動(dòng)重新編譯其實(shí)并不是大問(wèn)題,看pilu/fresh · GitHub,其實(shí)你自己寫shell腳本(也可以直接用go寫,因?yàn)樗旧砭褪窍到y(tǒng)語(yǔ)言)監(jiān)控文件系統(tǒng)改動(dòng)然后自動(dòng)重新build,即使是C/C++的項(xiàng)目這也不是大問(wèn)題,人們不用C/C++寫web是因?yàn)樗鼈儾皇菍憌eb app的最佳選擇
golang寫的代碼編譯通過(guò)后,要比scripting language魯棒,因?yàn)間o compiler強(qiáng)制一些最佳實(shí)踐