en un clic
tsinswreng-separate-decl-and-impl
聲明與實現分離。編碼階段初步設計與詳細實現時必須閱讀此skill
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
聲明與實現分離。編碼階段初步設計與詳細實現時必須閱讀此skill
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
Avalime項目的文檔。開發Avalime項目時必須閱讀此skill
AI的持久化記憶。此skill爲必讀。執行任務前先看記憶、執行任務後再按需更新記憶
在需求分析之後 編碼實現之前 閱讀此skill
需求分析skill。默認情況下、你應當先做需求分析 再設計實現。除非用戶明確要求你不用分析
遇到疑問時立即停止工作並與用戶確認。此skill爲必讀
寫代碼一定要有註釋。寫代碼寫註釋時使用此skill
| name | tsinswreng-separate-decl-and-impl |
| description | 聲明與實現分離。編碼階段初步設計與詳細實現時必須閱讀此skill |
當你需要調用已有代碼的API時、大部分情況下你只需要關注函數聲明 不需要關心內部具體實現 以節約token。
有兩種情況、一種是基于接口實現; 另一種是基于partial關鍵字實現(類似于C語言的頭文件);
優先閱讀接口中的代碼。通過依賴注入系統使用接口。通常不需要閱讀具體實現。
約定:
訪問Xxx中的API時 優先閱讀*.Decl.cs。
也可能有.Decl省略不寫的情況、即 Xxx.cs vs Xxx.Impl.cs的情況
新寫的代碼也要遵從聲明與實現分離的規範、先寫聲明、等用戶確認聲明無誤後再實現。 當使用 聲明與實現分離的模式時、聲明部分的文件寫在 Xxx.cs(記得.Decl默認省略!)、有一點類似C語言的頭文件但不完全一樣;
函數實現部分的文件寫在 Xxx.Impl.cs。
Xxx.Impl.cs中只放函數實現。
如果已經採用了接口(interface)+實現類(class)的模式、則不需要再使用partial關鍵字拆分聲明與實現。
例:
TextWithStream.csDecl中、函數聲明中用partial關鍵字、不提供函數實現。
public partial class TextWithStream{
public u64 HeaderBytesLen{get;set;}
public string Text {get;set;}
public Stream Payload {get;set;}
public partial TextWithStream();
public static partial Task<TextWithStream> Unpack(Stream stream, CT Ct);
}
TextWithStream.Impl.csImpl.cs中 只給出函數實現 別的不寫
public partial class TextWithStream{
public partial TextWithStream() {
HeaderBytesLen = 0;
Text = "";
Payload = Stream.Null;
}
public static async partial Task<TextWithStream> Unpack(Stream stream, CT Ct) {
if(stream is null) {
throw new ArgumentNullException(nameof(stream));
}
//...中略
return R;
}
}
再強調幾點: