# smartgo **Repository Path**: makoko/smartgo ## Basic Information - **Project Name**: smartgo - **Description**: SmartGo是一款集成云计算(Cloud),大数据(Bigdata),提供主流消息队列功能及满足物联网MQTT数千万长连接设备消息推送,及人工智能(SmartAI)数据分析处理等功能,使用golang语言全新开发的分布式智能平台。 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 81 - **Created**: 2019-11-18 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #smartgo SmartGo ### smartgo整体架构图 ![](https://gitee.com/cloudzone/smartgo/raw/dev/docs/static/stgarch.png) ### smartgo是什么? SmartGo是什么是参考AMQP、JMS、Mqtt协议、Kafka,RocketMQ,RabbitMq,Nsq多款中间件, 以及aws,ali、Microsoft等多家云平台开发的智能中间件, 使用golang语言全新开发的一款分布式、队列模型的智能中间件,具有以下特点: * 支持point-point、pub-sub、request-reply等多种模式 * 支持严格的消息顺序 * 支持数百万长连接 * 亿级消息堆积能力 * 比较友好的分布式特性 当前最新版本功能支持: * 1、将整个项目命名为smartgo-1.0.0 * 2、将项目中所有子工程命名为smartgo-* ---------- ### 如何开始? * [下载最新版代码](https://git.oschina.net/cloudzone/smartgo) * [`使用指南及相关文档`](https://git.oschina.net/cloudzone/smartgo)都已经归档到当前项目docs/目录下 ---------- ### 开发规范`必读` * 源文件使用Unix换行、UTF-8文件编码,遵照golang内置格式化代码规范 * 请在git clone命令之前执行`git config --global core.autocrlf false`,确保本地代码使用Unix换行格式 * 请在非主干分支上开发,禁止提交本地未测试运行通过代码到线上分支 * 每次提交及之前(正常来说需要先pull --rebase,解决冲突),对代码进行修改必须有相对应的解释说明 * 正常组内开发人员提交代码,需要经过经过审核后方可提交(且需要有统一格式注释,参照注释类型3) ### 包管理`必读` * 包管理工具使用[glide](https://github.com/Masterminds/glide) 1. 安装`go get -u github.com/kardianos/govendor` 2. 下载依赖包`govendor sync` ### 注释规范 * 对于注释,请遵照以下规范: * 注释类型1(适用于结构体或者包名注释)、 ``` // 方法对象名 xxx // Author: xxx, // Since: 2017/3/20 or v1.0.0 ``` * 注释类型2(适用于功能确定的单行注释)、 ``` // 由于是顺序消息,因此只能选择一个queue生产和消费消息 ``` * 注释类型3(适用于修改它人代码注释)、 ``` // xxx Modify: xxx, Since: 2017/3/20 or v1.0.0 // xxx Add: xxx, Since: 2017/3/20 or v1.0.0 ``` * 关于TODO、FIXME、XXX注释规范(后续再加上)、 ``` // TODO: + 说明:xxx Author: xxx, Since: 2017/3/20 or v1.0.0 ``` 如果代码中有TODO该标识,说明在标识处有功能代码待编写,待实现的功能在说明中会简略说明。 ``` // FIXME: + 说明:xxx Author: xxx, Since: 2017/3/20 or v1.0.0 ``` 如果代码中有FIXME该标识,说明标识处代码需要修正,甚至代码是错误的,不能工作,需要修复,如何修正会在说明中简略说明。 ``` // XXX: + 说明:xxx Author: xxx, Since: 2017/3/20 or v1.0.0 ``` 如果代码中有XXX该标识,说明标识处代码虽然实现了功能,但是实现的方法有待商榷,希望将来能改进,要改进的地方会在说明中简略说明。 ### 开发IDE * 开发工具不做统一规定(Idea、Goland都可以),建议使用Goland * 建议使用最新版格式Idea,附下载地址:http://pan.baidu.com/s/1slMkXY1 * 附Idea属性格式注释文件下载地址:http://pan.baidu.com/s/1hrU3IgW(其中go版本Idea使用gg或者ggg命令来生成注释,golang使用gg或者ggg) ---------- ### 联系我们 :fa-comments-o: smartgo开发组 https://git.oschina.net/cloudzone/smartgo ----------