golang开发im

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的使用有了新的认识。

posted @ 2021-08-26 09:56  Ado_On  阅读(492)  评论(0编辑  收藏  举报