Skip to content

Commit 66d700c

Browse files
author
wu-kan
committed
博文若干
1 parent f6bbfc3 commit 66d700c

7 files changed

+215
-47
lines changed

_config.yml

Lines changed: 33 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,7 @@ jekyll-theme-WuK: # 我的主题的自定义样式都在这个命名空间
399399
<div>
400400
<i class="fas fa-info-circle fa-fw"></i>
401401
<a href="http://beian.miit.gov.cn">
402-
粤 ICP 备 20024947 号
402+
粤ICP备20024947号
403403
</a>
404404
</div>
405405
wordcount: # 全站字数统计
@@ -411,12 +411,11 @@ jekyll-theme-WuK: # 我的主题的自定义样式都在这个命名空间
411411
masthead: # 显示顶栏
412412
enable: true
413413
append_before:
414-
- | # 代码块背景透明(否则mermaid受影响),且代码块超过半屏的时候自动折叠
414+
- | # 代码块超过半屏的时候自动折叠
415415
<style>
416416
pre {
417417
max-height: 50vh;
418418
overflow: auto;
419-
background-color: rgba(0, 0, 0, 0);
420419
}
421420
</style>
422421
- | # 增加宽屏下的显示内容
@@ -445,26 +444,6 @@ jekyll-theme-WuK: # 我的主题的自定义样式都在这个命名空间
445444
100% {}
446445
}
447446
</style>
448-
- | # 使文章支持Katex数学公式渲染,行内公式用$...$括起来,行间公式用$$..$$括起来
449-
<link
450-
rel="stylesheet"
451-
href="https://cdn.jsdelivr.net/npm/katex/dist/katex.min.css"
452-
/>
453-
<script
454-
src="https://cdn.jsdelivr.net/combine/npm/katex/dist/katex.min.js,npm/katex/dist/contrib/mathtex-script-type.min.js,npm/katex/dist/contrib/auto-render.min.js"
455-
defer="defer"
456-
onload='renderMathInElement(document.body, { delimiters: [{ left: "$", right: "$", display: false }] })'
457-
></script>
458-
- | # mermaid
459-
<link
460-
rel="stylesheet"
461-
href="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.css"
462-
/>
463-
<script
464-
src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"
465-
defer="defer"
466-
onload='mermaid.init({}, ".language-mermaid");'
467-
></script>
468447
- | # prism代码高亮
469448
<link
470449
rel="stylesheet"
@@ -498,6 +477,36 @@ jekyll-theme-WuK: # 我的主题的自定义样式都在这个命名空间
498477
return button;
499478
})'
500479
></script>
480+
- | # 使文章支持Katex数学公式渲染,行内公式用$...$括起来,行间公式用$$..$$括起来
481+
<link
482+
rel="stylesheet"
483+
href="https://cdn.jsdelivr.net/npm/katex/dist/katex.min.css"
484+
/>
485+
<script
486+
src="https://cdn.jsdelivr.net/combine/npm/katex/dist/katex.min.js,npm/katex/dist/contrib/mathtex-script-type.min.js,npm/katex/dist/contrib/auto-render.min.js"
487+
defer="defer"
488+
onload='renderMathInElement(document.body, { delimiters: [{ left: "$", right: "$", display: false }] })'
489+
></script>
490+
- | # mermaid
491+
<style>
492+
pre.language-mermaid,
493+
code.language-mermaid {
494+
display: none;
495+
}
496+
</style>
497+
<script
498+
src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"
499+
defer="defer"
500+
onload='
501+
for(let x=document.getElementsByClassName("language-mermaid"), i=0;i<x.length;i++)
502+
if(x[i].nodeName=="CODE")
503+
{
504+
let m = document.createElement("div");
505+
m.classList.add("mermaid");
506+
m.textContent = x[i].textContent;
507+
x[i].parentNode.insertAdjacentElement("beforebegin", m);
508+
}'
509+
></script>
501510
comments: # 留言页
502511
alert:
503512
| # 配置评论区,appId和appKey需要换成你自己的,见<https://valine.js.org/configuration.html>,推荐再整一个评论管理系统<https://github.com/DesertsP/Valine-Admin>
@@ -661,7 +670,7 @@ plugins: # <https://jekyllrb.com/docs/plugins/>
661670
- jekyll-feed # 为站点生成RSS源
662671
- jekyll-remote-theme # 使用remote_theme插件实现主题的前后分离,详见<https://github.com/benbalter/jekyll-remote-theme/>
663672

