项目地址 https://github.com/ysmood/got
用 golang 的朋友如果写测试的话基本都知道 testify ,但是其存在诸多多年未解决的问题,使用的体验比较原始。我在开发一个更加现代的测试框架,现在基本的框架已经成型,希望能有更多感兴趣的小伙伴能加入到项目里来改进它的特性。
这个项目没有任何依赖,非常轻量,很适合想学习 golang 的朋友阅读它的源代码,比如反射,diff 算法。
下面这个链接是和 testify 的简单比较:
1
Muninn 2022-04-25 19:09:15 +08:00
star 了支持下
有闲心搞这么基础的东西的是大佬无疑了 |
2
wsseo 2022-04-25 19:36:15 +08:00
试试
|
3
twistedmeadows 2022-04-25 20:55:49 +08:00 via iPhone
举手🙋🏻♂️,有什么容易上手的子任务可以分给我吗?只能在业余时间开发
|
4
ysmood OP |
5
gowk 2022-04-25 22:37:20 +08:00
点进去才发现已经 Follow 过 OP 了
|
6
ysmood OP 多谢支持
|
7
twistedmeadows 2022-04-26 00:12:17 +08:00 via iPhone
@ysmood 好的,我明天会先花点时间读下代码,合适的话我会申请把 issue assign 给我
|
8
ysmood OP @twistedmeadows OK ,有问题的话可以直接在 issue 里问。
|
9
njutree 2022-04-26 08:20:50 +08:00
赞
|
10
Mistwave 2022-04-26 09:00:44 +08:00 via iPhone
看起来不错 等会试试
|
11
lbp0200 2022-04-26 10:59:18 +08:00
goland 支持吗?
|
13
chaodada 2022-04-26 14:07:26 +08:00
谢谢 学习一下
|
14
njutree 2022-04-26 14:43:25 +08:00
example 在 lib 下看起来挺奇怪的
|
15
zhujq 2022-04-26 15:12:05 +08:00
学习一下
|
16
ysmood OP @njutree golang 在这块没有太多规范,都是三方的。我故意没用 pkg ,因为 lib 也有图书馆的意思,所有就把文档也放里面了,主要是为了减少开发时的杂音,大部分时候开发这个项目的人不关心 example 文件,所以没必要放根目录,根目录最好是放开发时最重要的东西。
|
18
njutree 2022-04-26 16:51:05 +08:00
lib 是图书馆... 一般默认 lib 都是放库的 package, 文档可以专门建一个 docs , examples 对与用这个库的人来说其实是挺重要的一个 folder.
@ysmood |
19
ysmood OP @njutree 一般代码库都是放 pkg ,既然我选择了 lib 就已经不一般了,lib 比 pkg 更宽泛,可能放很多非核心代码的东西,比如 docker 的配置,这个你如果放 pkg 就会显得特别奇怪,因为它不是 golang 代码。
|
20
ysmood OP @njutree 我这里假设的是阅读者没有任何 golang 的经验,所有文件的唯一入口点就是 readme ,只要看了它就不会有歧义了。
|
22
ysmood OP @njutree 什么都往根目录里扔不是也很奇怪吗?你这个想法以前我已经权衡过很久了,目前没有足够的动力和理由让我往根目录里塞更多的东西,实际上 golang 的设计理念是代码就是文档,理论上不应该有 example 这样的东西,还是 golang 本身设计不够优秀导致的争论点。
|
23
tinytin 2022-04-27 02:03:43 +08:00 via iPhone
支持一下
|
24
coosir 2022-04-27 17:07:03 +08:00
@ysmood 首先赞一下 OP 的贡献。不过 lib 虽然可以看作图书馆的缩写,但在目录结构上很少这样理解吧。根目录放 docs 等比较多,当然要区分得更开可以独立出去用单独的 example 的 repo ,这样主 repo 可以更加精简清晰。这种规划也不算 golang 特有的设计问题吧
|
25
ysmood OP @coosir example 本来就是一个独立的 go module ,有自己的 package name ,完全可以看作是一个独立的 lib ,这样也便于日后将其独立出去解藕。
我觉得凡事要讲道理,比如怎么做方便,更实用,而不是一味最求和别人一样。我承认放根目录可能是局部最优方案,但是我觉得放 lib 可能是全局最优方案。理由是 example 的使用频率非常低,一般人看过一次也不会再看了。而且这样也会迫使用户都从 readme 入手了解项目,保证用户不会因为不知道 docs 这种不成文的规矩而漏掉重要信息。而且可以让维护者在开发这个项目的时候减少不必要的杂音,IDE 看上去更清爽。 > 这种规划也不算 golang 特有的设计问题吧 我也没说是 golang 特有的,如果让我设计新语言,肯定是会先避开这种设计上的问题的。golang 已经向前走了很大一步了:将 example 作为 test 的一部分。只不过做的还不够完美。 |