# TSL 常见编码模式 > 本文档是 `$tsl-guide` 的子文档,汇总常见的组织方式与实践范式。 > 语法示例以 `docs/tsl/syntax_book/` 为准。 ## 目录 - [参数校验](#参数校验) - [早返回(减少嵌套)](#早返回减少嵌套) - [错误处理与上下文信息](#错误处理与上下文信息) - [I/O 分层](#io-分层) - [常量与配置管理](#常量与配置管理) - [集合与结果集处理](#集合与结果集处理) - [性能小贴士](#性能小贴士) --- ## 参数校验 尽早验证输入并给出明确错误信息。 ```tsl Function ValidateUserId(UserId); Begin If UserId <= 0 then Raise "invalid user_id: " + IntToStr(UserId); End; ``` --- ## 早返回(减少嵌套) ```tsl Function NormalizeName(Name); Begin If Trim(Name) = "" then Return ""; Return UpperCase(Trim(Name)); End; ``` --- ## 错误处理与上下文信息 ```tsl Function LoadConfig(Path); Begin Try Return ReadFile(Path); Except Raise "load config failed: " + Path + ", " + ExceptObject.ErrInfo; End; End; ``` --- ## I/O 分层 ```tsl Function ReadUserIds(Path); Begin Content := ReadFile(Path); Return ParseUserIds(Content); End; Function ParseUserIds(Content); Begin // 纯函数:只负责解析 Return array(); End; Function WriteReport(Path, Report); Begin WriteFile(Path, Report); End; ``` --- ## 常量与配置管理 ```tsl Const MaxRetries = 3; Const TimeoutMs = 5000; Function RetryFetch(Url); Begin For i := 1 to MaxRetries do Begin // ... End; End; ``` --- ## 集合与结果集处理 ```tsl Function SumPositive(Values); Begin Total := 0; For i := 0 to Length(Values) - 1 do Begin If Values[i] > 0 then Total := Total + Values[i]; End; Return Total; End; ``` --- ## 性能小贴士 仅当明确存在性能瓶颈时采用: - 把循环内的常量/表达式提到循环外 - 避免在循环内执行 I/O 或 SQL - 对结果集访问做局部缓存(如字段名映射)