Skip to content

Commit 34c3dae

Browse files
committed
1 parent 56beac1 commit 34c3dae

File tree

15 files changed

+146
-94
lines changed

15 files changed

+146
-94
lines changed

.vuepress/components/GlobalTOC.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
} else {
3535
res = resolvePage(this.$site.pages, item, this.$route.path).title
3636
}
37-
return res.replace(' ', '')
37+
return res.replace('✔️ ', '')
3838
},
3939
getWords: function (item) {
4040
if (item.children) {
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<script>
2+
export default {
3+
name: 'github-button',
4+
props: ['href', 'ariaLabel', 'title', 'dataIcon', 'dataColorScheme', 'dataSize', 'dataShowCount', 'dataText'],
5+
render: function (h) {
6+
return h('span', [
7+
h('a', {
8+
attrs: {
9+
'href': this.href,
10+
'aria-label': this.ariaLabel,
11+
'title': this.title,
12+
'data-icon': this.dataIcon,
13+
'data-color-scheme': this.dataColorScheme,
14+
'data-size': this.dataSize,
15+
'data-show-count': this.dataShowCount,
16+
'data-text': this.dataText
17+
},
18+
ref: '_'
19+
}, this.$slots.default)
20+
])
21+
},
22+
mounted: function () {
23+
this.paint()
24+
},
25+
beforeUpdate: function () {
26+
this.reset()
27+
},
28+
updated: function () {
29+
this.paint()
30+
},
31+
beforeDestroy: function () {
32+
this.reset()
33+
},
34+
methods: {
35+
paint: function () {
36+
const _ = this.$el.appendChild(document.createElement('span'))
37+
const _this = this
38+
import(/* webpackMode: "eager" */ 'github-buttons').then(function (module) {
39+
module.render(_.appendChild(_this.$refs._), function (el) {
40+
try {
41+
_.parentNode.replaceChild(el, _)
42+
} catch (_) {
43+
}
44+
})
45+
})
46+
},
47+
reset: function () {
48+
this.$el.replaceChild(this.$refs._, this.$el.lastChild)
49+
}
50+
}
51+
}
52+
</script>

.vuepress/config.js

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ module.exports = {
121121
collapsable: false,
122122
children: [
123123
{
124-
title: ' 如何开始',
124+
title: '✔️ 如何开始',
125125
path: '/deployment/development-env-setup/',
126126
collapsable: false,
127127
children: [
@@ -132,11 +132,11 @@ module.exports = {
132132
'/deployment/development-env-setup/serverless_arch_knative'
133133
]
134134
}, {
135-
title: ' 环境依赖',
135+
title: '✔️ 环境依赖',
136136
path: '/deployment/deployment-env-setup/',
137137
collapsable: false,
138138
children: ['/deployment/deployment-env-setup/setup-docker', {
139-
title: ' 部署Kubernetes集群',
139+
title: '✔️ 部署Kubernetes集群',
140140
path: '/deployment/deployment-env-setup/setup-kubernetes',
141141
children: [
142142
'/deployment/deployment-env-setup/setup-kubernetes/setup-kubeadm',
@@ -157,17 +157,24 @@ module.exports = {
157157
collapsable: false,
158158
children: [
159159
{
160-
title: ' 架构的普适问题',
160+
title: '✔️ 架构的普适问题',
161161
collapsable: false,
162162
path: '/architect-perspective/general-architecture',
163163
children: [
164164
'/architect-perspective/general-architecture/api-style.md',
165165
'/architect-perspective/general-architecture/system-security',
166166
'/architect-perspective/general-architecture/transaction',
167167
'/architect-perspective/general-architecture/diversion-system',
168-
'/architect-perspective/general-architecture/layered-system',
169-
'/architect-perspective/general-architecture/constraint',
170-
'/architect-perspective/general-architecture/testability'
168+
'/architect-perspective/general-architecture/concurrent-access'
169+
]
170+
}, {
171+
title: '方法论',
172+
collapsable: false,
173+
children: [
174+
'/architect-perspective/methodology/layered-system',
175+
'/architect-perspective/methodology/capacity-design',
176+
'/architect-perspective/methodology/constraint',
177+
'/architect-perspective/methodology/testability'
171178
]
172179
}, {
173180
title: '技巧与专题',

.vuepress/theme/components/PageNav.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,25 @@
44
<span v-if="prev" class="prev">
55
66
<a v-if="prev.type === 'external'" class="prev" :href="prev.path" target="_blank" rel="noopener noreferrer">
7-
{{ prev.title.replace("",'') || prev.path }}
7+
{{ prev.title.replace("✔️",'') || prev.path }}
88

99
<OutboundLink/>
1010
</a>
1111

1212
<RouterLink v-else class="prev" :to="prev.path">
13-
{{ prev.title.replace("",'') || prev.path }}
13+
{{ prev.title.replace("✔️",'') || prev.path }}
1414
</RouterLink>
1515
</span>
1616

1717
<span v-if="next" class="next">
1818
<a v-if="next.type === 'external'" :href="next.path" target="_blank" rel="noopener noreferrer">
19-
{{ next.title.replace("",'') || next.path }}
19+
{{ next.title.replace("✔️",'') || next.path }}
2020

2121
<OutboundLink/>
2222
</a>
2323

2424
<RouterLink v-else :to="next.path">
25-
{{ next.title.replace("",'') || next.path }}
25+
{{ next.title.replace("✔️",'') || next.path }}
2626
</RouterLink>
2727
2828
</span>

.vuepress/theme/components/SidebarLink.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
: selfActive
3131
let prefix = ''
3232
if (item.readingTime && item.readingTime.words > 50) {
33-
prefix = ' '
33+
prefix = '✔️ '
3434
}
3535
const link = item.type === 'external'
3636
? renderExternal(h, item.path, item.title || item.path)

README.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,16 @@ pageClass: index-page-class
1010
</a>
1111
</p>
1212

13-
:::center
14-
# 软件架构探索
15-
## The Fenix Project
16-
:::
13+
<span style="text-align: center;padding: 0 0 20px 0;display: block;">
14+
<h1 style="font-size: 2.6rem;margin: 10px 0 10px 0;font-family: cursive;">软件架构探索</h1>
15+
<span style="font-size: 20px;font-weight: 400;font-family: Helvetica;">The Fenix Project</span>
16+
</span>
1717

1818
<p align="center" class="print-break">
19+
<github-button href="https://github.com/fenixsoft/awesome-fenix/subscription" data-icon="octicon-eye" data-show-count="true" aria-label="Watch fenixsoft/awesome-fenix on GitHub">Watch</github-button>
20+
<github-button href="https://github.com/fenixsoft/awesome-fenix" data-icon="octicon-star" data-show-count="true" aria-label="Star fenixsoft/awesome-fenix on GitHub">Star</github-button>
21+
<github-button href="https://github.com/fenixsoft" data-show-count="true" aria-label="Follow @fenixsoft on GitHub">Follow</github-button>
22+
<br />
1923
<a href="https://icyfenix.cn" style="display:inline-block"><img src="https://icyfenix.cn/images/Release-v1.svg"></a>
2024
<a href="https://travis-ci.com/fenixsoft/awesome-fenix" target="_blank" style="display:inline-block"><img src="https://api.travis-ci.com/fenixsoft/awesome-fenix.svg?branch=master" alt="Travis-CI"></a>
2125
<a href="https://www.apache.org/licenses/LICENSE-2.0" target="_blank" style="display:inline-block"><img src="https://icyfenix.cn/images/License-Apache.svg" alt="License"></a>
@@ -25,6 +29,7 @@ pageClass: index-page-class
2529
</p>
2630

2731

32+
2833
## 这是什么?
2934

3035
简单地说,这是针对软件开发中不同架构、技术方案(如单体架构、微服务、服务网格、无服务架构、云原生等等)的演示程序。包含可以作为实际项目开发参考的样例代码([PetStore-Like-Project](https://www.oracle.com/technetwork/cn/java/javaee/overview/index-136650.html)),以及作者对这些架构的使用方法、思想、优劣等的个人理解。
@@ -34,16 +39,16 @@ pageClass: index-page-class
3439

3540
## 如何使用?
3641

37-
项目中主要包括了程序与知识两部分,在<a href="https://icyfenix.cn/deployment/development-env-setup/">如何开始</a>这篇文章里面介绍了每一章讨论的主题和面向的读者对象。
42+
项目中主要包括了程序与知识两部分,在<a href="https://icyfenix.cn/deployment/development-env-setup/">如何开始</a>这篇文章里面介绍了每一章讨论的主题和面向的读者对象。
3843

39-
- 关于"知识"部分,以OpenDocument的形式发行,可以直接通过浏览器访问此<a href="https://icyfenix.cn">链接</a>以获得最新的内容。目前项目刚刚开始,暂时将已完成的内容在目录中标记为“”,以示区分,后期完成后会统一移除。
44+
- 关于"知识"部分,以OpenDocument的形式发行,可以直接通过浏览器访问此<a href="https://icyfenix.cn">链接</a>以获得最新的内容。目前项目刚刚开始,暂时将已完成的内容在目录中标记为“✔️”,以示区分,后期完成后会统一移除。
4045

4146
- 关于“程序”部分,其中包括前、后端工程与运行示例三部分内容。后端工程是其中重点,它已包含了前端工程编译后的输出结果,如果你并不关心前端(一个典型的Vue.js 2.0工程)的实现,直接选择你希望了解的架构模式相关的后端运行即可。如果你对开发、运行构建运行环境有所疑问,在<a href="https://icyfenix.cn/deployment/deployment-env-setup/">"如何建立部署环境"</a>部分已包括了详细的操作步骤,应能够解决环境依赖的问题。另外,这些工程也通过Travis CI提供的持续集成服务输出到Docker镜像库,如果你只想了解运维方面的知识,可以直接运行镜像而无需关心代码部分。
4247
- 前端工程:
43-
- Vue.js 2实现前端工程:[https://github.com/fenixsoft/fenix-bookstore-frontend](https://github.com/fenixsoft/fenix-bookstore-frontend)
44-
- Mock.js支持的纯前端演示:[https://bookstore.icyfenix.cn](https://bookstore.icyfenix.cn)(由GitHub Pages与腾讯云CDN提供访问)
48+
- ✔️ Vue.js 2实现前端工程:[https://github.com/fenixsoft/fenix-bookstore-frontend](https://github.com/fenixsoft/fenix-bookstore-frontend)
49+
- ✔️ Mock.js支持的纯前端演示:[https://bookstore.icyfenix.cn](https://bookstore.icyfenix.cn)(由GitHub Pages与腾讯云CDN提供访问)
4550
- 后端工程:
46-
- SpringBoot实现单体架构:[https://github.com/fenixsoft/monolithic_arch_springboot](https://github.com/fenixsoft/monolithic_arch_springboot)
51+
- ✔️ SpringBoot实现单体架构:[https://github.com/fenixsoft/monolithic_arch_springboot](https://github.com/fenixsoft/monolithic_arch_springboot)
4752
- SpringCloud实现微服务架构:https://github.com/fenixsoft/microservice_arch_springcloud
4853
- 以Kubernetes为基础设施的微服务架构:https://github.com/fenixsoft/microservice_arch_kubernetes
4954
- Knative实现的无服务架构:https://github.com/fenixsoft/serverless_arch_knative
@@ -73,4 +78,4 @@ pageClass: index-page-class
7378
## 备案
7479

7580
网站备案信息:[粤ICP备18088957号-1](http://beian.miit.gov.cn/)
76-
:::
81+
:::
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# 高并发架构
2+
3+
多线程并发
4+
5+
操作系统的线程支持
6+
进程
7+
线程
8+
协程
9+
10+
线程安全
11+
12+
13+
Java中的锁和同步类
14+
公平锁 & 非公平锁
15+
悲观锁
16+
乐观锁 & CAS
17+
ABA 问题
18+
CopyOnWrite容器
19+
RingBuffer
20+
可重入锁 & 不可重入锁
21+
互斥锁 & 共享锁
22+
23+
共享
24+
25+
零拷贝
26+
27+
多重映射
28+
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# 容量设计
2+
File renamed without changes.

architect-perspective/general-architecture/layered-system.md renamed to architect-perspective/methodology/layered-system.md

File renamed without changes.

0 commit comments

Comments
 (0)