java做为大型企业应用的主力开发语言,一直有着任何语言都无法匹敌的优势。但是java虽好,就是太重了,不适合小规模、小场景、小工具的开发,一直架构、开发、运维、运营一线全栈发展的,必须要有一个更加趁手的、轻量小巧、快速高效的开发语言,先后用shell、python等脚本语言写了各种小工具,总感觉气味不对。于是最近抽时间接触了下号称是21世纪编程语言的golang,感觉非常妙,golang的设计目标和思路均是我目前为止最满意的,入坑不会后悔。

golang吸引我的特性

编译打包分发部署简单

一个命令及可快速打包出对应操作系统的二进制可执行程序,体积小,没有依赖,无需安装,直接下载运行。

执行性能

极低的内存占用,优秀的并发支持,尽可能的榨取CPU的性能。

开发效率

极简设计,是的代码描述效率极高,编码规范统一,丰富的标准库,不需要借助任何外部框架,即可快速上手。

几个非常好的设计概念:

  1. 并发(goroutine),通过关键字 go 即可实现并发运行,简单直接

  2. 消息通道(Channel),解决并发通讯控制

  3. 只有函数,支持多返回值

  4. 延迟处理(Defer)

  5. 可见性规范约束,使用字母大小写设置可见性

  6. 继承C语言风格,如类型、指针等

  7. 简化/语义化部分语法,如一般的编程语言都是类型前置,而go则是类型后置,即类型在变量的右边;又比如for if等语法的条件去掉了括号等等

  8. 编译器更智能,比如使用 := 进行自动类型推导;比如使用 …​ 自动计算数组长度等

  9. 只有函数,没有对象、继承等复杂设计

  10. go generator设计

几个常用的类包 . 自带高效Http包,可以简单实现一个Web应用 . 自带高效模板Template包,可以实现模板解析