導航:首頁 > 編程大全 > golang開發工具

golang開發工具

發布時間:2021-04-21 15:39:34

⑴ golang開發用什麼工具比較好

vim, sublime text

⑵ 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強制一些最佳實踐

⑶ 哪些軟體使用golang

golang 一般用作後台服務的開發,稱為軟體有一些歧義了。

golang 有很多優秀的開源項目:網頁鏈接

golang擅長做io中間件的開發,在雲計算領域應用的很多

⑷ 用go語言開發桌面軟體,難在哪裡

您好,開發桌面程序主流:C#(.net)或者C++。C++通常用於個人應用,大多數的通用商業程序都是C++開發的。而C#更多用於企業應用,更適合快速定製開發。
其他的老VB6(非.net的)、Delphi、C++Builder都不錯,但已經逐漸淘汰了,用的人也是越來越少。至於Flex的AIR桌面程序就更加小眾了,可謂人跡罕至。
此外,還有些企業應用因為後台是java的,因此也選用Java做桌面。因為Java後台數量龐大,因此用Java做桌面在未來很長一段時間內依然是有一席之地的,但不是最主流的。

⑸ Google 為什麼不給 Golang 做一個自己的 IDE

做ide不是那麼容易的,Go的核心團隊人數不多忙不過來。android現在是google的重心,不也沒有專門從頭開發一款ide么。ide真不是這么容易弄得,關鍵是要花大量時間。
另一個原因就是Go的開發者unix,plan9的背景很深,所以更喜歡命令行環境,它不是也沒有X的庫么,不過以後可能會往這方面發展。Go官方的態度是,我們不負責開發ide,但我們會盡量開發出一系列的工具鏈來支持ide(比如格式化器,靜態分析器,調試器這些,現在已有的:Gofmt
,Golist,pprof,gofix,Go oracle,以後可能還會開發一個debugger,gdb對goroutine支持的太差
等等)。
比如說Go的開發者基數到達一定程度後,jetbrains這個ide專業戶就會為Go開發ide(它現在為oc開發了ide,正在為c/c++開發ide),它所做的就是把Go已有的工具鏈用圖形界面的形式整合起來就行。
本答案來自於互聯網,僅供參考學習作用
如果您對我的回答有不滿意的地方,還請您繼續追問;
答題不易,互相理解,互相幫助!

⑹ 如何Golang開發Android應用

