apache / dubbo-go

Go Implementation For Apache Dubbo .
https://dubbo.apache.org/
Apache License 2.0
4.73k stars 930 forks source link

Proposal: dubbo-go 编程规范建议 #313

Closed zouyx closed 4 years ago

zouyx commented 4 years ago

dubbo-go 包命名规范

1.我们以大模块到小模块的命名方式,

2.最底层模块,一定要有实际意义的词语为包命名,并拒绝没有实际意义的命名方式,如impl。

3.字母全小写。

4.不使用驼峰信息,第二个单词前加下划线,

5.起码三级目录需要参考dubbo。

一级模块应只包含以下包命名: cluster:集群相关 common:静态常量,公用vo等 compatible: config: config_center:配置中心 container:容器 demo: filter:过滤器 metadata:元数据 monitor:监控 plugin:插件 registry:注册中心 remoting:远程组件交互的基础模块,如zk,nacos,不实际用于项目,通过其他模块调用如registry,config_center rpc:rpc serialization:序列化

参考:https://github.com/apache/dubbo

以配置中心apollo为例

dubbo目录:dubbo-configcenter/dubbo-configcenter-apollo/src/main/java/org/apache/dubbo/configcenter/support/apollo

go目录:config_center/apollo

转换规则:

规则1,2,3,4,5

并去除【dubbo-】,【src/main/java/org/apache/dubbo】,【support】(因support没有太大实际意义)

hxmhlt commented 4 years ago

如果将实现作为下级目录,那子模块是否也应该作为下级目录。这样就会出现混乱的情况

hxmhlt commented 4 years ago

如图:config_center目前就是按照这个规矩来组织的目录,其中: configurator和parser是config_center的子模块,其又是一层接口,其下各有一个默认实现。 而apollo和zookeeper是config_center的实现。目录名称是首字母排序,感觉很乱,不够条理。 image

AlexStocks commented 4 years ago

refer from programming rule

image

package 名称还是 常数,不要使用下划线. 后面再提交的pr,必须有注释 单测 和 集成测试用例 或者 使用用例。注释就不要再偷懒成 DubboProtocol ... 这种了。