择善固执,守正待时
诚者,天之道也;诚之者,人之道也。诚者,不勉而中,不思而得。从容中道,圣人也;诚之者,择善而固执者也。
第27篇:ProtoBuf简明教程 第27篇:ProtoBuf简明教程
1 Protocol Buffers 简介protobuf 即 Protocol Buffers,是一种轻便高效的结构化数据存储格式,与语言、平台无关,可扩展可序列化。protobuf 性能和效率大幅度优于 JSON、XML 等其他的结构化
2021-01-27
第26篇:Gin简明教程 第26篇:Gin简明教程
Gin 简介 Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance –
2021-01-26
进阶篇:字符串拼接性能及原理 进阶篇:字符串拼接性能及原理
一、字符串高效拼接在 Go 语言中,字符串(string) 是不可变的,拼接字符串事实上是创建了一个新的字符串对象。如果代码中存在大量的字符串拼接,对性能会产生严重的影响。 1. 常见的拼接方式为了避免编译器优化,我们首先实现一个生成长度为
2021-01-13
进阶篇:提高反射性能 进阶篇:提高反射性能
一、反射的用途标准库 reflect 为 Go 语言提供了运行时动态获取对象的类型和值以及动态创建对象的能力。反射可以帮助抽象和简化代码,提高开发效率。 Go 语言标准库以及很多开源软件中都使用了 Go 语言的反射能力,例如用于序列化和反序
2021-01-12
进阶篇:切片传参的陷阱 进阶篇:切片传参的陷阱
问题引入在Go的源码库或者其他开源项目中,会发现有些函数在需要用到切片入参时,它采用是指向切片类型的指针,而非切片类型。这里未免会产生疑问:切片底层不就是指针指向底层数组数据吗,为何不直接传递切片,两者有什么区别? 例如,在源码log包中,
2021-01-11
标准库:log 标准库:log
无论是软件开发的调试阶段还是软件上线之后的运行阶段,日志一直都是非常重要的一个环节,我们也应该养成在程序中记录日志的好习惯。 Go语言内置的log包实现了简单的日志服务。本文介绍了标准库log的基本使用。 一、使用Loggerlog包定义了
2021-01-10
标准库:fmt 标准库:fmt
fmt标准库是我们在学习Go语言过程中接触最早最频繁的一个了,本文介绍了fmtb包的一些常用函数。 fmt包实现了类似C语言printf和scanf的格式化I/O。主要分为向外输出内容和获取输入内容两大部分。 一、向外输出标准库fmt提供了
2021-01-09
第25篇:单元测试 第25篇:单元测试
一、如何写好单元测试单元测试(Unit Tests, UT) 是一个优秀项目不可或缺的一部分,特别是在一些频繁变动和多人合作开发的项目中尤为重要。你或多或少都会有因为自己的提交,导致应用挂掉或服务宕机的经历。如果这个时候你的修改导致测试用例
2021-01-08
第24篇:http编程 第24篇:http编程
一、web工作流程 Web服务器的工作原理可以简单地归纳为 客户机通过TCP/IP协议建立到服务器的TCP连接 客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档 服务器向客户机发送HTTP协议应答包,如果请求的资源包含有动态语言
2021-01-07
第23篇:socket编程 第23篇:socket编程
一、互联网协议介绍互联网的核心是一系列协议,总称为”互联网协议”(Internet Protocol Suite),正是这一些协议规定了电脑如何连接和组网。我们理解了这些协议,就理解了互联网的原理。由于这些协议太过庞大和复杂,没有办法在这里
2021-01-06
第22篇:context 第22篇:context
在 Go http包的Server中,每一个请求在都有一个对应的 goroutine 去处理。请求处理函数通常会启动额外的 goroutine 用来访问后端服务,比如数据库和RPC服务。用来处理一个请求的 goroutine 通常需要访问一
2021-01-05
第21篇:GMP原理与调度 第21篇:GMP原理与调度
一、Golang “调度器” 的由来?1. 单进程时代不需要调度器我们知道,一切的软件都是跑在操作系统上,真正用来干活 (计算) 的是 CPU。早期的操作系统每个程序就是一个进程,知道一个程序运行完,才能进行下一个进程,就是 “单进程时代”
2021-01-04
1 / 3