Go语言与数据库开发:01-01

简介: 01-01 一、前言 Google的三位大牛,为了解决在21世纪多核和网络化环境下越来越复杂的编程问题而发明了go语言, 从2007年9月开始设计和实现,于2009年的11月对外正式发布。从版本的发布历史来看,go语言是从 Ken Thompson发明的B语言、Dennis M. Ritchie发明的C语言逐步演化过来的,是C语言家族的成员, 因此很多人将Go语言称为21世纪的C语言。
+关注继续查看

一、前言

Google的三位大牛,为了解决在21世纪多核和网络化环境下越来越复杂的编程问题而发明了go语言,
从2007年9月开始设计和实现,于2009年的11月对外正式发布。从版本的发布历史来看,go语言是从
Ken Thompson发明的B语言、Dennis M. Ritchie发明的C语言逐步演化过来的,是C语言家族的成员,
因此很多人将Go语言称为21世纪的C语言。

纵观这几年来的发展趋势,Go语言已经成为云计算、云存储时代最重要的基础编程语言。

Go语言有着和C语言类似的语法,但是它不仅仅是一个更新的C语言。它还从其他语言借鉴了很多好的
想法,同时避免引入过度的复杂性。 Go语言中和并发编程相关的特性是全新的也是有效的,
同时对数据抽象和面向对象编程的支持也很灵活。 Go语言同时还集成了自动垃圾收集技术用
于更好地管理内存。

Go语言尤其适合编写网络服务相关基础设施,同时也适合开发一些工具软件和系统软件。

目前Go语言已经成为受欢迎的作为无类型的脚本语言的替代者: 因为Go编写的程序通常比脚本语言运
行的更快也更安全,而且很少会发生意外的类型错误。

Go语言还是一个开源的项目,可以免费获编译器、库、配套工具的源代码。

Go语言编写的程序无需修改就可以在不同的系统环境下运行。

二、 Go语言的设计哲学

Go语言的编程哲学是简洁。

正如Rob Pike所说,“软件的复杂性是乘法级相关的”,通过增加一个部分的复杂性来修复问题
通常将慢慢地增加其他部分的复杂性。通过增加功能和选项和配置是修复问题的最快的途
径,但是这很容易让人忘记简洁的内涵,即使从长远来看,简洁依然是好软件的关键因素。

简洁的设计需要在工作开始的时候舍弃不必要的想法,并且在软件的生命周期内严格区别好
的改变或坏的改变。通过足够的努力,一个好的改变可以在不破坏原有完整概念的前提下保
持自适应,正如Fred Brooks所说的“概念完整性”;而一个坏的改变则不能达到这个效果,它
们仅仅是通过肤浅的和简单的妥协来破坏原有设计的一致性。只有通过简洁的设计,才能让
一个系统保持稳定、安全和持续的进化。

Go语言有足够的类型系统以避免动态语言中那些粗心的类型错误,但是Go语言的类型系统相
比传统的强类型语言又要简洁很多。。在实践中Go语言简洁的类型系统给了程序员带来了更
多的安全性和更好的运行时性能。

Go语言鼓励当代计算机系统设计的原则,特别是局部的重要性。它的内置数据类型和大多数
的准库数据结构都经过精心设计而避免显式的初始化或隐式的构造函数,因为很少的内存分
配和内存初始化代码被隐藏在库代码中了。比如,Go语言的动态栈使得轻量级线程goroutine
的初始栈可以很小,因此创建一个goroutine的代价很小,创建百万级的goroutine完全是可行的。

Go程序也很容易学习。

使用Go语言自带工具构建Go语言项目只需要使用文件名和标识符名称, 一个偶尔的特殊注释来确定所有的
库、可执行文件、测试、基准测试、例子、以及特定于平台的变量、项目的文档等;Go语言
源代码本身就包含了构建规范。

三、Go语言入门

运行环境:
root@ubuntu:~# go version
go version go1.6.2 linux/amd64

设置GOPATH:
root@ubuntu:/home/go# export GOPATH=/home/go
root@ubuntu:/home/go# echo $GOPATH
/home/go

学习一门新语言时,一种仪式性的开场程序就是从那个经典的helloWorld开始:

package main

import "fmt"

func main() {

    fmt.Println("Hello, World!")

}

root@ubuntu:/home/go/ch01# go run helloworld.go
Hello, World!

root@ubuntu:/home/go/ch01# go build helloworld.go
root@ubuntu:/home/go/ch01# ls -l
total 2240
-rwxr-xr-x 1 root root 2288216 Jun 30 03:13 helloworld
-rw-r--r-- 1 root root 74 Jun 30 03:10 helloworld.go
root@ubuntu:/home/go/ch01# ./helloworld
Hello, World!

目录
相关文章
|
14天前
|
SQL 关系型数据库 MySQL
GO web 开发 实战三,数据库预处理
GO web 开发 实战三,数据库预处理
|
14天前
|
关系型数据库 MySQL Go
GO web 开发 实战二,数据库相关
GO web 开发 实战二,数据库相关
|
20天前
|
SQL 关系型数据库 MySQL
后端实践--go与数据库 青训营
后端实践--go与数据库 青训营
|
2月前
|
SQL 关系型数据库 MySQL
Go 使用标准库 sql 包和三方数据库驱动包操作 MySQL
Go 使用标准库 sql 包和三方数据库驱动包操作 MySQL
23 0
|
6月前
|
SQL 存储 安全
在 Go 中如何使用 database/sql 来操作数据库
在 Go 中如何使用 database/sql 来操作数据库
131 0
|
10月前
|
存储 JSON 缓存
彩虹女神跃长空,Go语言进阶之Go语言高性能Web框架Iris项目实战-模板与数据库EP02
书接上回,上次我们搭建好了项目入口文件,同时配置了路由体系,接着就可以配置项目的模板了,这里我们采用Iris内置的模板引擎,事实上,采用模板引擎并不意味着前后端耦合,模板中的数据保持其独立性即可,也就是说模板的数据操作交互方式采用http接口请求的形式,Iris并不参与模板逻辑,只返回Json格式的数据即可。前端集成数据双向绑定机制的框架Vue.js。
彩虹女神跃长空,Go语言进阶之Go语言高性能Web框架Iris项目实战-模板与数据库EP02
|
10月前
|
SQL 关系型数据库 MySQL
Go语言之连接数据库,并判断数据库是否成功
Go语言之连接数据库,并判断数据库是否成功
171 0
Go语言之连接数据库,并判断数据库是否成功
|
SQL 关系型数据库 MySQL
Go 语言入门很简单:Go 语言中操作 MySQL 数据库(下)
在上一篇文章中,我们成功连接了 MySQL 数据库,并成功打印出 MySQL 的版本号,本篇文章就来介绍如何使用 Go 语言操作数据库。
|
关系型数据库 MySQL Go
Go 语言入门很简单:Go 语言中操作 MySQL 数据库(上)
在上一篇文章中,我们成功连接了 MySQL 数据库,并成功打印出 MySQL 的版本号,本篇文章就来介绍如何使用 Go 语言操作数据库。
|
NoSQL 算法 Java
使用 Go 实现一个简单的 k-v 数据库
大家好,我是 roseduan,今天我向大家推荐一下我写的一个 Go 语言实战项目—rosedb。
214 0
相关产品
云迁移中心
推荐文章
更多