内容简介:不知道是不是有很多学习golang的新人会遇到这样的问题。包循环引用这个问题,让人很头疼,尤其是在项目越来越复杂的时候,出现这么一句报错,这意味着你可能需要修改很多代码,这对一个新人来讲压力很大。通常来讲,解决这个错误的办法是将需要引用的那个包抽象成接口,解耦后调用。但这不是我这个篇章想要讲的内容。这个系列主要讲的是如何从代码组织架构方面去避免这个问题。从零开始一步步搭建自己的golang框架。这个篇章将实现以下的功能:我们先明确一下命名规范,之后再去开始编写代码。如下:包名: 小写字母,不分割单词,比如包
前言
import cycle not allowed
不知道是不是有很多学习golang的新人会遇到这样的问题。包循环引用这个问题,让人很头疼,尤其是在项目越来越复杂的时候,出现这么一句报错,这意味着你可能需要修改很多代码,这对一个新人来讲压力很大。通常来讲,解决这个错误的办法是将需要引用的那个包抽象成接口,解耦后调用。但这不是我这个篇章想要讲的内容。这个系列主要讲的是如何从代码组织架构方面去避免这个问题。从零开始一步步搭建自己的golang框架。这个篇章将实现以下的功能:
- 一个通用的基础框架,风格良好的代码组织架构;
- 包含一些基本组件:日志、配置、数据库、队列等;
- 对外提供http、websocket、rpc接口等服务。
命名规范
我们先明确一下命名规范,之后再去开始编写代码。如下:
包名: 小写字母,不分割单词,比如包名叫awesomeproject,又awesome和project组成;
文件名:同包名规范;
常量:大写字母,以下划线分割单词,比如AWESOME_CONST;
变量:小驼峰命名,比如awesomeVariable;
函数名/方法名:提供对外调用的公共方法,使用大驼峰命名,比如AwesomeFunction,私有方法,使用小驼峰。
开始
为了方便以后如果有人需要用到这个项目,我首先在GitHub上创建一个项目。
接着,使用go get拉下这个仓库:
go get "github.com/TomatoMr/awesomeframework"
最后,我们执行以下命令,为我们的项目初始化:
go mod init awesomeframework
小结
到此,我们完成了项目的初始化,下一步将会初步构建我们的代码组织架构。
欢迎关注我的公众号: onepunchgo ,会整理相关的文档和资料。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。