4.5 KiB
设计约束
通常模块与模块之间是通过proxy连接的。不能类与类不然粒度太粗,反而不好重构
函数定义 函数调用 等参数不允许换行 注意所有facade用到的函数名都定义在这里 D: \ae\proj\Aethera\kernel\kernel\include\global.hpp 这样重复的名称不用重复写 光写facade即可
枚举定义要换行 加注释 facade_builder 定义也要换行
除非特别说明不允许写任何同步等待代码。 除非特别说明不允许写任何同步等待代码。 除非特别说明不允许写任何同步等待代码。 除非特别说明不允许写任何同步等待代码。
除非特别说明 不允许写任何 事件机制。 除非特别说明 不允许写任何 事件机制。 除非特别说明 不允许写任何 事件机制。 除非特别说明 不允许写任何 事件机制。
除非特别说明不允许写任何 快照, 任何线程问题先完了都要给我说明 我来审核。 除非特别说明不允许写任何 快照, 任何线程问题先完了都要给我说明 我来审核。 除非特别说明不允许写任何 快照, 任何线程问题先完了都要给我说明 我来审核。 除非特别说明不允许写任何 快照, 任何线程问题先完了都要给我说明 我来审核。
跨模块多态对象统一使用 proxy 表达,proxy 的实际所有权由构造时承载的指针类型决定:裸指针为非拥有借用,make_proxy/unique_ptr 为独占所有权,make_proxy_shared/shared_ptr 为共享所有权,proxy_view 为非拥有观察,weak_proxy 为弱所有权。接口和字段注释必须写明实际所有权与生命周期,不再强制使用 not_null<T*> 或 owner<T*> 标注普通指针。
我使用 里的这个环境 D:\ae\proj\Aethera\CMakePresets.json "toolchain/vs2022.json" ====================[ 构建 | Aethera_Kernel_check | vs2022_debug ]================ "C:\Program Files\JetBrains\CLion 2026.1\bin\cmake\win\x64\bin\cmake.exe" --build D: \ae\proj\Aethera\cmake-build-vs2022_debug --target Aethera_Kernel_check -j 30 默认每次运行程序都通过CDB运行 D: \ae\ewdk\EWDK_22621_230929-1800\Program Files\Windows Kits\10\Debuggers\x64\cdb.exe
编译器环境脚本 C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat -host_arch=x64 -arch=x64
D:\ae\tools 可能会有有用的工具
任何 fallback 都必须先规划,禁止直接实现
你每次出bug 很多时候是编译缓存的原因 你清掉缓存重新编译 还不行 再去找bug
你写完清理你自己创建的所有进程 我自己启动服务
写函数 和模块使用下面的约定 错误处理规范 命名约定 项目细节规范
-
跟你审计报告 就要大刀阔斧的改 一次性先把问题一次改完 在批量检查 要大步前进
-
每个状态只能有一个权威来源,禁止在不同对象中重复保存并手工同步。
-
能通过计算、查询或快照得到的数据,不要保存为成员变量。
-
禁止增加只做值转发的成员、getter、setter 和兼容中间层。
-
公共接口只表达业务语义,不泄漏缓冲区角色、线程状态、Private 类型和内部指针。
-
接口必须正交,避免语义重叠、调用顺序依赖和多套相同实现。
-
类只保存自身职责需要的状态,不替其他对象保存配置或运行状态。
-
不要用大量默认空实现的虚函数,能力应按需拆分和组合。
-
不要提前加入空配置、无消费者统计和未完成接口。
-
替换实现时直接删除旧实现,不保留兼容转发。
-
修改后检查新增成员的写入者、读取者、生命周期,以及是否形成重复状态源。
-
注意使用 clion提供的工具 Name Url Bearer Token Env Var Status Auth clion-index http://127.0.0.1:29177/index-mcp/streamable-http - enabled Unsupported
"C:\Program Files\JetBrains\CLion 2026.1\bin\cmake\win\x64\bin\cmake.exe" -DCMAKE_BUILD_TYPE=Debug "-DCMAKE_C_COMPILER=C:/Program Files/Microsoft Visual Studio/18/Enterprise/VC/Tools/MSVC/14.50.35717/bin/Hostx64/x64/cl.bat" "-DCMAKE_CXX_COMPILER=C:/Program Files/Microsoft Visual Studio/18/Enterprise/VC/Tools/MSVC/14.50.35717/bin/Hostx64/x64/cl.bat" --preset vs2019_Debug -S D:\ae\proj\Radio -B D:\ae\proj\Radio\cmake-build-vs2019_debug "C:\Program Files\JetBrains\CLion 2026.1\bin\cmake\win\x64\bin\cmake.exe" --build D: \ae\proj\Radio\cmake-build-vs2019_debug --target Renderive_Core -j 30