Go项目结构设计过程点滴记录

栏目: Go · 发布时间: 6年前

内容简介:之前在知识星球里星主让用设计一个项目的结构,有时候就像写文章一样,得分清层级。下面我将把讨论出的设计经验记录下来。参考

起因

之前在知识星球里星主让用 SMTP 协议实现邮件发送功能,看了 Max Li 的设计,并和他交流了一小时,在此将设计经验记录下来。

设计过程

设计一个项目的结构,有时候就像写文章一样,得分清层级。下面我将把讨论出的设计经验记录下来。

  • main.go文件,当做项目的入口,里面可以写明版本号,读取配置文件,以及日志的初始化;

  • gomod文件,包管理

  • makefile文件,如果启动程序较多,可以写入makefile文件中,到时运行直接make即可;

  • pkg文件夹,存放项目的主要源代码

  • cmd文件夹,存放项目生成的可执行文件

  • config文件夹,存放配置文件,包含项目的基本配置信息

  • vendor文件夹,将依赖的包放入此目录中

  • util文件夹,项目中所写的小工具,例如进制转换,查错,类型转换,时间转时间戳等放入该文件件

存在的问题

1,设计中难免会出现明文密码显示等相关信息,如何做到保密呢?

2,如何做到在项目build同时自己更新tag号?

参考 govvv

3,怎样设计出一个框架,支持易扩展可维护呢?

我能想到的是, web 服务设计接口,在接口中添加操作。

参考文章

Server Project Layout

写在最后

demo 的时候,还是忍不住将所有的程序写进一个 main 函数里,又或者是新建一个 server.go 文件,然后一股脑的在里面做文章。

今天早上看星球里的朋友提出了一个问题,我觉得很对,在此摘录如下

提高编程技能是很不容易的,一个人一旦习惯了某种编程思维就很难再突破。就说说我自己,一个业务用一般方法能实现的,我很难再去想到用接口,函数类型,闭包,反射等。虽然业务实现了,但总感觉代码写的很烂,自己看了都恶心。我相信大家一定有同感,教程和视频看了很多,也知道很多概念,但等到自己用的时候,又回到了旧的思维习惯。我觉得老大在布道 go 时,更应关注这方面的培养,知识的细节和技巧可以慢慢积累,但思维定势不突破,永远也不可能提高。

今天和 Max Li 的沟通,还有在做项目时不断的以工程思维冲击着以前遗留下来的旧的思维习惯,我只想说,越早做出好的改变,成长的空间的也就越大。

共勉!

原文地址


以上所述就是小编给大家介绍的《Go项目结构设计过程点滴记录》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

暗网

暗网

杰米·巴特利特 / 刘丹丹 / 北京时代华文书局 / 2018-7 / 59.00

全面深入揭秘“黑暗版淘宝”暗网的幕后世界和操纵者 现实中所有的罪恶,在暗网中,都是明码标价的商品。 暗杀、色情、恋童癖、比特币犯罪、毒品交易…… TED演讲、谷歌特邀专家、英国智库网络专家杰米•巴特利特代表作! 1、 被大家戏称为“黑暗版淘宝”的暗网究竟是什么?微信猎奇 文不能告诉你的真相都在这里了! 2、 因章莹颖一案、Facebook信息泄露危机而被国人所知的暗网......一起来看看 《暗网》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具