Go语言与数据库开发:01-01
一、前言
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!
彩虹女神跃长空,Go语言进阶之Go语言高性能Web框架Iris项目实战-模板与数据库EP02 书接上回,上次我们搭建好了项目入口文件,同时配置了路由体系,接着就可以配置项目的模板了,这里我们采用Iris内置的模板引擎,事实上,采用模板引擎并不意味着前后端耦合,模板中的数据保持其独立性即可,也就是说模板的数据操作交互方式采用http接口请求的形式,Iris并不参与模板逻辑,只返回Json格式的数据即可。前端集成数据双向绑定机制的框架Vue.js。
Linux下安装好MySQL后,Windows安装可视化工具navicat Linux下MySQL与Windows下navicat进行连接: 安装的过程很是揪心,各种查网站、大致把坑都写了出来: 1、在Linux下的mysql语句中, mysql s...
生命不止,继续 go go go !!! 继续与大家分享,go语言的实战,今天介绍的是如何操作sqlite数据库。
相关文章
- go http请求库HttpRequest
- go语言字节序 encoding/binary
- 如何安装 第三方 Go 离线包? (GOPATH、 go install)
- go-tour练习解答
- 【Go语言】【2】Sublime配置GO开发环境
- [Go] golang 替换组件包 更新 go.mod, go.sum 的方式
- [Go] 注意 go build -o <output> 选项的准确含义
- [Go] Viper 加载项目配置,go build 打包配置文件进二进制
- Atitit go语言 golang 艾提拉总结特性优缺点 目录 1. Go 语言最主要的特性:1 2. 体积大概100M1 3. 问题1 3.1. 编译速度和异常控制怎么样1 3.2.
- 我的Go+语言初体验——go【Format】goplus
- 【Go基础】使用go语言函数
- 【Go基础】理解go语言类型
- 【Go】go实现 — 数据结构与算法思维导图
- Go语言自学系列 | go语言中的流程控制
- Go语言自学系列 | go语言访问数组元素
- go操作mysql数据库
- Go语言参数校验(go-playground / validator)——基本使用
- golang操作mysql数据库(Go-SQL-Driver/MySQL)
- Go:go语言的认识理解、安装应用、语法使用之详细攻略