前言

import cycle not allowed

不知道是不是有很多学习golang的新人会遇到这样的问题。包循环引用这个问题,让人很头疼,尤其是在项目越来越复杂的时候,出现这么一句报错,这意味着你可能需要修改很多代码,这对一个新人来讲压力很大。通常来讲,解决这个错误的办法是将需要引用的那个包抽象成接口,解耦后调用。但这不是我这个篇章想要讲的内容。这个系列主要讲的是如何从代码组织架构方面去避免这个问题。从零开始一步步搭建自己的golang框架。这个篇章将实现以下的功能:

  • 一个通用的基础框架,风格良好的代码组织架构;
  • 包含一些基本组件:日志、配置、数据库、队列等;
  • 对外提供http、websocket、rpc接口等服务。

命名规范

我们先明确一下命名规范,之后再去开始编写代码。如下:

包名: 小写字母,不分割单词,比如包名叫awesomeproject,又awesome和project组成; 文件名:同包名规范; 常量:大写字母,以下划线分割单词,比如AWESOME_CONST; 变量:小驼峰命名,比如awesomeVariable; 函数名/方法名:提供对外调用的公共方法,使用大驼峰命名,比如AwesomeFunction,私有方法,使用小驼峰。

开始

为了方便以后如果有人需要用到这个项目,我首先在GitHub上创建一个项目。

create-project.png

接着,使用go get拉下这个仓库:

go get "github.com/TomatoMr/awesomeframework"

goget.png

最后,我们执行以下命令,为我们的项目初始化:

go mod init github.com/TomatoMr/awesomeframework

小结

到此,我们完成了项目的初始化,下一步将会初步构建我们的代码组织架构。


欢迎关注我的公众号:onepunchgo,会整理相关的文档和资料。 qrcode_for_gh_b6f48ecdc457_258.jpg