从java语言到Go语言
文章目录
java做为大型企业应用的主力开发语言,一直有着任何语言都无法匹敌的优势。但是java虽好,就是太重了,不适合小规模、小场景、小工具的开发,一直架构、开发、运维、运营一线全栈发展的,必须要有一个更加趁手的、轻量小巧、快速高效的开发语言,先后用shell、python等脚本语言写了各种小工具,总感觉气味不对。于是最近抽时间接触了下号称是21世纪编程语言的golang,感觉非常妙,golang的设计目标和思路均是我目前为止最满意的,入坑不会后悔。
golang吸引我的特性
编译打包分发部署简单
一个命令及可快速打包出对应操作系统的二进制可执行程序,体积小,没有依赖,无需安装,直接下载运行。
执行性能
极低的内存占用,优秀的并发支持,尽可能的榨取CPU的性能。
开发效率
极简设计,是的代码描述效率极高,编码规范统一,丰富的标准库,不需要借助任何外部框架,即可快速上手。
几个非常好的设计概念:
-
并发(goroutine),通过关键字
go
即可实现并发运行,简单直接 -
消息通道(Channel),解决并发通讯控制
-
只有函数,支持多返回值
-
延迟处理(Defer)
-
可见性规范约束,使用字母大小写设置可见性
-
继承C语言风格,如类型、指针等
-
简化/语义化部分语法,如一般的编程语言都是类型前置,而go则是类型后置,即类型在变量的右边;又比如for if等语法的条件去掉了括号等等
-
编译器更智能,比如使用
:=
进行自动类型推导;比如使用…
自动计算数组长度等 -
只有函数,没有对象、继承等复杂设计
-
go generator设计
几个常用的类包 . 自带高效Http包,可以简单实现一个Web应用 . 自带高效模板Template包,可以实现模板解析