更新 llms-full.txt

This commit is contained in:
oyo
2025-08-08 17:38:48 +08:00
parent 4143c28560
commit d77d0366da

View File

@@ -1440,44 +1440,5 @@ requestParams为请求参数列表response为返回结构requestParams中
- 本章节描述的是参数选择的**优先级原则**,不是绝对限制
- API参数的绝对限制请参考2.14章节
- "优先使用QTO/BTO"意思是在满足规范的前提下,根据场景选择最合适的参数类型
### 5. 本地代码阅读和编写指南
#### 路径处理规范
- **所有子模块文件路径必须以 `modules/` 开头**
- 当工具返回的路径为 `src/main/java/...` 格式时,需要根据文件内容识别模块名并补充完整路径
- 完整路径格式:`modules/{模块名}/src/main/java/...`
- 示例:`modules/room_management/src/main/java/com/bnb/room_management/...`
#### 5.1 代码阅读
- 根据**设计元素到代码的映射规则及修改建议**在约读代码的时候你可以识别出对应的TOCO设计元素通过工具获取TOCO设计元素信息辅助理解代码语义特别是对于ReadPlanWritePlan的设计元素
- 读取类文件时应该同时读取继承的基类文件但注意不要去阅读BaseBOService里的代码
- 不要去读VoConverter、DtoConverter、 BaseDtoConverter、BaseVoConverter的代码
- 如果一个类或者一个函数上面有@AutoGenerate的注解说明该函数、该类是由TOCO设计元素生成的你需要使用工具`getItemDefinition`获取设计元素,辅助理解代码含义
#### 5.2 代码修改
**代码修改安全检查流程**
在执行任何代码修改之前,必须严格遵循以下步骤:
- **强制代码检查**:使用 readClassMethod 或 findJavaClass 读取目标代码完整内容
- **修改策略选择**
如果需要修改设计元素本身的实现应修改对应的TOCO设计不应直接修改代码
- **禁止行为**严禁跳过检查步骤、严禁直接修改TOCO生成的代码
- **完整流程**:设计元素修改 → draftConfirm → designToCode → 必要时再用editFile补充
记住TOCO生成的代码占项目90%,大部分修改需求都应通过设计元素工具完成。
#### 5.3 代码编写
- 对于校验规则先判断是否为业务不变性规则如果是则将代码写在BO对象的聚合校验函数中即可实现校验功能不需要在Controller或Service中单独调用校验方法。聚合校验函数中适合做内存中数据的规则校验不适合做很重的外部存储数据的获取或RPC调用乐观锁字段由系统维护无需校验
- 编写代码前需仔细分析当前代码所属模块和其中需要调用的方法是否属于同一模块,特别注意**跨模块方法调用必须通过XxxRpcAdapterInXxx****禁止**直接使用其他模块的类名来调用,其通过@Resource注入的变量名必须为类名的首字母小写如@Resource private UserServiceRpcAdapterInMeeting userServiceRpcAdapterInMeeting
- 需要着重考虑单一职责原则、复用性如Controller中更适合做参数校验及简单的不可复用的逻辑分支处理不适合实现复杂的或通用的业务逻辑
- 在循环中需要尽量避免执行调用数据库的操作,如查询数据库、写数据库等,尽量在循环外层先获取数据,在循环里面进行数据处理或读取
- 提高代码的可以读性复杂的业务逻辑需要拆解成多个函数一个函数的代码一般不要超过30行
- 如果代码中需要抛出异常则统一抛出IgnoredException(code, "message")异常如throw new IgnoredException(400, "xxx");code=400一般表示参数错误code=500一般表示处理出现错误。注意IgnoredException属于已有的包com.vs.ox.common.exception需要import com.vs.ox.common.exception.IgnoredException;
- 写代码时请注意BOService一般是用于写QueryService一般是用于读
- 输出代码前请仔细检查是否有错误的import如果有则将其修正
- 对于无法识别或直接生成的参数和逻辑,请增加一个相关的//TODO注释把从需求中解析到的可能的处理逻辑以java伪代码的形式写在注释中
- BOService 函数中的 boResult.getRootBo() 一定存在不要添加判断null的情况的代码; 不要添加调用rootBo.persist()的代码该方法的触发由生成的代码负责在BOService的函数中不要修改和注销系统生成的代码通过/** This block is generated by vs **/注释标注部分)
- 在函数中的不同片段逻辑,使用 {} 标注分块附上注释提升代码的可读性如果分块超过3个必须拆分成函数并且放到一个独立的Service类中**禁止** 由大量分块组合而成的面条式代码。
- 以准确性作为第一优先级(不产生编译错误),不要直接生成不存在的函数、字段的调用; 如果逻辑上必须依赖,可以使用注释来表达
- 写代码时,如果发现有用户指定的上下文,则优先判断是否有可用的代码;如果用户有编写代码的特殊要求,则优先满足用户需求;如果前面已经有过规划信息,则尽量按照之前的规划来做,比如业务不变性的分析等
- 对于写服务的代码插入遵循如下规则: 1、 controller里插入入参的校验部分逻辑和参数重组逻辑 2、其他的逻辑在主BoService的主函数里为了增加代码可读性可以在BoService里新增函数
- 请在最后对所有你新增或修改的代码进行一次review重点关注是否存在编译错误代码可读性是否需要对大的函数进行拆分重构
-----------------------------------------------------------------------------
</TOCO知识库>