虽然学过基础的python,但看正儿八经的大模型项目还是一头雾水,ai还给我类比厨师厨子,依然听不懂。让他类比为java语言后,感觉瞬间so easy~ 本系列文,主要记录一些看代码中不懂的疑问

1、禁止 Model(ORM)直接透出 API,必须经 Pydantic Schema 转换
翻译:不能直接返回bean类,要转化为Dto
2、新 endpoint 必须有 integration test(指定目录xx)
翻译:每个新的 @RestController 接口,必须写集成测试(放在目录xx)
3、src layout
翻译:后端业务代码都放到src目录下,就像java的src/main/java/
4、DAO / Service 通过 Depends 注入,禁止在路由中直接实例化
翻译:不能通过new 对象的方式实例化,必须通过注入的方式实例化。

@router.get("/users/{id}")
async def get_user(id: int, service: UserService = Depends()):
    return await service.get(id)
类似 Java 的 @Autowired
// Java 正确做法
@RestController
public class UserController {
    @Autowired  // 依赖注入
    private UserService service;
    
    @GetMapping("/users/{id}")
    public User getUser(@PathVariable Long id) {
        return service.get(id);
    }
}
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