超超哥AI云计算超哥讲AI 出品

社群入口

AI 超哥 Codex 副业群

扫码加入群聊,一起交流 AI、Codex 与副业实践。

原图注明二维码于10月20日前有效;若提示过期或无法入群,请等待更新二维码。

AI 超哥 Codex 副业群入群二维码在新窗口打开原图

模块职责、配置与可维护性

Git、代码规范与项目工程化#Python全栈#第六阶段#Git、代码规范与项目工程化#模块职责、配置与可维护性约 611 字 · 2 分钟阅读
追问显示
点击任意追问卡片可收起 / 展开

为什么应把业务规则与命令行、HTTP 等输入输出入口分开?

追问 同一功能需要被脚本、网页和定时任务复用时,如何避免复制业务逻辑?

如何区分业务逻辑、数据访问和外部系统适配的职责?

追问 不使用大型架构框架,怎样通过少量模块和明确参数保持合理依赖方向?

一个通用 utils.py 越来越大时,应该怎样重构?

追问 怎样按业务含义拆分,而不是只按文件大小拆分?如何避免拆出更多循环依赖?

全局可变状态会给项目带来哪些问题?

追问 多次调用、并发执行和检查代码时,共用列表、缓存或客户端分别可能产生什么干扰?

配置应如何从代码常量、配置文件与环境变量中选择来源?

追问 覆盖优先级、默认值和必填项如何约定?如何避免本地缺失配置被静默掩盖?

为什么读取配置后应该做类型转换和有效性校验?

追问 字符串形式的布尔值、端口和超时应该如何解析?错误配置何时报告更容易定位?

.env 与 .env.example 应分别包含什么?

追问 示例文件如何帮助新成员配置环境?怎样在不提交真实凭据的前提下表达必填项?

异常应该在哪一层捕获和转换?

追问 业务异常、外部依赖故障和程序缺陷为什么不宜统一吞掉并返回空值?

工程项目中应该怎样组织日志,而不是到处使用 print?

追问 日志级别、模块名称、异常堆栈与请求标识各有什么作用?日志中哪些内容应避免记录?

怎样设计一个便于替换外部依赖的函数或类?

追问 把客户端或存储对象作为参数传入,与函数内部固定创建相比,对复用和验证有什么影响?