This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch cn-site
in repository https://gitbox.apache.org/repos/asf/dubbo-website.git


The following commit(s) were added to refs/heads/cn-site by this push:
     new bc7467acf2a deploy: 3b6fe90020530c9f75a3c72ba4e9cc7dc682749c
bc7467acf2a is described below

commit bc7467acf2ad394690451987db4403cd7d9e611d
Author: AlbumenJ <album...@users.noreply.github.com>
AuthorDate: Wed Feb 28 09:53:18 2024 +0000

    deploy: 3b6fe90020530c9f75a3c72ba4e9cc7dc682749c
---
 sitemap.xml                                                | 2 +-
 zh-cn/docsv2.7/dev/principals/general-knowledge/index.html | 6 +++---
 zh-cn/docsv2.7/dev/principals/index.xml                    | 2 +-
 zh-cn/sitemap.xml                                          | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/sitemap.xml b/sitemap.xml
index 0065efb53c1..e2ac7f7207e 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";><sitemap><loc>https://cn.dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2024-02-06T10:06:40+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2024-02-01T17:47:34+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";><sitemap><loc>https://cn.dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2024-02-28T17:48:45+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2024-02-01T17:47:34+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git a/zh-cn/docsv2.7/dev/principals/general-knowledge/index.html 
b/zh-cn/docsv2.7/dev/principals/general-knowledge/index.html
index c5aaccba88b..b915f62c2fe 100644
--- a/zh-cn/docsv2.7/dev/principals/general-knowledge/index.html
+++ b/zh-cn/docsv2.7/dev/principals/general-knowledge/index.html
@@ -1,5 +1,5 @@
 <!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS 
