如何学习编程?
受George Hotz的影响,比较赞同:Learn by doing,找个自己感兴趣的项目,直接开干,在过程中学习。
很早之前就接触 redis,惊叹作者的代码和设计,如果你想学习数据库或者 cache 系统,推荐你看一下 redis 源码,短小精悍,完美融合了各种数据结构,协议的设计也完美的符合简单哲学。
我想学一下 go 语言,同时还能考虑一下 redis 的设计,这就是这个项目的最初动力。
go cache just for learn redis design and golang
本文所有代码:https://github.com/TrumanDu/the-force
项目初始化
在项目构建期纠结了很久,不知道如何组织 go 项目目录,因为自己的做 java 开发的,自己只能借鉴开源的经验
以下是我开始这个项目前参考的链接:
- golang-standards/project-layout
- How to Write Go Code
构建自己的项目目录结构
project-layout 能告诉我目前社区流行的 go 项目都采用什么目录结构。
根据自己的想法,目前构建如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ├─api //提供项目的api ├─build // 编译目录 │ ├─ci │ └─package ├─cmd │ └─gocache // 应用启动入口 ├─configs // 应用配置 ├─docs // 存放文档 ├─init // 初始化 ├─server ├─store │ └─cache └─tools // 工具类
|