如题


大部分能想到用到的东西,除了手机app,剩下基本都可以做。

1、命令行程序。不分windows、linux、macos,扔进去就能用(当然,需要交叉编译,具体不展开,下同),读写资料库、小爬虫、定时任务等等等等,想怎么玩怎么玩。个人目前主要是用来同步数据,定时备份和清理垃圾。

2、图形化工具。还是全平台通用,官方虽然没有GUI库,但是第三方有的是。选个合适的库,c++能搞的,golang差不多都可以搞(GUI库的选择请参考https://www.zhihu.com/question/268536384/answer/1215107185)。个人目前是给一些命令行工具配界面用,用golang是因为实在喜欢协程的写法,再就是工作电脑和家庭电脑操作系统不一样,懒得分开写。

3、私人伺服器。这回不光不挑平台了,还能直接扔在路由器或者旧手机上了(旧安卓手机废物利用请参考https://zhuanlan.zhihu.com/p/92664273)。golang天生支持arm,私人服务,无非就是个网盘、博客之类的,完全没必要买云空间(家庭网路穿透定位部分不展开)。

4、各种正牌服务。这个不多说,吃饭用的。反正用不了多少资源,5000qps的服务随便跑跑,完全没必要装什么jvm,python、php之类的运行环境,想跑就跑,想搬就搬。目前已经用caddy代替了nginx(证书自动展期方便),gin代替了tomcat(伺服器内存太贵了)。剩下普通的API服务,自己写就完事了。目前最长的高吞吐量服务,已经跑了700多天还活蹦乱跳,上次停机还是停电的时候。

golang最大的特点,就是什么都能沾点边,而且学习起来曲线比较平滑(rust,说的就是你)。一个擅长其他编程语言的程序员,兼修golang,基本就是一两个星期的事儿。但是不建议没有编程经验的人直接上,容易被带偏。

当然,这东西坑也很多,几乎是唯一一个避坑指南比入门教程还长的编程语言(可以参考https://zhuanlan.zhihu.com/p/27518650,只是一部分,实际上更多)。


用著爽就好。

目前来说一般作为可拆分单元服务,也就是大家说的微服务。一些网路通信系统,例如消息系统,调度系统,级联系统等等。不过并不限于这些,可以的话,你的需求都能使用它来做。一些容器开发,CDN,云相关的服务也是目前比较火的领域。

还有就是目前Go的生态还非常不完善,有很多轮子等著我们造。比如我目前在做的Go代码质量分析工具,应用监控等。如果以后Go真的大火,完全可以尝试当创业项目来搞。


处理日志、数据打包、虚拟机处理、文件系统、分散式系统、资料库代理等;网路编程方面,Go语言广泛应用于Web 应用、API应用、下载应用。

除此之外,Go语言还适用于内存资料库和云平台领域,目前国外很多云平台都是采用Go开发。

大爱golang!


作为一名运维相关从业者,主要总在以下两点:

  1. 命令行程序,由于个人用mac办公,且在Linux 上操作,所以用golang 开发command line 程序,简直不要太好
  2. API介面,golang 的协程机制可以轻松开发出高并发的介面
  3. 各种开源组件的需求开发,如今云原生领域的很多软体都是用golang 开发的(比如Docker Kubernetes etcd等),如果企业内部有小需求,是可以很快解决掉的

另外,其实看个人规划是怎样的,如果是做基础架构和云原生领域的,那golang 还是提早深入学习,没坏处的。


因为跨平台,单文件部署,这几个特性很方便.所以我会用来写一些小工具,做一些规模不大的网站.

规模大一点的,我会用C#来做,开发效率更高.


命令行程序,我们从用go实现了grep和tail类似的功能,部署在每一台机器上,前端用websocket获取日志信息。web程序,我们用go的gin框架搭建了很多web服务。

我们这里主要就是用来开发kubernetes 相关组件(controller,operator)


写点伺服器中间件,比如消息中间件,代理服务,协议处理,lvs之类的,主要有两个原因,一个是go的类型以及编译后使用起来还是挺方便的,同时又比cc++的高级语言特性更加简单易用,像写脚本语言一样就能写出性能不错的程序,写起来不累;另一个原因是被go这种在网上宣传那么多,标签高性能、高并发、稳定跨平台等等宣传所吸引,又有大牛开发者背书,周围认识的厉害程序也经常用,所以也不能免俗跟著学点:D


后台api


当然是用来开发web了,比如我开发的web后台:https://github.com/admpub/nging


gin做web后端,伺服器监控之类的

cli和后端服务。其他的golang基本也可以做,但是不如选择其他某些语言写


推荐阅读:
相关文章