Files
v2ray_simple/CONTRIBUTING.md
e1732a364fed 140c85f4d0 修订文档
2022-12-19 11:59:31 +08:00

4.7 KiB
Raw Blame History

学习本作理念

代码的理念就是极简!这也是本项目名字由来!

根据 奥卡姆剃刀原理,不要搞一大堆复杂机制,最简单的能实现的代码就是最好的代码。

想要为本作贡献的同学,要学习本作的这些理念,并能够贯彻你的代码。

不够极简或解释不够清晰的代码我们将会进行淘汰或修正。

所有issue和 PR 尽量用中文

所有issue和 PR 尽量用中文

本项目不考虑应用 i18n. 这是本项目的强制约定。本项目不是大项目,只追求极简能用。太大就太复杂。

所发的PR是有优先级的

随着项目不断扩大,一些对不同成分的优化会有不同的优先级

重要性按如下顺序排列:

  1. 代理问题如果直接就导致无法代理或闪退这是重大bug必须立即在下一个beta版本修复
  2. 协议是否有bug、程序是否有安全问题、内存泄漏问题等这个也很重要。必须在下一个Patch版本修复
  3. 原作功能补充
  4. 新功能添加, 如果是添加新代理协议一般要在Minor版本中加入。
  5. 代码优化、代码结构性问题。这个因为结构性问题比较复杂需要慢慢实现慢慢改。如果是大范围结构性的改动在下一个Minor版本中加入。如果是完整的架构修改在下一个Major版本中加入。
  6. 编译优化,这个是低优先级,而且也是很好处理的。
  7. 安装教程、一键脚本、安卓客户端等。这个有时间再说,最低优先级。安装教程我也有一份 install.md ,不定时更新。

关于版本号的定义我们参考但不完全遵循golang的定义 https://go.dev/doc/modules/version-numbers

本作没有0.0.0版本初始版本就是1.0.0

Major.Minor.Patch-beta.x

我们beta版本提供各种bug修复以及功能调整与新增 Patch版本一般会比上一个Patch版本相比具有新增的功能 Minor版本具有显著的功能增加以及稳定性、性能的提升 Major版本具有显著的架构调整

对于一些人的PR我会做出一些指导有时并给予临时性修复。我的临时修改只是一种指导性含义作为PR的原作者你需要自己维护自己代码的质量要理解我的临时修改不能当作最终修改要自己想出最完善的修改。

我们每个人都是有日常生活的,能照顾本项目已经很不错了,不要指望什么都能想到,也不要指望不犯错 ,我们要互相包容,做到自己最好,多写代码,少进行没有意义的指责。

github action

每push一次自动进行一次test

每发布一个release自动进行一次 build_release

build_release 会编译适当数量的 目标平台 可执行文件。

如需要更多平台的编译文件,可以手动执行 build_release_extra, 它会要求你输入一个tag然后它会为该tag的代码 编译出额外平台的 可执行文件。

文档所用语言 - Language for Documentation

这里的文档 指的是 代码注释。根据go语言的标准代码注释会生成代码文档所以注释就是一种文档。

中文在作为文档的情况下,是与 英文 平级的,没有定性要求 一定要用哪个语言,但是有一个基本规则,如下。

基本原则

Package级别的 包的一句话描述 要用英文。 其他文档的规则如下:

如果你是汉语母语者

遵循下面规则, 简称 “极简规则”:

如果一句注释 用中文的 utf-8 所实际占用的字节数 会比 用英文字符 所占用的 字节数 要少,则建议用中文,否则 建议用英文。

备注,一个中文字符的 utf-8表示 占 3字节。

举个例子,比如 “实现了xxx协议” 这个“实现”,不建议用 "implements", 因为英文有10字节而中文才6字节。同样 protocol 与 “协议” 对比来说,英文占了 8 字节,还是多。

第二个例子,"统计数据" 有 12字节而 "statistics" 才10字节所以要用英文表达。

第三个例子,"可返回" 有9 字节,而 "can return" 刨除空格也是9字节但是因为英文的空格是必须有的所以还是 中文胜出。

第四个例子, "和", 英文是 "and", 没差别都是3字节所以都可以但是 "或" 英文的 "or" 更简单,所以建议用 "or". 尤其如果要用 "或者“ 的话,那字节数就更多了,更加不建议用中文。

如果字节数相差不大,那么我们还可以进一步比较 音节数量 以及 书写长度。

例外

如果一个文档比较复杂,则建议用中文,毕竟主要读者是华人,自己都不好用英语写,那华人读英语就更费劲了。

如果一个文档比较简单,建议直接用英文描述。

If Chinese is Not Your First Language

Use English.