🎨 style(markdown): format markdown files

This commit is contained in:
csh
2026-01-11 12:58:27 +08:00
parent e3ecd26a88
commit 2b37860331
54 changed files with 10042 additions and 16272 deletions
@@ -32,6 +32,7 @@
```tsl
R[i] := #函数名(参数…) with array(系统参数列表…) timeout N;
```
其中,with 语句可指定网格运算子程中的系统参数,此输入可省
timeout
@@ -353,6 +354,7 @@ begin
SetGlobalCache(Cache, V);
end;
```
但这样存在几个问题:
一是全局缓存的设置是需要权限的,一旦采用这样的模式,代码只能运行在高权限下。
@@ -368,6 +370,7 @@ begin
SetGlobalCache(Cache, V);
end;
```
我们需要在 IsDataNeedReCalc 里来检查诸如外部数据的版本是否发生了变更等工作,往往这种检查对事件的耗费远远大于全局缓存的获取,这样又会影响到用户模型的效率。
##### 期望的方式
@@ -377,6 +380,7 @@ end;
```tsl
if not GetGlobalCache(CacheName, V) then V := CalcDataCall();
```
由于全局缓存系统管了生成,所以我们只需要取即可,如果系统未生成,我们直接进入计算模式。
##### 不推荐的模式
@@ -384,6 +388,7 @@ if not GetGlobalCache(CacheName, V) then V := CalcDataCall();
```tsl
GetGlobalCache(CacheName, V);
```
有的开发者会在升级应用后,将取数程序变成了最简单的模式,假设缓存的获得会成功,这样在项目实施中并无不可,假设数据的初始化和数据变更确定性由系统其他部分完成了,这样也带来了数据底层来源和上层应用分离的优势。
但在产品开发中,我们并不推荐如此模式,因为这样会带来了新的问题。
@@ -497,4 +502,5 @@ Automonthreads 设置的是启动的监控管理线程的数量。
```tsl
// 如果初始化和监控 TSL 需要调用内外部的 TSL 函数来进行数据准备,设计者推荐用户采用 data:=sudo("modeluser",getcalcdata())的模式来进行数据的一些准备工作,因为 GetCalcData()这类的函数往往不需要任何特殊权限,这样可以最大限度地防止非授权代码的运行。
```
如果我们仅仅只是利用初始化和监控进行一些系统性操作,设计者强烈建议不需要使用一些中间函数,将除了二进制函数外的实现直接在.TSL 里完成,这样做可以让这些代码可以独立运行。如果无法保障这一点,强烈建议将无需权限运行的内容以 sudo 模式来运行。