golang http版hello world

背景

正式開始學習Golang了,不會從基本語法講起,這個大家可以google或者從golang的官方文檔裡面進行學習,實戰還是學習一個語言最便捷的方式,作為一個初入門的golang小白,我們還是寫一個XXX管理系統,更用java寫業務系統一樣,基本上是如下流程


golang http版hello world


golang基礎語法學習網站推薦

一些基本的語法可以在這個網站上簡單的去瀏覽一下,有一個簡單的整體印象,然後趕快去安裝golang最新的版本,因為學習一門新的語言最好的方法就是動手實踐,而不是去學習理論,有了一個印象之後,就按照上圖我們計劃的一樣,開始動手實戰,去把該做的事情做好就可以了

https://gobyexample.com/


環境搭建


golang版本選擇


首先我們使用最新的GO1.13開發,go畢竟是一門新語言,跟java不一樣,很多人很多公司目前用的java版本還是停留在java8上,但是golang不一樣,一些新的特性,一些性能上的優化都會在新的版本中體現,所以我們在選擇golang版本的時候跟java的思路是不一樣的


開發工具選擇

因為本人一直是java開發出生,一直使用的是intellij idea,所以還是選擇goland的,或者在intellij idea中安裝go的插件,其他的工具也是可以的,例如vscode的,工具和學習語言沒有直接的關係,跟習慣有關係,養成習慣了就可以了,知道哪些開發工具的快捷鍵能夠方便你的開發就可以了


GOROOT和GOPATH

這個是學習golang繞不開的,說真話,這個給我造成了很大的困擾,特別是從github上下載某些golang的優秀項目源碼的時候,就會有很多問題,目前已經有了自己的解決方案,但是並不知道對不對,這個後面再說,先說GOROOT,我們用java的角度來講,就是設置golang的版本,因為你本地可能有golang1.12,golang1.13等等,所以你需要在開發工具中設置你的golang版本,這個還是很簡單的,沒有什麼可以糾結的,GOPATH如果用java類比的話,我覺得可以是maven下載的java jar包地址來類比,例如在java開發中maven下載spring的包依賴,例如你設置到D:\maven\resp文件夾下,下次如果在需要spring包的時候,就會優先從D:\maven\resp找,golang也是,如果golang需要連接redis需要import一些依賴,這個時候golang也會從網上拉對應的組件依賴,下載的包就會下載到GOPATH中,這就是我對GOROOT和GOPATH的理解


goland搭建項目

1.打開goland,先查看Setting配置,我都是默認配置,配置如下


golang http版hello world

goroot配置


golang http版hello world

gopath配置

2.新建項目

2.1 golang新建項目jarvis,新建項目我還是要多說兩句,比較重要的就是路徑的選擇,我們先回憶一下,如果是java項目,我們隨便選擇一個路徑就可以了,例如命名為java_workspace然後就可以了,但是golang就比較考究了,也許我自己做的不對,希望有golang大神指導啊,經過我個人多次試驗,需要把自己的項目建在gopath下,如上圖,我的gopath在C:\Users\xxxx\go下,那我就在這個目錄下新建一個src文件下,然後在這個src文件夾下新建項目,原因其實也好理解,

因為以後如果你其他的項目需要你這個新建的項目中提供的某些功能,或者你新項目是某個項目的子項目,別人需要依賴你,你不能像java一樣,打成一個jar包,deploy一下,就可以了,我們之前說過,golang的項目依賴只有2個路徑一個是goroot,一個是gopath,所以你把你的項目放在gopath下,這樣就天然讓你的項目中提供的代碼能力能夠暴露給你其他項目使用,否則你新建的項目放在其他非gopath路徑下,就像與世隔絕,你不能輸出自己的能力給別人用,如下圖展示,選擇go modules,要設置一下proxy,這個proxy跟maven的遠程倉庫地址比較像,我們在java中一般使用阿里提供的公有maven倉庫,這邊也是,我們設置https://goproxy.cn,這樣拉取一些外部依賴的時候,能夠快一點


golang http版hello world


2.2 新建main函數,main.go 這個和java比較像,整個項目結構大概是這樣的,如下圖所示


golang http版hello world

如果沒有go.mod文件的話,可以在控制檯運行go mod init命令


golang http版hello world

2.3 main函數中的內容也比較簡單,跟java中的常用的開發框架spring mvc比較像,完整的代碼如下所示,如果有一點變成基礎的話,基本上也比較容易懂


golang http版hello world

簡單地描述一下上面的代碼:

接下來我們可以運行main函數,在goland的IDE中有2種比較常見的方式

1.用命令行啟動,命令也是比較簡單go run main.go


golang http版hello world

2.goland這麼智能的ide當然不會要你去手敲命令去運行main函數,但是我們要簡單的記一下命令,可以通過如下的方式啟動,跟java也是比較類似


golang http版hello world


訪問localhost:9090/hello,我們使用postman訪問


golang http版hello world


可以看到一個簡單的web服務器就搭建完成了,雖然就是一個hello world程序,但是從代碼量,操作程度都比java簡單,如果你是一個熟練的java developer,搭建一個spring mvc你可能需要5mins,如果你使用spring boot也可能需要3mins,但是golang基本上就更加簡單了,沒有依賴任何外部第三方的包


小結

這個小節還是比較簡單的,主要是幫助大家快速上手golang,感覺這個上手難度跟java差不多,但是肯定比c/c++簡單一點,基本語法大家還需要一起去熟悉,然後多動手實踐,gopath的問題你可以多搭建幾個項目,然後多嘗試,也會總結一套自己的經驗,下一個小節,我們完成在內存中完成golang web中的crud操作


如果您能花費5mins看到尾部,也對golang感興趣的話,或者想一起學習golang的話,希望大家點一個關注,或者收藏,素質3連,謝謝~


分享到:


相關文章: