Preface
最近在网上下载并学习了一个golang开发im的完整课程。
完成课程后,做一些思考和总结有利于知识的巩固与消化。
Contents
以下是对用到的知识,技术细节,个人新的体会等的一些回顾
技术实施
基础开发语言是golang
数据库是使用的mysql,用到了xorm来操作mysql
通讯用到了websocket/json
分布式通讯用的是udpsocket
mysql/xorm
突然发现去年更新的win10可以使用docker,然后将docker安装在本机,利用docker来跑mysql。
发现xorm真好用啊,不用去写一堆sql来建表,但是过大的自由度是随之而来的其他代价,这个需要研究一下。后续也需要研究gorm和xorm的对比。
项目结构
学会了model/controller/service这样的分层:
- model放数据定义相关的,entity之类的东西
- controller也就是直接的处理器,在web中就放接口api
- service用于操作数据库查询,数据处理等逻辑的,更像mvc里面的m,通过使用model来给controller提供逻辑接口
- 在前后端分离中是不会有view层存在的,view一般都是前端打包好的一堆静态文件,之后直接放cdn就可以了
分布式方案
学会了不同的分布式方案,之前在项目中使用的是通过第三方提供的服务中心【zookeeper】来注册/发现服务,这个项目里头用的的udp来发包,简单易懂,但是个人还是有一些不理解的地方。go mod
终于真正的用上了go module,在项目中使用。
对于当前项目子目录下的package的使用有了新的认识。