本文目錄一覽:
- 1、go 語言適合做哪些開發
- 2、go語言有前景嗎?
- 3、golang 微服務開發(一)
- 4、如何Golang開發Android應用
- 5、golang開發效率小技巧之gopatch
- 6、golang適合做web開發嗎
go 語言適合做哪些開發
應用於搭建 Web 伺服器,存儲集群或類似用途的巨型中央伺服器的系統編程語言。
Go 是谷歌的編程語言,而不是社區的。在這位博主看來,雖然 Go 語言擁有一個貢獻者社區,但是它並不是社區的項目,只是谷歌的一個項目。所以只要是谷歌反對的東西,沒有人可以把這個東西加到 Go 語言中。
InfoQ 記者也第一時間聯繫了《Go 並發編程實戰》作者、前輕鬆籌大數據負責人郝林,他的觀點是:Go 語言是大家的,只有偽愛好者才會談捨棄。在郝林看來,Go 語言官方團隊在谷歌內部實屬一個很小的團隊,但其成員幾乎個個都是技術大神。
很多社區成員為 Go 語言貢獻了很多重要並且有價值的東西,這些從貢獻者和提交者的多樣性就可以看出來。但谷歌作為整個 Go 社區的守門人,它獨自決定什麼東西可以被 Go 語言接受,什麼不能被接受。
在 Go 語言模塊系統上發生的一件事情,谷歌 Go 語言核心團隊的一名成員放棄了由外部 Go 社區開發的一個模塊系統,因為它使用了另一種不同的模型。Go 語言擁有一個貢獻者社區,但是它並不是一個社區項目。
go語言有前景嗎?
就目前來看還是很有前景,因為越來越火了,不過他的應用領域還是局限在高並發處理和網站開發,畢竟是後起之秀所以在其他桌面程序領域沒那麼容易普及和超越c++,找工作就不推薦學go
golang 微服務開發(一)
本項目旨在使用golang 搭建一個微服務應用。
gin做api和rpc的客戶端 go-micro作為後台微服務
···
// gin
Frame
– app // 控制器
– conf // 配置文件
– middleward // 中間件
– models // 模型
– routes // 路由
– services // 服務層
– uitl // 工具
– main.go // 入口
// app 目錄
app
– api
– v1
– goods.go
– v2
– route.go
– app.go
//conf目錄
conf
– config.ini
models
– models.go
services
– xxxService.go
util
– config.go
···
如何Golang開發Android應用
如何Golang開發Android應用:
一丶準備
1.一台Linux 64的機器
2.一個帶有AndroidStudioIDE的開發機器
因為環境配置實在複雜,所以引入的docker。
docker pull codeskyblue/docker-goandroid
docker run –rm -ti codeskyblue/docker-goandroid bash
cd example; echo “view example projects
docker起來之後,什麼就都配置好了,NDK,java,GO的環境變數了,等等,並且還預裝了vim,gradle,tmux,git,syncthing,svn
二丶代碼
1.寫代碼之前,先約定下目錄結構
go的代碼都放在src/golib下,編譯使用make.bash編譯腳本,看下這個文件樹
.
|– app.iml
|– build.gradle
|– libs/armeabi-v7a # go編譯生成的so文件
| `– libgojni.so
|– main.go_tmpl # 一個模板文件,先不用管它
|– make.bash # 編譯腳本,用來生成.so和Java代碼
`– src
|– golib
| |– hi
| | |– go_hi#1438;#1438;#1438; # 自動生成的代碼
| | | `– go_hi.go
| | `– hi.go # 需要編寫的代碼
| `– main.go
`– main
|– AndroidManifest.xml
|– java
| |– go # 自動生成的代碼
| | |– Go.java
| | |– Seq.java
| | `– hi
| | `– Hi.java
| `– me/shengxiang/gohello # 主要的邏輯代碼
| `– MainActivity.java#1438;#1438;#1438;
`– res
2.寫了一個例子
git clone
3.編譯下,試試行不行(就算不行問題應該也不大,因為大問題都被消滅了)
cd GoHello/app
./make.bash
../gradlew build
4.一切順利的話在build/outputs/apk下應該可以看到app-debug.apk這個文件。
編譯好的放到qiniu上了,可以點擊下載看看
下面可以嘗試改改
打開hi.go這個文件
hi.go的內容,比較簡單,寫Go代碼主要就是這部分
// Package hi provides a function for saying hello.
package hi
import “fmt”
func Hello(name string) {
fmt.Printf(“Hello, %s!\n”, name)
return “(Go)World”
}
5.文件末尾添加下面這行代碼
func Welcome(name string) string {
return fmt.Sprintf(“Welcome %s to the go world”, name)
}
使用./make.bash重新編譯下
6.打開MainActivity.java 修改下OnClickListener事件
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String message = Hi.Welcome(“yourname”);
Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
}
});
編譯運行下,把生成的apk安裝到手機上試試。
golang開發效率小技巧之gopatch
以code目錄下有 a.go 和b.go 文件為例
我們想要達到下面這種效果
首先我們需要寫patch 文件,命名為 recover.patch
接下來,我們就能執行命令了
命令中的 ./… 有關說明可以看 golang … 之 ./…
再去看一下go文件。就達到我們批量加入的需求了。
golang適合做web開發嗎
適合。框架足夠成熟了 A Survey of 5 Go Web Frameworks
小型項目你甚至不用框架,用net/http http – The Go Programming Language
常用庫也成熟了 Top – Go Search
golang的web後端即使不concurrent也比php,ruby,python快很多很多
golang里用concurrent真的非常方便,非常非常快,超大web項目golang scale成本低
如果你想,golang的部署可以比php更方便,使用go get和http.ServeAndListen()可以不用nginx和apache
對於文件改動重新編譯其實並不是大問題,看pilu/fresh · GitHub,其實你自己寫shell腳本(也可以直接用go寫,因為它本身就是系統語言)監控文件系統改動然後自動重新build,即使是C/C++的項目這也不是大問題,人們不用C/C++寫web是因為它們不是寫web app的最佳選擇
golang寫的代碼編譯通過後,要比scripting language魯棒,因為go compiler強制一些最佳實踐
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/283726.html