664-
remote_theme: https://github.com/wu-kan/[email protected].4 #使用固定版本号以防止主题更新导致站点显示错乱
673+
remote_theme: https://github.com/wu-kan/[email protected].5 #使用固定版本号以防止主题更新导致站点显示错乱
665674

666675
readme_index: # 缺失index.md和index.html时,使用README.md代替之
667676
with_frontmatter: true # 支持带有yaml头的README

_posts/2019-01-18-基于Jekyll搭建个人博客.md

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ bundle exec jekyll s
108108
/>
109109
<script
110110
defer="defer"
111-
src="https://cdn.jsdelivr.net/gh/Dreamer-Paul/[email protected]/static/l2d.min.sjs"
111+
src="https://cdn.jsdelivr.net/gh/Dreamer-Paul/[email protected]/static/l2d.min.js"
112112
></script>
113113
<script
114114
defer="defer"
@@ -219,7 +219,9 @@ $$
219219

220220
可以在[这个页面](https://katex.org/docs/libs.html)查看一些别的插件,比如化学方程式的插件等等,都是可以引入的。
221221

222-
#### mermaid 流程图
222+
#### mermaid 图
223+
224+
我希望自己能按照 markdown 代码块扩展的规则来写 mermaid 流程图:
223225

224226
````markdown
225227
```mermaid
@@ -235,7 +237,7 @@ Bob-->>John: Jolly good!
235237
```
236238
````
237239

238-
效果如下
240+
其效果如下
239241

240242
```mermaid
241243
sequenceDiagram
@@ -249,22 +251,27 @@ John->>Bob: How about you?
249251
Bob-->>John: Jolly good!
250252
```
251253

252-
需要插入如下内容(这里需要修改对应的`Class`,防止被代码高亮渲染):
254+
因此需要插入如下内容(将代码块隐藏,并在原位置插入 mermaid 图):
253255

254256
```html
255-
<link
256-
rel="stylesheet"
257-
href="//cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.css"
258-
/>
257+
<style>
258+
pre.language-mermaid,
259+
code.language-mermaid {
260+
display: none;
261+
}
262+
</style>
259263
<script
260-
src="//cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"
264+
src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"
261265
defer="defer"
262266
onload='
263267
for(let x=document.getElementsByClassName("language-mermaid"), i=0;i<x.length;i++)
264-
{
265-
x[i].classList.add("mermaid");
266-
x[i].classList.remove("language-mermaid");
267-
}'
268+
if(x[i].nodeName=="CODE")
269+
{
270+
let m = document.createElement("div");
271+
m.classList.add("mermaid");
272+
m.textContent = x[i].textContent;
273+
x[i].parentNode.insertAdjacentElement("beforebegin", m);
274+
}'
268275
></script>
269276
```
270277

@@ -274,8 +281,6 @@ Bob-->>John: Jolly good!
274281

275282
这里我引入了三个插件(代码行号、动态代码高亮、工具栏,且自己写了一个选中全部代码的按钮)作为例子,也可以像我一样自己定制。
276283

277-
注意 prism 和 mermaid 共存的时候要先加载 mermaid 再加载 prism。
278-
279284
```html
280285
<link
281286
rel="stylesheet"
@@ -341,20 +346,16 @@ Bob-->>John: Jolly good!
341346
<i class="fas fa-spinner fa-pulse"></i>
342347
</div>
343348
<script
344-
src="//cdn.jsdelivr.net/npm/valine"
349+
src="https://cdn.jsdelivr.net/npm/valine/dist/Valine.min.js"
345350
defer="defer"
346351
onload='
347352
new Valine({
348-
"el": ".v",
353+
"el": document.getElementsByClassName("v")[0],
349354
"appId": "9hABRddSuEkTgqLrt1VSK5B1-gzGzoHsz",
350355
"appKey": "NJ7RwmgrxsF7KDzlqU7YewlL",
351-
"notify": "true",
352-
"verify": "true",
353-
"avatar": "identicon",
354-
"placeholder": "在这里评论吧!",
356+
"placeholder": "在这里评论吧!填写邮箱可以获得 Gravatar 头像和回复通知哦",
357+
"requiredFields": ["nick","mail"],
355358
"visitor": true,
356-
"highlight": true,
357-
"avatarForce": false,
358359
"recordIP": true
359360
})'
360361
></script>
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
---
2+
title: 软件工程理论与实践(一)
3+
tags: 软件工程理论与实践
4+
---
5+
6+
## 什么是软件危机,结合软件危机的现象进行阐述
7+
8+
软件危机是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。概括地说,主要包含两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
9+
10+
软件危机的主要表现:
11+
12+
1. 对软件开发成本和进度的估计常常很不准确。
13+
实际成本比估计成本有可能高出一个数量级,实际进度比预期进度拖延几个月甚至几年的现象并不罕见。这种现象降低了开发组织的信誉。为赶进度和节约成本所采取的权宜之计往往又损害了软件产品的质量,从而不可避免地引起用户的不满。
14+
2. 用户对“已完成的”软件系统不满意的现象经常发生。
15+
软件开发人员常常在对用户需求只有模糊的了解,甚至对所要解决的问题还没有确切认识的情况下,就仓促上阵匆忙着手编写程序。软件开发人员和用户之间的交流往往很不充分,“闭门造车”必然导致最终产品不符合用户实际需要。
16+
3. 软件产品的质量常常靠不住。
17+
软件可靠性和质量保证的确切定量概念刚刚出现,软件质量保证技术(审查、复审和测试)还没有坚持不懈地应用到软件开发的全过程中,这些都会导致软件产品发生质量问题。
18+
4. 软件常常是不可维护的。
19+
程序中的错误很难改正,实际上不可能使这些程序适应新的硬件环境,也不能根据用户的需求在原有程序中增加新的功能。
20+
5. 软件通常没有适当的文档资料。
21+
软件不仅是程序,还应该有一整套文档资料。这些文档资料是在软件开发过程中产生出来的,而且应该是“最新的”(与代码完全一致)。缺乏文档必然给软件的开发和维护带来许多严重的困难和问题。
22+
6. 软件成本在计算机系统总成本中所占比例逐年上升。
23+
随着微电子技术的进步和生产自动化程度的提高,硬件成本逐年下降,然而软件开发需要大量的人力,软件成本随着通货膨胀以及软件规模和数量的不断扩大而逐年上升。美国在 1995 年的调查表明,软件成本大约已占计算机系统总成本的 90%。
24+
软件危机的出现,使得人们去寻找产生危机的内在原因,发现其原因可归纳为两方面,一方面是由软件生产本身存在着复杂性,另一方面却是与软件开发所使用的方法和技术有关。
25+
软件工程正是为克服软件危机而提出的一种概念,并在实践中不断地探索它的原理,技术和方法。在此过程中,人们研究和借鉴了工程学的某些原理和方法,并形成了一门新的学科—软件工程学,但可惜的是时至今日人们并没有完全克服软件危机。
26+
7. 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势
27+
28+
## 简述并分析软件危机产生的原因
29+
30+
- 与软件本身特点相关
31+
1. 软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。在写出程序代码并在计算机上试运行之前,软件开发过程的进展情况较难衡量。很难检验开发的正确性且软件开发的质量也较难评价。因此,控制软件开发过程相当困难。
32+
2. 此外,在软件运行过程中发现错误,很可能是遇到了一个在开发期间引入的、但在测试阶段没有能够检测出来的错误,所以软件维护常常意味着修改原来的设计。这样,维护的费用十分惊人,客观上使得软件较难维护。
33+
3. 软件规模庞大,而且程序复杂性将随着程序规模的增加而成指数上升。
34+
4. 对用户要求没有完整准确的认识就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。
35+
5. 软件开发的过程是多人分工合作,分阶段完成的过程,参与人员之间的沟通和配合十分重要。但是,相当多的软件开发人员对软件的开发和维护存在不少错误的观念,在实践的过程中没有采用工程化的方法,或多或少采用了一些错误的方法和技术,这是造成软件危机的主要原因。
36+
6. 错误的认识和做法主要表现为忽视软件需求分析的重要性,认为软件开发就是写程序并设法使之运行,轻视软件维护等。
37+
- 软件开发与维护的方法不正确有关
38+
1. 只重视程序而忽视软件配置其余成分的糊涂观念。
39+
2. 在定义时期没有正确全面地理解用户需求,直到测试阶段或软件交付使用后才发现“已完成的”软件完全不符合用户需要。
40+
3. 严重的问题是在软件开发的不同阶段进行修改需要付出的代价是很不相同的
41+
42+
## 何为软件工程,并稍深入讨论你对此概念的理解
43+
44+
> 软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。
45+
> ——1968 年在第一届 NATO 会议上曾经给出了软件工程的一个早期定义
46+
>
47+
> 软件工程是:① 把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;② 研究 ① 中提到的途径。
48+
> ——1993 年 IEEE 进一步给出了一个更全面更具体的定义
49+
50+
软件工程是运用工程的、数学的、计算机等科学概念、方法和原理来指导软件开发和管理和维护的一门学科。
51+
52+
## 谈谈你对本课程的内容(讲什么)、目标(课程要求)的理解
53+
54+
> 该课程讲授如何系统化、工程化、可量化的分析、设计、实现软件系统,旨在运用工程、数学、计算机等科学概念、方法和原理指导软件的实现和管理过程。课程以工程化模式(项目)驱动,每个学生都实质性的参与软件项目的分析、设计、编码、测试和维护。以提升学生的分析与设计能力、工程素养、团队协作精神、以及编程能力目标,此课程为后续的《系统分析与设计》、《本科毕业论文》重要的前序课程,此外,其将为成为一名合格的软件工程师奠定扎实的理论、技术及 IT 工程项目基础。
55+
> ——教务系统上的课程内容简介
56+
57+
我的理解是,软件工程这门课将会以理论和实践相结合的方式,引导我们**科学地**实现软件开发的流程,课程要求我们能够了解并熟练运用课程中学到的知识到实际的软件开发中,成为一名合格的软件工程师。
58+
59+
## 何为 UML
60+
61+
> The UML is the standard language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system.
62+
63+
UML 是面向对象软件工程使用的统一建模语言,是一种图形化的语言,主要以图形方式表示。是一种开放的标准。
64+
65+
## 结合一个例子分析建模生物四项基本原则
66+
67+
假设要建立一个企业职工信息管理系统。
68+
69+
1. 选择合适的模型:在需求分析时使用用例图可以更加快速地表达出要求
70+
2. 模型的精度对不同的对象是不一样:程序员使用的模型比对客户展示的模型更加复杂
71+
3. 模型与现实相一致:建立的模型需要完全贴合要求
72+
4. 同时建立多个模型:在需求分析、数据库建立中都会有不同的模型
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
title: 软件工程理论与实践(二)
3+
tags: 软件工程理论与实践
4+
---
5+
6+
## 请解释何为制品
7+
8+
制品是在软件分析、设计、实现等过程中产生的所有文本、代码。
9+
10+
## 请阐述你知道的面向对象方法论 3-5 个
11+
12+
1. 面向对象的分析(OA)
13+
2. 面向对象的设计(OD)
14+
3. 面向对象的编程
15+
4. 面向对象的测试
16+
5. 面向对象的维护。
17+
18+
## 基于面向对象的软件需求分析的步骤和制品是什么
19+
20+
1. 问题陈述,制品为:一段描述项目主要角色、主要功能、交互的其它系统、主要的非功能需求的文档
21+
2. 用例析取,制品为:用例图
22+
3. 用例归约,制品为:对本系统的用例进行详细描述的文档
23+
4. 补充归约,制品为:描述整个系统全局性的非功能需求的文档
24+
5. 术语表,制品为:定义项目文档中出现的读者可能不熟悉的术语的文档
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
title: 编译原理(一)
3+
tags: 编译原理
4+
---
5+
6+
## 下列正则表达式定义了什么语言(用尽可能简短的自然语言描述)
7+
8+
### `b*(ab*ab*)*`
9+
10+
由 a 和 b 构成的字符串,a 出现了偶数次。
11+
12+
### `c*a(a|c)*b(a|b|c)*|c*b(b|c)*a(a|b|c)*`
13+
14+
由 a、b 和 c 构成的字符串,a 和 b 都至少出现一次。
15+
16+
## 设字母表 $\sum=\{a,b\}$,用正则表达式(只使用 $a$,$b$,$\epsilon$,$\vert$,\*,$+$,$?$)描述下列语言
17+
18+
注意:关于子串(substring)和子序列(subsequence)的区别可以参考课本第 119 页方框中的内容。
19+
20+
### 不包含子串 ab 的所有字符串
21+
22+
`b*a*`
23+
24+
### 不包含子串 abb 的所有字符串
25+
26+
`b*(ab?)*`
27+
28+
### 不包含子序列 abb 的所有字符串
29+
30+
`b*a*b?a*`
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
title: 软件工程理论与实践(三)
3+
tags: 软件工程理论与实践
4+
---
5+
6+
## UML 中活动图是在用在生命周期中的哪个阶段的、用来做什么的、有几个图形符号(画出来)、它们表示什么含义
7+
8+
活动图在用例规约阶段,用来写用例的流程(主流程、备选流程),有六个符号:
9+
10+
1. 实心圆圈:表示开始节点与结束节点
11+
2. 圆边矩形:表示 state
12+
3. 圆角矩形:表示 state
13+
4. 实心条:表示同步
14+
5. 缺角矩形:表示注释
15+
6. 菱形:表示判断
16+
17+
## 根据你自己的理解,UML 对于软件项目的成功有什么价值?(写出 3-5 条)
18+
19+
1. 把抽象的项目需求转换为直白的模型
20+
2. 可以清楚地把项目表现给客户
21+
3. 便于后期维护
22+
23+
## 画完用例图,你要进行复审,一般你检查哪些内容?(写出 3-5 条)
24+
25+
1. 所有用例是否出现
26+
2. 关系的对应关系是否正确
27+
3. 是否表达清晰
28+
29+
## Actor 表示角色,其是“外部环境”,怎样理解
30+
31+
Actor 是指系统外的,在使用系统或与系统交互中所扮演的角色,所以不是系统内部的,算是外部条件

comments.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ title: 留言
1111
- [水唐](https://yorkking.github.io):同学+基友,热爱数学(自称为“紧跟大佬的菜鸡挣扎者”
1212
- [Ender](https://ender-coder.github.io):可 ♂ 爱的学弟
1313
- [reeeeeeeeeein](https://reeeeeeeeeein.github.io/)[专 业 演 员](https://wu-kan.cn/_posts/2019-11-04-%E5%86%8D%E8%A7%81-%E7%AE%97%E6%B3%95%E7%AB%9E%E8%B5%9B/)
14+
- [datealive](https://datealive.top/)[喜欢星空的学弟](https://wu-kan.cn/_posts/2019-01-18-%E5%9F%BA%E4%BA%8EJekyll%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/#5ea53249b93ada00086d5e08)

0 commit comments

Comments
 (0)