特性:
- 快速, 高性能, 多 CPU上 可扩展
- 线程安全. 多个 goroutine 可以同时读写一个cache 实例
- fastcache 设计为 在存储大量的 entry 的场景下 GC free
- fastcache 当 缓存数量达到阈值时 可以自动 清理 old entry
- 简单的API
- 简单的源代码
- cacheData 可以 保存到文件(从文件中加载)
- 在 Google App Engine 上工作
什么是大宽表, 为什么要使用大宽表, 大宽表有什么优缺点, 设计大宽表要注意什么?
golang 包引用之间不允许循环依赖.
循环依赖的本质上是一个错误的设计, 在 golang中 循环依赖是 会产生编译时错误.
golang中为什么不允许循环依赖呢?
1. 没有支持循环导入,目的是迫使 Go 程序员更多地考虑程序的依赖关系.
- 保持依赖关系图的简洁。
- 快速的程序构建。
2. 如果支持循环导入,很容易会造成懒惰、不良的依赖性管理和缓慢的构建。这是设计者不希望看见的。
- 混乱的依赖关系。
- 缓慢的程序构建
golang中的循环依赖对编译的性能 和 程序的依赖关系的清晰非常不利, 所以在程序设计上,要保持 干净的 DAG
.
golang的单测, 有一些约定, 例如文件名是 xxx.go, 测试文件名必须是 xxx_test.go, 且测试函数的方法名 都是以 Test
开头, 使用go test
命令, 有时发现mock不住,一般都是内联(简短)函数mock失败,可以执行的时候加上编译条件禁止内联 -gcflags=all=-l
.
据仓库(data warehouse) 也可以简称为
DW
DH