因为原来的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真好用