笔者是c/c++程序员。由于golang最近几年比较火,天生支持高并发和网络编程,而且具备python的开发速度,因此用golang写服务器也是比较不错的选择,特别是对中小微企业来说,用户量不是千万级别,并不追求极致性能,而是考虑产品上市周期,golang就比较适合快速出产品。 无论是作为新技术的堡垒,还是加快自己的工作进度,golang都是一个选项。
笔者的建议是:后端的代码,管理仍然用shell来写,业务可以c++ 和 golang一起写多个进程,不同语言之间用unix socket或api来通讯即可。

笔者从业8年的经验来看,程序员的工资与业务挂钩比较大,与技术水准挂钩也有但是不是线性关系。 30之前可以搞技术,在深度和广度都有所涉猎,基础越扎实,以后的高度会越高。30之后你需要养家,孝敬老人,技术变现,多挣钱应当作为最重要的目标之一。

golang开发速度快,并发性能比较好。是可以实现快速技术的一种编程语言。本文,即是golang服务器编程专栏的第一篇文章

linux下,golang环境安装:

[root@skycloud-3 ~]# wget https://dl.google.com/go/go1.14.linux-amd64.tar.gz
[root@skycloud-3 ~]# tar -C /usr/local/ -xzvf go1.14.linux-amd64.tar.gz

设置golang环境变量:
vim /etc/profile

export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go/
export GOPATH=/root/go-path
export PATH=$PATH:/root/go-path/bin/
export GO111MODULE=on
export GOPROXY=https://goproxy.io

环境变量配置Ok后,执行以下语句,使环境变量重新加载

[root@skycloud-3 tmp]# source /etc/profile

其中GOROOT是golang二进制的安装位置
GOPATH是golang源码的存放路径(也就是github包的下载库路径,和程序员自己写的项目的存放路径)
GOPROXY是七牛云提供的包镜像代理服务器

查看golang版本号:

[root@skycloud-3 ~]# go version
go version go1.14 linux/amd64
[root@skycloud-3 ~]#

在centos节点上面,测试一个获取本地ip的程序:

package main

import "fmt"
import "net"

func LocalIP() string {
info, _ := net.InterfaceAddrs()
for _, addr := range info {
ipNet, ok := addr.(*net.IPNet)
if !ok {
continue
}
if !ipNet.IP.IsLoopback() && ipNet.IP.To4() != nil {
return ipNet.IP.String()
}
}
return ""
}

编译并执行:

[root@skycloud-3 tmp]# go build get-ip.go 
[root@skycloud-3 tmp]# ./get-ip
47.150.212.41
[root@skycloud-3 tmp]

windows下,golang环境安装:

用浏览器打开:​​https://golang.google.cn/dl/​​ 选择windows版本二进制发行包进行下载: go1.14.windows-amd64.msi

windows ide安装:
双击执行msi可执行文件,对于初学者,请一路next。

设置环境变量:

golang安装和环境配置_linux

golang安装和环境配置_golang_02

golang安装和环境配置_linux_03

在windos下面,用notepad++编译一个hello world程序,编译并执行:

golang安装和环境配置_golang_04


源码:

package main

import "fmt"

func main() {
fmt.Println("Hello, World!")
}