Skip to content

Commit

Permalink
chore: deploy docs of project Nop Entropy via GitHub Actions
Browse files Browse the repository at this point in the history
  • Loading branch information
nop-cao committed Aug 19, 2024
1 parent 001f4b6 commit 3936753
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions projects/nop-entropy/docs/dev-guide/nocode/dyn-codegen/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1259,6 +1259,22 @@ <h1 class="Article-title">动态模型代码生成</h1>
</header>
<div class="Article-content col-md-9"><h2 id="动态模型"><a href="#动态模型" class="headerlink" title="动态模型"></a>动态模型</h2><p>nop-dyn模块提供在线模型定义。在DynCodeGen类中,初始化的时候会自动读取dyn配置,并在内存中生成meta和biz定义。</p>
<p>如果启动的时候希望跳过模型生成,可以配置<code>nop.dyn.gen-code-when-init</code>为false。</p>
<p>动态模型如果也支持多租户,则会导致同样的实体名对应的数据库结构不同</p>
<h2 id="动态更新"><a href="#动态更新" class="headerlink" title="动态更新"></a>动态更新</h2><p>动态模型允许动态修改和更新,模型更新后所有根据模型自动推导得到的信息也需要连带更新,因此需要有必要精确定义模型变动所影响的范围。</p>
<p>模型加载使用响应式的动态生成加载器: 当按照名称进行加载时,动态生成模型文件再进行解析,解析结果在内存中缓存</p>
<h3 id="租户和模块"><a href="#租户和模块" class="headerlink" title="租户和模块"></a>租户和模块</h3><ul>
<li>每个租户具有自己独立管理的模型缓存,由TenantAwareResourceLoadingCache提供相关实现。</li>
<li>每个租户对应于一个Delta文件存储,在这个ResourceStore中再按照模块前缀进行切分,每个模块的文件可以单独加载和更新。</li>
</ul>
<h3 id="对象切分"><a href="#对象切分" class="headerlink" title="对象切分"></a>对象切分</h3><ul>
<li>对象结构是业务含义明确的分解结构,一个对象相关的各个模型往往会出现紧密的相互引用,可以按照对象作为最小的更新粒度。</li>
<li>meta、view和page等都是针对单实体可以进行缓存管理,每次修改更新单对象相关文件即可</li>
<li>ORM模型允许实体引用,但是考虑到动态更新,原则上不跨模块进行相互引用。</li>
</ul>
<h2 id="发布"><a href="#发布" class="headerlink" title="发布"></a>发布</h2><ul>
<li>点击【发布】按钮,会调用DynCodeGen在内存中生成模型文件。模型和模型文件可以导出,作为普通模块来管理和使用。</li>
<li>在模块发布之前可以设计和测试模型,发布仅仅是让它对外部可见。区分【未部署】、【已部署】和【已发布】等状态</li>
</ul>

</div>
<footer class="Article-footer col-md-3">
Expand Down

0 comments on commit 3936753

Please sign in to comment.