Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/magestacks/coding-standard
包含代码格式格式、代码开发、注释、日志打印等规范
https://github.com/magestacks/coding-standard
coding standard
Last synced: 20 days ago
JSON representation
包含代码格式格式、代码开发、注释、日志打印等规范
- Host: GitHub
- URL: https://github.com/magestacks/coding-standard
- Owner: magestacks
- License: apache-2.0
- Created: 2022-05-17T15:19:58.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-07-02T07:31:33.000Z (over 2 years ago)
- Last Synced: 2024-11-10T10:45:30.122Z (3 months ago)
- Topics: coding, standard
- Homepage:
- Size: 12.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[👉 《小马哥的代码实战课》官方知识星球来啦!!!](https://xiaomage.info/knowledge-planet/)
每一位程序都应该有自己的代码开发规范。
此仓库记录我在代码开发中,对自己的代码约束,仅供参考。这个仓库会一直维护,不断补充自己正在遵守以及好的代码约束。
## 文档排版
1)[中文文案排版指北](https://github.com/sparanoid/chinese-copywriting-guidelines)
## 注释规范
1)【强制】Class、Interface、Enum、@interface 等文件类型,类上注释仅需说明类的意图即可。
```java
/**
* 适配第三方框架的线程池
*/
public interface ThreadPoolAdapter {}
```2)【强制】方法上需添加注释,并说明清楚方法的意图(接口实现类无需注释);必要时描述 `@param` `@return`。
```java
/**
* 适配第三方框架的线程池
*/
public interface ThreadPoolAdapter {/**
* 修改框架线程池的核心参数
*
* @param threadPoolBaseInfo 修改线程池的基础参数
* @return 线程池核心参数修改结果
*/
boolean updateThreadPool(ThreadPoolBaseInfo threadPoolBaseInfo);
}
```3)【强制】方法内部的注释,应该新起一行,而不是跟在代码后面。
```java
正例:
// 刷新动态线程池参数
refreshDynamicPool(parameter, executor);反例:
refreshDynamicPool(parameter, executor); // 刷新动态线程池参数
```4)【建议】私有方法尽量通过方法命名说明方法语义。
## 代码开发规约
1)【强制】类、方法和变量的命名要做到顾名思义,避免使用缩写。
2)【强制】静态变量使用大写,多个单词使用下划线连接。示例:MESSAGE_CENTER_SEND_TYPR。
3)【强制】捕获的异常名称命名为 ex ;捕获异常且不做任何事情,异常名称命名为 ignored。
4)【强制】返回值变量使用 result 命名;循环中使用 each 命名循环变量;map 中使用 entry 代替 each。
```java
result 命名示范:
private void parseDate(String data) {
Result result = JSONUtil.parseObject(data, Result.class);
return result;
}
或采用 result 为前缀:
private void parseDate(String data) {
Result resultDate = JSONUtil.parseObject(data, Result.class);
return resultDate;
}each 命名示范:
appNameLeaseMap.values().forEach(each -> appNameLeaseList.add(each));
或是 for 循环:
for (Lease each : appNameLeaseMap.values()) {
appNameLeaseList.add(each);
}
```5)【强制】业务系统中优先使用 Guava、HuTool、Common3 等工具类中的方法,不存在指定方法时再创建自定义工具类,禁止创建相同语义方法的工具类。
备注:定义组件项目时,尽量使用自定义工具类,避免因版本问题导致不确定的异常。
6)【建议】优先使用卫语句替换嵌套判断,提高代码简洁度。
## 代码格式规约
TODO
## 日志打印规约
TODO
## 参考资料
[ShardingSphere 开发规范](https://shardingsphere.apache.org/community/cn/contribute/code-conduct/)