content="INDEX, FOLLOW"><link rel=canonical 
href=https://cn.dubbo.apache.org/zh-cn/docsv2.7/dev/principals/general-knowledge/><script>var
 _hmt=_hmt||[];(function(){var 
e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta
 charset=utf-8><meta name=viewport content="width=device-w [...]
-<meta property="og:description" content="一些设计上的基本常识"><meta property="og:type" 
content="article"><meta property="og:url" 
content="https://cn.dubbo.apache.org/zh-cn/docsv2.7/dev/principals/general-knowledge/";><meta
 property="article:section" content="docsv2.7"><meta 
property="article:modified_time" content="2023-03-01T09:48:32+08:00"><meta 
itemprop=name content="一些设计上的基本常识"><meta itemprop=description 
content="一些设计上的基本常识"><meta itemprop=dateModified 
content="2023-03-01T09:48:32+08:00"><meta [...]
+<meta property="og:description" content="一些设计上的基本常识"><meta property="og:type" 
content="article"><meta property="og:url" 
content="https://cn.dubbo.apache.org/zh-cn/docsv2.7/dev/principals/general-knowledge/";><meta
 property="article:section" content="docsv2.7"><meta 
property="article:modified_time" content="2024-02-28T17:48:45+08:00"><meta 
itemprop=name content="一些设计上的基本常识"><meta itemprop=description 
content="一些设计上的基本常识"><meta itemprop=dateModified 
content="2024-02-28T17:48:45+08:00"><meta [...]
 <label for=m-zh-cndocsv27user-check><a href=/zh-cn/docsv2.7/user/ 
class="align-left pl-0 td-sidebar-link td-sidebar-link__section" 
id=m-zh-cndocsv27user><span>用户文档</span></a></label><ul class="ul-2 
foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section 
with-child" id=m-zh-cndocsv27userpreface-li><input type=checkbox 
id=m-zh-cndocsv27userpreface-check>
 <label for=m-zh-cndocsv27userpreface-check><a 
href=/zh-cn/docsv2.7/user/preface/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__section" 
id=m-zh-cndocsv27userpreface><span>入门介绍</span></a></label><ul class="ul-3 
foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section 
without-child" id=m-zh-cndocsv27userprefacebackground-li><input type=checkbox 
id=m-zh-cndocsv27userprefacebackground-check>
 <label for=m-zh-cndocsv27userprefacebackground-check><a 
href=/zh-cn/docsv2.7/user/preface/background/ class="align-left pl-0 
td-sidebar-link td-sidebar-link__page" 
id=m-zh-cndocsv27userprefacebackground><span>背景</span></a></label></li><li 
class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" 
id=m-zh-cndocsv27userprefacerequirements-li><input type=checkbox 
id=m-zh-cndocsv27userprefacerequirements-check>
@@ -198,8 +198,8 @@
 <label for=m-zh-cndocsv27admininstallredis-check><a 
href=/zh-cn/docsv2.7/admin/install/redis/ class="align-left pl-0 
td-sidebar-link td-sidebar-link__page" 
id=m-zh-cndocsv27admininstallredis><span>Redis 
注册中心安装</span></a></label></li><li class="td-sidebar-nav__section-title 
td-sidebar-nav__section without-child" 
id=m-zh-cndocsv27admininstallzookeeper-li><input type=checkbox 
id=m-zh-cndocsv27admininstallzookeeper-check>
 <label for=m-zh-cndocsv27admininstallzookeeper-check><a 
href=/zh-cn/docsv2.7/admin/install/zookeeper/ class="align-left pl-0 
td-sidebar-link td-sidebar-link__page" 
id=m-zh-cndocsv27admininstallzookeeper><span>Zookeeper 
注册中心安装</span></a></label></li><li class="td-sidebar-nav__section-title 
td-sidebar-nav__section without-child" 
id=m-zh-cndocsv27admininstallmonitor-center-li><input type=checkbox 
id=m-zh-cndocsv27admininstallmonitor-center-check>
 <label for=m-zh-cndocsv27admininstallmonitor-center-check><a 
href=/zh-cn/docsv2.7/admin/install/monitor-center/ class="align-left pl-0 
td-sidebar-link td-sidebar-link__page" 
id=m-zh-cndocsv27admininstallmonitor-center><span>Simple 
监控中心安装</span></a></label></li></ul></li></ul></li></ul></li></ul></nav></div></div><main
 class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb 
class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a 
href=https://cn.dubbo.a [...]
-比如 Spring 的 ApplicationContext,Dubbo 的 ServiceManager 
等。服务域的对象通常会比较重,而且是线程安全的,并以单一实例服务于所有调用。</p><p>什么是会话?就是一次交互过程。会话中重要的概念是上下文,什么是上下文?比如我们说:“老地方见”,这里的“老地方”就是上下文信息。为什么说“老地方”对方会知道,因为我们前面定义了“老地方”的具体内容。所以说,上下文通常持有交互过程中的状态变量等。会话对象通常较轻,每次请求都重新创建实例,请求结束后销毁。简而言之:把元信息交由实体域持有,把一次请求中的临时状态由会话域持有,由服务域贯穿整个过程。</p><p><img
 src=/imgs/dev/ddd.jpg alt=ddd></p><h2 
id=在重要的过程上设置拦截接口>在重要的过程上设置拦截接口</h2><p>如果你要写个远程调用框架,那远程调用的过程应该有一个统
 一的拦截接口。如果你要写一个 ORM 框架,那至少 SQL 的执行过程,Mapping 过程要有拦截接口;如果你要写一个 Web 
框架,那请求的执行过程应该要有拦 [...]
-<button class="btn btn-primary mb-4 
feedback--no">否</button></div><script>const 
yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const
 
sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disabled
 [...]
+比如 Spring 的 ApplicationContext,Dubbo 的 ServiceManager 
等。服务域的对象通常会比较重,而且是线程安全的,并以单一实例服务于所有调用。</p><p>什么是会话?就是一次交互过程。会话中重要的概念是上下文,什么是上下文?比如我们说:“老地方见”,这里的“老地方”就是上下文信息。为什么说“老地方”对方会知道,因为我们前面定义了“老地方”的具体内容。所以说,上下文通常持有交互过程中的状态变量等。会话对象通常较轻,每次请求都重新创建实例,请求结束后销毁。简而言之:把元信息交由实体域持有,把一次请求中的临时状态由会话域持有,由服务域贯穿整个过程。</p><p><img
 src=/imgs/dev/ddd.jpg alt=ddd></p><h2 
id=在重要的过程上设置拦截接口>在重要的过程上设置拦截接口</h2><p>如果你要写个远程调用框架,那远程调用的过程应该有一个统
 一的拦截接口。如果你要写一个 ORM 框架,那至少 SQL 的执行过程,Mapping 过程要有拦截接口;如果你要写一个 Web 
框架,那请求的执行过程应该要有拦 [...]
+<button class="btn btn-primary mb-4 
feedback--no">否</button></div><script>const 
yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const
 
sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disabled
 [...]
 <a 
href="https://github.com/apache/dubbo-website/new/master/content/zh-cn/docsv2.7/dev/principals/general-knowledge.md?filename=change-me.md&amp;value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22fro
 [...]
 <a 
href="https://github.com/apache/dubbo-website/issues/new?title=%e4%b8%80%e4%ba%9b%e8%ae%be%e8%ae%a1%e4%b8%8a%e7%9a%84%e5%9f%ba%e6%9c%ac%e5%b8%b8%e8%af%86";
 target=_blank><i class="fab fa-github fa-fw"></i> 登记问题</a>
 <a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas 
fa-tasks fa-fw"></i> 提交项目问题</a></div><nav id=TableOfContents><ul><li><a 
href=#api-与-spi-分离>API 与 SPI 分离</a></li><li><a 
href=#服务域实体域会话域分离>服务域/实体域/会话域分离</a></li><li><a 
href=#在重要的过程上设置拦截接口>在重要的过程上设置拦截接口</a></li><li><a 
href=#重要的状态的变更发送事件并留出监听接口>重要的状态的变更发送事件并留出监听接口</a></li><li><a 
href=#扩展接口职责尽可能单一具有可组合性>扩展接口职责尽可能单一,具有可组合性</a></li><li><a 
href=#微核插件式平等对待第三方>微核插件式,平等对待第三方</a></li><li><a href=#不要控制外部对象的生命周期>不要控制外部对象的生命 
[...]
\ No newline at end of file
diff --git a/zh-cn/docsv2.7/dev/principals/index.xml 
b/zh-cn/docsv2.7/dev/principals/index.xml
index 1c26694ee22..aab9d69d916 100644
--- a/zh-cn/docsv2.7/dev/principals/index.xml
+++ b/zh-cn/docsv2.7/dev/principals/index.xml
@@ -349,7 +349,7 @@
 &lt;h2 id="扩展接口职责尽可能单一具有可组合性">扩展接口职责尽可能单一,具有可组合性&lt;/h2>
 
&lt;p>比如,远程调用框架它的协议是可以替换的。如果只提供一个总的扩展接口,当然可以做到切换协议,但协议支持是可以细分为底层通讯,序列化,动态代理方式等等。如果将接口拆细,正交分解,会更便于扩展者复用已有逻辑,而只是替换某部分实现策略。当然这个分解的粒度需要把握好。&lt;/p>
 &lt;h2 id="微核插件式平等对待第三方">微核插件式,平等对待第三方&lt;/h2>
-&lt;p>大凡发展的比较好的框架,都遵守微核的理念。Eclipse 的微核是 OSGi, Spring 的微核是 BeanFactory,Maven 
的微核是 
Plexus。通常核心是不应该带有功能性的,而是一个生命周期和集成容器,这样各功能可以通过相同的方式交互及扩展,并且任何功能都可以被替换。如果做不到微核,至少要平等对待第三方,即原作者能实现的功能,扩展者应该可以通过扩展的方式全部做到。原作者要把自己也当作扩展者,这样才能保证框架的可持续性及由内向外的稳定性。&lt;/p>
+&lt;p>但凡发展的比较好的框架,都遵守微核的理念。Eclipse 的微核是 OSGi, Spring 的微核是 BeanFactory,Maven 
的微核是 
Plexus。通常核心是不应该带有功能性的,而是一个生命周期和集成容器,这样各功能可以通过相同的方式交互及扩展,并且任何功能都可以被替换。如果做不到微核,至少要平等对待第三方,即原作者能实现的功能,扩展者应该可以通过扩展的方式全部做到。原作者要把自己也当作扩展者,这样才能保证框架的可持续性及由内向外的稳定性。&lt;/p>
 &lt;h2 id="不要控制外部对象的生命周期">不要控制外部对象的生命周期&lt;/h2>
 &lt;p>比如上面说的 Action 使用接口和 Renderer 扩展接口。框架如果让使用者或扩展者把 Action 或 Renderer 
实现类的类名或类元信息报上来,然后在内部通过反射 newInstance() 创建一个实例,这样框架就控制了 Action 或 Renderer 
实现类的生命周期,Action 或 Renderer 的生老病死,框架都自己做了,外部扩展或集成都无能为力。好的办法是让使用者或扩展者把 Action 或 
Renderer 
实现类的实例报上来,框架只是使用这些实例,这些对象是怎么创建的,怎么销毁的,都和框架无关,框架最多提供工具类辅助管理,而不是绝对控制。&lt;/p>
 &lt;h2 id="可配置一定可编程并保持友好的-coc-约定">可配置一定可编程,并保持友好的 CoC 约定&lt;/h2>
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
index 390b17f0c58..a20606ef5fb 100644
--- a/zh-cn/sitemap.xml
+++ b/zh-cn/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://cn.dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-11-28T15:14:12+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://cn.dubbo.apache.org/zh-cn/overview/mannu
 [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://cn.dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-11-28T15:14:12+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://cn.dubbo.apache.org/zh-cn/overview/mannu
 [...]
\ No newline at end of file

Reply via email to