-
[置顶]软件接口设计怎么做?前后端分离软件接口设计思路
本文关于软件接口设计怎么做?前后端分离软件接口设计思路。好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才。为什么在接口制定标准中说:一流的企业做标准,二流的企业...
-
[置顶]接口管理如何做?接口实现版本管理的意义和最佳方法
本文关于接口管理如何做?接口实现版本管理的意义和最佳方法。API版本管理的重要性不言而喻,对于API的设计者和使用者而言,版本管理都有着非常重要的意义。下面会从WEB API 版本管理的角度提供几种常...
-
[置顶]实现API管理系统的关键
下面将通过几个关键词的形式说明API管理的重要性和未来的实现方式。1.生命周期管理在整个API生命周期中更深入地集成所有工具将进一步提高生命周期循环的速度,而且更重要的是提供满足消费者需求的API。这...
-
defer、panic和recover(Defer)
defer关键字defer关键字可以让函数或语句延迟到函数语句块的最结尾时,即即将退出函数时执行,即便函数中途报错结束、即便已经panic()、即便函数已经return了,也都会执行defer所推迟的...
-
互斥锁Mutex和读写锁RWMutex用法详述(为什么条件变量要和mutex锁一起用)
sync.MutexGo中使用sync.Mutex类型实现mutex(排他锁、互斥锁)。在源代码的sync/mutex.go文件中,有如下定义:// A Mutex is a mutual exclu...
-
Go实现工作池的两种方式
worker pool简介worker pool其实就是线程池thread pool。对于go来说,直接使用的是goroutine而非线程,不过这里仍然以线程来解释线程池。在线程池模型中,有2个队列一...
-
从Go汇编角度解释for循环的两个疑点(go循环引用解决)
Go常用的遍历方式有两种:for和for-range。实际上,for-range也只是for的语法糖,本文试图从汇编代码入手解释for循环是如何工作的。问题首先来看看几个令人迷惑的地方。问题1:遍历过...
-
Go语言之并发(go为什么适合并发)
Go语言之并发Go语言直接支持内置支持并发。当一个函数创建为goroutine时,Go会将其视为一个独立的工作单元。这个单元会被调度到可用的逻辑处理器上执行。Go语言运行时的调度器是一个复杂的软件,这...
-
Go语言指针详解,看这一篇文章就够了(go 指针运算)
Go语言为程序员提供了控制数据结构指针的能力,但是,并不能进行指针运算。Go语言允许你控制特定集合的数据结构、分配的数量以及内存访问模式,这对于构建运行良好的系统是非常重要的。指针对于性能的影响不言而...
-
Go 字符串格式化(government)
Go对字符串格式化提供了良好的支持。下面我们看些常用的字符串格式化的例子。package mainimport "fmt"import "os"type point struct { x, y...
-
深挖 Go 之 for-range 排坑指南(深挖细掘的下一句)
今年做个 Dig101 系列,挖一挖技术背后的故事。Dig101: dig more, simplified more and know moregolang 常用的遍历方式,有两种:for 和 fo...
-
详解数据类型:数组与切片(什么是数组切片)
1. 数组数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。因为数组的长度是固定的,所以在Go语言中很少直接使用数组。声明数组,并给该数组里的每个元素赋值(索引值的最小有...
-
Go语言入门:map和指针(go map操作)
Maphttp:///声明和初始化方式一rec := map[string]int{"width": 1, "height": 3}方式二rec1 := make(map[string]int)rec...
