知识 Knowledge
很久以前,有一个IT公司,这公司有个传统,允许员工拥有20%自由时间来开发实验性项目。在2007的某一天,公司的几个大牛,正在用c++开发一些比较繁琐但是核心的工作,主要包括庞大的分布式集群,大牛觉得很闹心,后来c++委员会来他们公司演讲,说c++将要添加大概35种新特性。这几个大牛的其中一个人,名为:Rob Pike,听后心中一万个xxx飘过,“c++特性还不够多吗?简化c++应该更有成就感吧”。于是乎,Rob Pike和其他几个大牛讨论了一下,怎么解决这个问题,过了一会,Rob Pike说要不我们自己搞个语言吧,名字叫“go”,非常简短,容易拼写。其他几位大牛就说好啊,然后他们找了块白板,在上面写下希望能有哪些功能(详见文尾)。接下来的时间里,大牛们开心的讨论设计这门语言的特性,经过漫长的岁月,他们决定,以c语言为原型,以及借鉴其他语言的一些特性,来解放程序员,解放自己,然后在2009年,go语言诞生。
`GOROOT`和`GOPATH`都是环境变量,其中`GOROOT`是我们安装go开发包的路径,而从Go 1.8版本开始,Go开发包在安装完成后会为`GOPATH`设置一个默认目录,参见下表。
Composer 是 PHP5.3以上 的一个依赖管理工具, composer让php重新焕发生机, 它允许你申明项目所依赖的代码库, 它会在你的项目中为你安装他们。而Composer 不是一个包管理器。
Go采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做Go语言开发,这里推荐使用`VS Code`和`Goland`。 `VS Code`是微软开源的编辑器,而`Goland`是jetbrains出品的付费IDE。 我们这里使用`VS Code` 加插件做为go语言的开发工具。
InnoDB 支持事务,且支持四种隔离级别(读未提交、读已提交、可重复读、串行化),默认的为可重复读;而在 Oracle 数据库中,只支持串行化级别和读已提交这两种级别,其中默认的为读已提交级别。