環境配置好復雜,我不得不嘮叨幾句。
需要下載golang1.4rc版,下載ndk,然後編譯。 然後用go get 下載gobind這個工具, 然後,將寫好的代碼用gobind轉化下,然後使用特殊的編譯命令,將代碼編譯成.so文件,將生成的相關文件,放到android studio的項目中。然後java代碼中,利用jni調用引用的代碼。
... 好,接著往下看吧。
環境准備
一台Linux 64的機器
一個帶有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
開始寫代碼
寫代碼之前,先約定下目錄結構
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�0�2�0�2�0�2 # 自動生成的代碼
| | | `-- go_hi.go
| | `-- hi.go # 需要編寫的代碼
| `-- main.go
`-- main
|-- AndroidManifest.xml
|-- java
| |-- go # 自動生成的代碼
| | |-- Go.java
| | |-- Seq.java
| | `-- hi
| | `-- Hi.java
| `-- me/shengxiang/gohello # 主要的邏輯代碼
| `-- MainActivity.java
`-- res

我已經寫了一個例子,先直接搞下來

編譯下,試試行不行(就算不行問題應該也不大,因為大問題都被我消滅了)
cd GoHello/app
./make.bash
../gradlew build

一切順利的話在build/outputs/apk下應該可以看到app-debug.apk這個文件。(劇透下,這個文件只有800多K)
編譯好的我放到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"
}

文件末尾添加下面這行代碼
func Welcome(name string) string {
return fmt.Sprintf("Welcome %s to the go world", name)
}

使用./make.bash重新編譯下
打開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安裝到手機上試試。
原理解讀(有興趣的接著看)
首先說下gobind這個工具。
go_hi/go_hi.go這個文件時通過gobind這個工具生成的,用來配合一個簡單的程序,生成.so文件
// go_hi.go
package go_hi

import (
"golang.org/x/mobile/bind/seq"
"example/hi"
)

func proxy_Hello(out, in *seq.Buffer) {
param_name := in.ReadUTF16()
hi.Hello(param_name)
}

func init() {
seq.Register("hi", 1, proxy_Hello)
}

這個簡單的程序內容是這樣的
// main.go
package main

import (
"golang.org/x/mobile/app"

_ "golang.org/x/mobile/bind/java"
_ "example/hi/go_hi"
)

func main() {
app.Run(app.Callbacks{})
}

src/MyActivity.java文件內容是這樣的
import ...
import go.Go; // 引入Go這個包
import go.hi.Hi; // gobind生成的代碼

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Go.init(getApplicationContext()); // 初始化兩個線程
Hi.Hello("world");
}
}

其中有一句Go.init(...)這里再看go.Go這個包是什麼樣子的
public final class Go {
// init loads libgojni.so and starts the runtime.
public static void init(Context context) {
... 判斷該函數是否該執行的代碼 -- 省略 --
System.loadLibrary("gojni"); // gojni需要這句

new Thread("GoMain") {
public void run() {
Go.run(); // run()是一個native方法
}
}.start();

Go.waitForRun(); // 這個也是一個native方法

// 這部分可以理解為,啟動了一個後台線程不斷的接收結果到緩存中。
new Thread("GoReceive") {
public void run() { Seq.receive(); }
}.start();
}

private static boolean running = false;

private static native void run();
private static native void waitForRun();
}

MyActivity.java中還有段代碼是 Hi.Hello("world");,打開Hi.java路徑在src/go/hi/Hi.java,這個文件也是gobind生成的,是用來給java方便的調用.so文件
// Hi.java
// File is generated by gobind. Do not edit.
package go.hi;

import go.Seq;

public abstract class Hi {
private Hi() {} // uninstantiable

public static void Hello(String name) {
go.Seq _in = new go.Seq();
go.Seq _out = new go.Seq();
_in.writeUTF16(name);
Seq.send(DESCRIPTOR, CALL_Hello, _in, _out); // 下面接著說
}

private static final int CALL_Hello = 1;
private static final String DESCRIPTOR = "hi";
}

Seq.send這部分實際上最終調用的是一段go代碼
func Send(descriptor string, code int, req *C.uint8_t, reqlen C.size_t, res **C.uint8_t, reslen *C.size_t) {
fn := seq.Registry[descriptor][code]
in := new(seq.Buffer)
if reqlen > 0 {
in.Data = (*[maxSliceLen]byte)(unsafe.Pointer(req))[:reqlen]
}
out := new(seq.Buffer)
fn(out, in)
seqToBuf(res, reslen, out)
}

轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦

⑺ go語言可以做什麼樣的軟體開發

理論上GO語言可以開發任何的軟體

⑻ Go語言有什麼好用的IDE嗎

說eclipse:
構建方式是使用go install 命令,每一次編譯運行都是go
install。這樣的好處就是如果你有很多的包,下載下來並沒有編譯,這樣每次編譯速度是很快的。而且(!)go install
符合go官方的項目結構,官方說過了,一個go的項目應該是以個gopath,包含src,pkg,bin三個主要目錄。所以說go
install個人認為才是主要的go編譯方式。
說eclipse的缺點:
其實eclipse插件的go編譯方式,還有目
錄結構,項目結構,都是非常完美的!!!!真的很完美!可是,他的代碼提示,太差件!大括弧都不能自動補全,gdb 32bit
64bit兼容問題,eclipseC++ 沒有html
js插件,需要手動安裝,幾乎不能開箱即用。不過如果你是開發演算法,數據處理,還是推薦eclipse的,畢竟其他都無關緊要。
說jetbrains:

先說clione肯定不適合,新建項目沒有向導,導致改成go項目各種不開心,比如圖標對於我來說就無法接受go lib
不是小耗子~這是次要的,重要的是各個文件都是灰色的(沒有在cmake中包含的結果),然後說剩下的,phpstorm這個不說了,估計很少有人插件按
在這里,webstorm,體驗也不是很好,idea?體驗很好,可是畢竟比較重,尤其是現在加入了自家的K啥玩意(無意冒犯,沒記住單詞)~可是話說回
來,go跟C系列IDE配合才是最佳,跟java系列一點不搭關系,用idea似乎有點格格不入,但是!idea支持新建項目向導,lib的圖標也很清
晰,最後還是選擇idea吧,期待clion的強大起來!
再說jetbrains系列缺點:
插件的構建方式是go
buiild 這個讓人很不爽,我們幾乎不確定會構建到什麼地方去,還要每次設置一下run配置。這個可能無關緊要,畢竟不是什麼大的毛病,可是go
build不能緩存.a文件,直接構建的結果就是很多第三方包的情況下很慢!所以建議安裝包的時候手動install
一下解決這個問題。自帶代碼格式化,這個格式化跟go 格格不入,總的來說就是蛋疼,心碎,菊花癢。

最後說liteIDE:
輕量級IDE,我可以說是國人GO偉大作品典範,然而默認構建也是go build,項目管理方式不符合go官方標准。代碼提示不能自動導入(eclipse也不能),不過如果你的項目是以包為單位的,那麼另當別論。一定很不錯,畢竟是輕量級專門針對GO的IDE!

說這些,其實還有很大一部分取決於你的項目是用vendor機制管理,還是godeps機制管理依賴關系。go不像java擁有強大的幾乎天下一統的maven(無意冒犯,暫不評價其他構建套件)。
go沒有官方包倉庫。
go沒有官方包管理工具。
go沒有官方自動化構建套件。
上面三個沒有是致命要害。導致民間各種百花齊放。
說說我的項目怎麼管理
gpm 一個shell工具(windows下你可以用git的bash,或者cygwin~)
我是嚴格艷照官方推薦方式管理go項目,一個go項目一個gopath。系統的gopath只是為了安裝go命令,我沒有配置gobin,意義不大。
項目的依賴跟我的代碼包都在src下(非vendor)
vendor用來存放包的特殊依賴,發布項目直接把依賴包發布上去(公網管理則只上傳依賴關系文件 godeps文件)
資源文件等都放在src目錄同級,編譯文件放在bin,引用直接../引用。

⑼ go語言支持開發桌面級應用嗎(求個編譯器)

go 可以開發桌面應用,但並不是很舒適。
可以使用的GUI庫有:
1、goqt,LiteIDE作者出品,Go和QT的綁定,還未發布
2、go.uik,純Go實現的並發UI工具
3、walk,Windows Application Library Kit
4、gform,Windows GUI framework

目前的話walk用得比較多

不過go的GUI庫用起來沒有C#、C/C++的那麼順手。

這個問題不久之後應該會有所改善,畢竟用Go開發桌面的需求在不斷增加。

目前我採用的是用go http 做後端,Webkit+HTML5 做界面,表現力很好,前端不需要學習新知識,一般的管理類應用都能搞定。

⑽ Google 為什麼不給 Golang 做一個自己的 IDE

谷歌公司(Google Inc.)成立於1998年9月4日,是一家位於美國的跨國科技企業,業務包括互聯網搜索、雲計算、廣告技術等,同時開發並提供大量基於互聯網的產品與服務,其主要利潤來自於AdWords等廣告服務。 1999年下半年,谷歌網站「Google」正式啟用。 2010年3月23日,宣布關閉在中國大陸市場搜索服務。2015年8月10日,宣布對企業架構進行調整,並創辦了一家名為Alphabet的「傘形公司」(Umbrella Company),成為Alphabet旗下子公司。


我覺得是沒有必要的,它的意義不大。

IDE 的難度大

做ide不是那麼容易,Go的核心團隊人數不多忙不過來。android現在是google的重心,不也沒有專門從頭開發一款ide么。ide真不是這么容易弄得,關鍵是要花大量時間。

所以說其實做不做IDE都是沒有什麼關系的。

閱讀全文

與golang開發工具相關的資料

熱點內容
手機網路聯不上怎麼辦 瀏覽:965
在線免費看那種片網址 瀏覽:838
java移動圖片 瀏覽:126
拉姆查蘭的維語電影完整版 瀏覽:269
u盤只讀文件怎麼修改 瀏覽:130
cad模板文件在哪 瀏覽:409
網路上如何開通股票賬戶 瀏覽:369
印度電影在線觀看維語版 瀏覽:590
零基礎出納視頻教學視頻教程 瀏覽:728
夢幻西遊159升級沒隊 瀏覽:117
今晚你去看電影嗎用英語怎麼說 瀏覽:684
最黃的大片 瀏覽:130
年輕媽媽的房子電影在線 瀏覽:770
不用下載直接免費觀看 瀏覽:18
主人許多的小說免費閱讀 瀏覽:349
速思號網站交易怎麼樣 瀏覽:219
大數據亞信 瀏覽:133
各種vip和收費電影全部免費 瀏覽:206
中國古老視頻網站 瀏覽:406
電腦改iphone手機文件格式 瀏覽:143

友情鏈接