Skip to content

Commit 528ead0

Browse files
committed
Upgrade Nuget
1 parent 0598dbd commit 528ead0

2 files changed

Lines changed: 88 additions & 7 deletions

File tree

.github/copilot-instructions.md

Lines changed: 87 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,17 @@
5050

5151
| 类型 | 行动 |
5252
|------|------|
53-
| **缺陷修复** | 资源泄漏、空引用风险、并发问题、逻辑错误 → 直接修复 |
54-
| **性能优化** | 无用分配、重复计算、可池化资源 → 评估后优化 |
53+
| **架构梳理** | 梳理代码架构并进行重构,让代码结构更清晰易懂 |
54+
| **语法现代化** | 使用最新的 C# 语法来简化代码,提升可读性 |
55+
| **缺陷修复** | 资源泄漏、空引用风险、并发问题、逻辑错误 → 直接修复,让代码更健壮 |
56+
| **性能优化** | 无用分配、重复计算、可池化资源 → 通过缓存减少耗时的重复计算 |
5557
| **代码简化** | 重复代码提取、冗余判断合并、现代语法替换 → 在不影响可读性前提下简化 |
56-
| **注释完善** | 缺失的参数注释、过时的描述 → 补充或修正 |
58+
| **注释完善** | 补充类、接口、属性、方法头部的注释,以及方法内部重要代码的注释 |
59+
| **架构参考** | 参考网络上同类功能的优秀架构,给出架构调整建议 |
60+
61+
**架构调整策略**
62+
- **改动较小**:直接调整,完成后说明变更内容
63+
- **改动较大**:先列出调整方案,询问用户意见,待确认后再修改
5764

5865
**不应过度保守**
5966
- ❌ 仅添加注释而忽略明显的代码问题
@@ -66,6 +73,33 @@
6673
- 性能关键路径 → 需有依据或说明推理
6774
- 大范围重构 → 需先与用户确认范围
6875

76+
### 3.2 防御性注释规则
77+
78+
在旧有代码中,经常可以看到**被注释掉的代码**,这些注释代码前面通常带有说明文字。
79+
80+
**这些是防御性注释**
81+
- 记录了过去曾经踩过的坑
82+
- 目的是告诉后来人不要按照注释代码去写,否则会有问题
83+
- **禁止删除此类防御性注释**,用于警示后人
84+
85+
**识别特征**
86+
```csharp
87+
// 曾经尝试过 xxx 方案,但会导致 yyy 问题
88+
// var result = DoSomethingWrong();
89+
90+
// 不要使用 xxx,否则会造成 yyy
91+
// await client.SendAsync(data);
92+
93+
// 这里不能用 xxx,因为 yyy
94+
// stream.Flush();
95+
```
96+
97+
**处理原则**
98+
- ✅ 保留这类带说明的注释代码
99+
- ✅ 可以补充更详细的说明,解释为什么不能这样做
100+
- ❌ 不要删除这类防御性注释
101+
- ❌ 不要尝试"恢复"这些被注释的代码
102+
69103
---
70104

71105
## 4. 编码规范
@@ -151,7 +185,7 @@ public class MyService : DisposeBase
151185
public void Start() { }
152186
#endregion
153187

154-
#region 辅助
188+
#region 日志
155189
/// <summary>日志</summary>
156190
public ILog Log { get; set; } = Logger.Null;
157191

@@ -163,7 +197,13 @@ public class MyService : DisposeBase
163197
}
164198
```
165199

166-
**Region 顺序**`属性``静态`(如有)→ `构造``方法``辅助`/`日志`
200+
**Region 顺序**`属性``静态`(如有)→ `构造``方法``辅助`(如有)→ `日志`
201+
202+
**日志 Region 规则**
203+
- 类代码中如果带有 `ILog Log { get; set; }``WriteLog` 方法
204+
- **必须放在类代码的最后**
205+
- **必须用名为"日志"的 region 包裹**
206+
- 不要放在"辅助" region 中,应单独作为"日志" region
167207

168208
### 4.5 现代 C# 语法
169209

@@ -395,7 +435,7 @@ var flag = str.ToBoolean();
395435
## 8. 日志与追踪
396436

397437
```csharp
398-
#region 辅助
438+
#region 日志
399439
/// <summary>日志</summary>
400440
public ILog Log { get; set; } = Logger.Null;
401441

@@ -492,6 +532,7 @@ catch (Exception ex)
492532
- 伪造测试结果/性能数据
493533
- 擅自删除公共/受保护成员
494534
- 擅自删除已有代码注释(除非注释本身错误)
535+
- **删除防御性注释**(带说明的注释代码,记录历史踩坑经验)
495536
- 仅删除空白行制造"格式优化"提交
496537
- 删除循环体的花括号
497538
-`<summary>` 拆成多行
@@ -535,6 +576,46 @@ catch (Exception ex)
535576
| **热点路径** | 经性能分析或高频调用栈确认的关键执行段 |
536577
| **基线** | 变更前的功能/性能参考数据 |
537578
| **顺带修复** | 在完成主任务过程中,修复发现的相关问题 |
579+
| **防御性注释** | 被注释掉的代码,前面带有说明,记录历史踩坑经验,用于警示后人 |
580+
581+
---
582+
583+
## 15. 代码优化检查清单
584+
585+
当进行代码优化时,按以下清单逐项检查:
586+
587+
### 架构与结构
588+
- [ ] 代码架构是否清晰?是否需要重构?
589+
- [ ] 类的职责是否单一?是否需要拆分?
590+
- [ ] 是否有重复代码可以提取为公共方法?
591+
- [ ] Region 组织是否符合规范(属性→静态→构造→方法→辅助→日志)?
592+
593+
### 语法现代化
594+
- [ ] 是否可以使用更简洁的 C# 语法?(switch 表达式、模式匹配等)
595+
- [ ] 集合初始化是否使用了集合表达式 `[]`
596+
- [ ] 是否可以使用 null 条件运算符 `?.` 简化代码?
597+
598+
### 健壮性
599+
- [ ] 是否存在空引用风险?
600+
- [ ] 资源是否正确释放?(IDisposable、流、连接等)
601+
- [ ] 异常处理是否完善?
602+
- [ ] 并发场景是否线程安全?
603+
604+
### 性能
605+
- [ ] 是否存在可以缓存的重复计算?
606+
- [ ] 是否有不必要的对象分配?
607+
- [ ] 热点路径是否避免了反射和复杂 Linq?
608+
- [ ] 是否使用了对象池/ArrayPool 等池化技术?
609+
610+
### 注释与文档
611+
- [ ] 类、接口是否有 `<summary>` 注释?
612+
- [ ] 公共方法是否有完整的参数和返回值注释?
613+
- [ ] 方法内重要逻辑是否有注释说明?
614+
- [ ] 防御性注释是否保留?
615+
616+
### 日志
617+
- [ ] `ILog Log``WriteLog` 是否放在类的最后?
618+
- [ ] 是否用名为"日志"的 region 包裹?
538619

539620
---
540621

NewLife.RocketMQ/NewLife.RocketMQ.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
</PropertyGroup>
4040

4141
<ItemGroup>
42-
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0">
42+
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="10.0.102">
4343
<PrivateAssets>all</PrivateAssets>
4444
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
4545
</PackageReference>

0 commit comments

Comments
 (0)