因为原来的golang的notes只有三行。 为了文章质量添加一些项目经历~过两天更新到km上
CSP并发模型
- channel是第一类对象
- goroutine是并发执行的实体
golang可能是世界上最好的语言?
- 学习成本较低,较C++编译快,较python、java执行效率快
- golang-C编程加速,类似于Cython
- 我在picu项目实现中重写了奎爷临时存储,全异步实现,横向扩容爽
- 坑: 用的人不够多,SDK少,go-opencv库鸡肋
框架选择
- golang 不建议使用框架,因为实在太好写了,所以自己封装一下原生的就可以了。
- 还有一个原因是golang很多框架
go get下载慢、访问外国网站(可以用七牛云解决),godoc太好用直接生成文档,很多东西没有,正常的example和中文文档!
但是很没有理想的,我们还是用了一些封装好的东西~
- gin: 类似于flask, 一行代码路由业务
- swapper: (可能名字记错了)用于生成漂亮的接口文档,需要访问外国网站
- log4go: log,该做的都做了,但是生成格式化(json)log还待研究
- json(语言自带):没用gjson因为奎爷说写明变量类型好看。。?,没用pb减轻客户端配置压力
- redis: 用来搞个线程池来传数据,腾讯云双机热备,没用mysql,可以利用自增原子方法得到多服务器id变量
- 不推荐reflect: 为了封装对象给redis,其实更好的做法是直接json marsh成字符串存进去
- 不推荐gopython:为了封装业务强行搞了gopython,没有日志,后来解耦了python后端服务器
- 不推荐opencv-go: (试过2,3两个版本,3好像不叫这个)文档自动生成的,很多opencvapi没有
还有些想说的
- 别用panic
- 配置文件提前定义好格式
- 商量好error在那一层处理
- 封装基础方法,存储,路由,业务分离。
- git真好用