# under-the-hood
**Repository Path**: gaopedro/under-the-hood
## Basic Information
- **Project Name**: under-the-hood
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: dev
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-04-30
- **Last Updated**: 2021-04-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Go 语言原本
当前内容基于 `go1.15`



[](https://golang.design/under-the-hood/assets/wechat.jpg)
[](https://golang.design/under-the-hood/assets/alipay.jpg)
[](https://www.paypal.me/changkunde/4.99eur) 
Go 语言从 2009 年诞生之初已有十余年的历史。
纵观大多数编程语言的历史进程,令人惊讶的是 Go 语言自身在进化的这十余年间,
语言本身并未发生太大变化,Go 语言的用户能够持续不断写出向后兼容的应用。
从语言设计的角度而言,作为一门从诞生之初就考虑低成本、高并发、简洁等原则的语言,
很难让人不对其简洁设计背后的各项实现机制以及具体工作原理所好奇。
本书就是一本讨论 Go 语言源码工程中的技术原理及其演进历程的书籍。
## 致读者的话
读者可能会好奇,设计总在演进、源码总在变化,为什么要耗费力气研究实际工作中可能永远不会接触的源码?
笔者以为不然,因为『软件工程发生在代码被非原作者阅读之时』,在阅读源码的过程中,
我们除了能进一步加深对语言本身的理解,更重要的则是理解某个设计背后所使用的根本原理,
以及当其他人在实现这个设计的过程中发生的工程决策、实践与实现技巧。
代码总是可以推倒重来,但原理却能『永生』。
本书的创作愿景是涵盖整个 Go 语言的方方面面。这包括用户代码能直接接触的 Go 运行时组件、
与关键语言特性强相关的工具链、诸多重要的标准库等等。在部分情况下,
本书会讨论不同平台下的实现差异,但着重以 Linux/amd64 为主。
## 阅读的预备知识
阅读本书的读者应该具备一些基本的计算机科学素养,至少学过一门**程序设计**课程以及**数据结构**的课程,例如能够熟悉地谈论散列表、红黑树等概念。若你具备基本的**离散数学**和**概率论**知识,对谓词、随机变量等数学概念具有一定程度的理解,那么将会对阅读本书的部分章节有所帮助。
本书并未要求读者已经掌握使用 Go 语言,因此会在开篇快速介绍 Go 的语言规范。但如果你已经具备 Go 语言编码和相关开发经验,则会对阅读本书有所帮助。
## 免责声明