03.golang初步使用

从早在2016年起,内部有股移动优先云优先的风气,但基于当前的情况,我们无法快速的推进。这些年整个企业运行环境在云化部署,企业内部的基础平台基本成型:私有云,公有云,政务云等不断的升级/更新。

在大环境下,我们也完成了初步的内部改造,从单体应用(C#版)到微应用版本(Java版)。已经具备容器化/云化部署的基础条件。下一步将不断推进云环境改造。

当我们进入云化部署时,市场成熟的方案是:k8s+docker,这两个核心组件都以转向golang。作为开发人员,肯定不可能只停留在工具使用上,而将不断去探索工具背后的执行方式。golang成为我们必须面对的语言。

昨天使用了近5个小时,把golang运行环境/vscode go相关插件,以及对golang官网的文档进行了一轮完整的梳理,形成一个对golang语言的初步体验。

1.代码组织形式

golang语言采用了module---->package----->func 三个层级的管理,没有类的概念,但存在接口定义等信息。

2.语法

语法采用了较为面向自然语言的模式构建,大体方式还是按照c语言的解析框架进行。如一个函数:

上图来自官网:

func 为方法声明;ReverseRunes 方法名词;(s string):(s参数 string为数据类型) string 返回类型。

这个规则符合自然语言思维。

3.数据类型

数据类型与c#/java类似,定义了基本类型,可提供结构体/接口定义等信息。

4.变量

变量的赋值采用var 进行声明,也跨域采用推断式直接赋值实现。

5.控制语言

采用了面向自然语言模式构建,具体内容参见官网描述。

Effective Go - The Go Programming Language (google.cn)

6.外部包管理

采用了import 进行包导入,为了让外部包下载到本地,在设置好导入包后,执行go get .  /go mod tidy 等操作。

由于golang的包管理采用了默认的配置,golang官网包管理,而在国内往往比较慢。为此,go开放了包管理代理配置变量,可以在全局变量中添加GOPROXY变量来指向特定的包管理服务。国内镜像地址有:https://proxy.golang.com.cn,direct

 

7.运行环境

由于golang语言是一个较新的语言,设计初衷是修正c/c++/java等语言的不人性化的内容。所以在优先考虑性能的同时,提供了大量的高度是自洽的标准扩展包,如http/net/sqldb等,普通使用者只需要简单使用高内聚的标准包,就可以快速实现web服务,数据访问等信息,让这些已是公认服务的组件成为基础,让使用者简单/快速构建业务实现......

可以理解为golang是一个接近c语言,但提供了大量基础应用实现的开发平台。代码实现模式介于面向过程与面向对象之间,最终达到性能与实现难度的平衡.........

8.生态

golang语言接近c语言,但提供了更多的标准扩展包,并采用了开源模式了运营。全开源模式吸引了大量的企业的进入,并且抓住了面向云实现,当前golang已成为事实的云基础平台实现语言:docker/k8s都已使用golang实现。并且在不断向web应用扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值