导航:首页 > 编程大全 > 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开发工具相关的资料

热点内容
国外大数据广告 浏览:775
win10微信声音怎么设置在哪里 浏览:177
计算机程序设计技术水平java 浏览:255
uml统一建模实用教程课后答案 浏览:947
3d建筑建模视频教程 浏览:774
途歌app官网下载 浏览:936
数据库保存相对路径 浏览:493
小白ppt演示控制工具 浏览:244
qq公众号更换管理员 浏览:275
js怎么替换特殊符号 浏览:791
旋转扭曲工具coredraw 浏览:467
网络继电器控制开关图 浏览:735
南宁公交app下载软件 浏览:742
企业大数据服务平台 浏览:10
ps做iphone 浏览:258
大数据思维与决策txt 浏览:56
tchartjava 浏览:589
苹果破解无线网密码的软件 浏览:299
mac系统占越来越大 浏览:201
word缓存文件恢复 浏览:799