From bd73af669a46c47e80899470c1f8bf5326731588 Mon Sep 17 00:00:00 2001 From: chufan Date: Wed, 20 Nov 2024 17:15:15 +0800 Subject: [PATCH 1/6] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0`=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E6=9E=B6=E6=9E=84=E8=AE=BE=E8=AE=A1=E5=B8=88`?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/architect/README.md | 1 + docs/architect/architect.sidebar.ts | 38 +++++++++++++++++++ ...66\346\236\204\350\256\276\350\256\241.md" | 0 ...00\345\217\221\345\237\272\347\241\200.md" | 0 ...56\345\272\223\347\263\273\347\273\237.md" | 1 + ...24\347\224\250\345\274\200\345\217\221.md" | 0 ...76\350\256\241\346\250\241\345\274\217.md" | 7 ++++ .../README.md" | 5 +++ .../README.md" | 5 +++ .../1-\350\200\203\347\202\271.md" | 0 .../2-\346\250\241\346\235\277.md" | 0 .../3-\350\256\272\347\202\271.md" | 0 .../README.md" | 5 +++ 13 files changed, 62 insertions(+) create mode 100644 docs/architect/README.md create mode 100644 docs/architect/architect.sidebar.ts create mode 100644 "docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" create mode 100644 "docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" create mode 100644 "docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" create mode 100644 "docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" create mode 100644 "docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" create mode 100644 "docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" create mode 100644 "docs/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" create mode 100644 "docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/1-\350\200\203\347\202\271.md" create mode 100644 "docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/2-\346\250\241\346\235\277.md" create mode 100644 "docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/3-\350\256\272\347\202\271.md" create mode 100644 "docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" diff --git a/docs/architect/README.md b/docs/architect/README.md new file mode 100644 index 000000000..22b5f4a48 --- /dev/null +++ b/docs/architect/README.md @@ -0,0 +1 @@ +# 系统架构设计师 diff --git a/docs/architect/architect.sidebar.ts b/docs/architect/architect.sidebar.ts new file mode 100644 index 000000000..e75e4d2e8 --- /dev/null +++ b/docs/architect/architect.sidebar.ts @@ -0,0 +1,38 @@ +export const architectSidebar = [ + { + text: '综合知识', + collapsible: true, + link: '/architect/综合知识/', + }, + { + text: '案例分析', + base: '/architect/案例分析/', + collapsible: true, + children: [ + { text: '软件架构设计', link: '1-软件架构设计.md' }, + { text: '系统开发基础', link: '2-系统开发基础.md' }, + { text: '数据库系统', link: '3-数据库系统.md' }, + { text: 'Web应用开发', link: '4-Web应用开发.md' }, + { text: '设计模式', link: '5-设计模式.md' }, + ], + }, + { + text: '论文写作', + collapsible: true, + link: '/architect/论文写作/', + }, + { + text: '在线刷题', + collapsible: true, + children: [ + { + text: '报名', + link: 'https://www.nowcoder.com/', + }, + { + text: '查分', + link: 'https://leetcode-cn.com/', + }, + ], + }, +] diff --git "a/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" "b/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" new file mode 100644 index 000000000..e69de29bb diff --git "a/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" "b/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" new file mode 100644 index 000000000..e69de29bb diff --git "a/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" "b/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" new file mode 100644 index 000000000..56a6663c2 --- /dev/null +++ "b/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" @@ -0,0 +1 @@ +# 数据库系统 diff --git "a/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" "b/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" new file mode 100644 index 000000000..e69de29bb diff --git "a/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" "b/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" new file mode 100644 index 000000000..dbad9c4e7 --- /dev/null +++ "b/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" @@ -0,0 +1,7 @@ +# 设计模式 + +## 创建型 + +## 结构型 + +## 行为型 diff --git "a/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" "b/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" new file mode 100644 index 000000000..a8c071355 --- /dev/null +++ "b/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" @@ -0,0 +1,5 @@ +--- +title: 案例分析 +permalink: /architect/case-analyse/ +--- +# 案例分析 diff --git "a/docs/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" "b/docs/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" new file mode 100644 index 000000000..27c96ab1b --- /dev/null +++ "b/docs/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" @@ -0,0 +1,5 @@ +--- +title: 综合知识 +permalink: /architect/comprehensive/ +--- +# 综合知识 diff --git "a/docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/1-\350\200\203\347\202\271.md" "b/docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/1-\350\200\203\347\202\271.md" new file mode 100644 index 000000000..e69de29bb diff --git "a/docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/2-\346\250\241\346\235\277.md" "b/docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/2-\346\250\241\346\235\277.md" new file mode 100644 index 000000000..e69de29bb diff --git "a/docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/3-\350\256\272\347\202\271.md" "b/docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/3-\350\256\272\347\202\271.md" new file mode 100644 index 000000000..e69de29bb diff --git "a/docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" "b/docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" new file mode 100644 index 000000000..b7f9d5f16 --- /dev/null +++ "b/docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" @@ -0,0 +1,5 @@ +--- +title: 论文写作 +permalink: /architect/essay-writing/ +--- +# 论文写作 From 5f6479b271219ebe74348b902bbee759f080007d Mon Sep 17 00:00:00 2001 From: chufan Date: Thu, 21 Aug 2025 17:42:32 +0800 Subject: [PATCH 2/6] chore: update --- docs/architect/README.md | 1 - ...66\346\236\204\350\256\276\350\256\241.md" | 0 ...00\345\217\221\345\237\272\347\241\200.md" | 0 ...56\345\272\223\347\263\273\347\273\237.md" | 1 - ...24\347\224\250\345\274\200\345\217\221.md" | 0 ...76\350\256\241\346\250\241\345\274\217.md" | 7 ---- .../README.md" | 5 --- .../README.md" | 5 --- .../README.md" | 5 --- docs/copyright/README.md | 1 + docs/read-books/README.md | 2 +- docs/read-books/cs-books/README.md | 1 + docs/read-books/not-cs-book/README.md | 1 + docs/ruankao/README.md | 15 +++++++++ docs/ruankao/architect/README.md | 8 +++++ .../architect/architect.sidebar.ts | 24 ++++---------- ...66\346\236\204\350\256\276\350\256\241.md" | 5 +++ ...00\345\217\221\345\237\272\347\241\200.md" | 5 +++ ...56\345\272\223\347\263\273\347\273\237.md" | 5 +++ ...24\347\224\250\345\274\200\345\217\221.md" | 5 +++ ...76\350\256\241\346\250\241\345\274\217.md" | 11 +++++++ .../README.md" | 5 +++ .../README.md" | 5 +++ .../1-\350\200\203\347\202\271.md" | 0 .../2-\346\250\241\346\235\277.md" | 0 .../3-\350\256\272\347\202\271.md" | 0 .../README.md" | 5 +++ docs/ruankao/soft-design/README.md | 1 + .../soft-design/soft-design.sidebar.ts | 10 ++++++ .../README.md" | 5 +++ .../README.md" | 5 +++ docs/solo-algorithm/solo-algorithm.sidebar.ts | 33 ++++++------------- docs/theme.config.ts | 28 +++++++++++++++- ...70\347\224\250\347\275\221\347\253\231.md" | 26 +++++++-------- 34 files changed, 149 insertions(+), 81 deletions(-) delete mode 100644 docs/architect/README.md delete mode 100644 "docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" delete mode 100644 "docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" delete mode 100644 "docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" delete mode 100644 "docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" delete mode 100644 "docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" delete mode 100644 "docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" delete mode 100644 "docs/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" delete mode 100644 "docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" create mode 100644 docs/copyright/README.md create mode 100644 docs/read-books/cs-books/README.md create mode 100644 docs/read-books/not-cs-book/README.md create mode 100644 docs/ruankao/README.md create mode 100644 docs/ruankao/architect/README.md rename docs/{ => ruankao}/architect/architect.sidebar.ts (58%) create mode 100644 "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" create mode 100644 "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" create mode 100644 "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" create mode 100644 "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" create mode 100644 "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" create mode 100644 "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" create mode 100644 "docs/ruankao/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" rename "docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/1-\350\200\203\347\202\271.md" => "docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/1-\350\200\203\347\202\271.md" (100%) rename "docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/2-\346\250\241\346\235\277.md" => "docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/2-\346\250\241\346\235\277.md" (100%) rename "docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/3-\350\256\272\347\202\271.md" => "docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/3-\350\256\272\347\202\271.md" (100%) create mode 100644 "docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" create mode 100644 docs/ruankao/soft-design/README.md create mode 100644 docs/ruankao/soft-design/soft-design.sidebar.ts create mode 100644 "docs/ruankao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/README.md" create mode 100644 "docs/ruankao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/README.md" diff --git a/docs/architect/README.md b/docs/architect/README.md deleted file mode 100644 index 22b5f4a48..000000000 --- a/docs/architect/README.md +++ /dev/null @@ -1 +0,0 @@ -# 系统架构设计师 diff --git "a/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" "b/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" deleted file mode 100644 index e69de29bb..000000000 diff --git "a/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" "b/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" deleted file mode 100644 index e69de29bb..000000000 diff --git "a/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" "b/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" deleted file mode 100644 index 56a6663c2..000000000 --- "a/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" +++ /dev/null @@ -1 +0,0 @@ -# 数据库系统 diff --git "a/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" "b/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" deleted file mode 100644 index e69de29bb..000000000 diff --git "a/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" "b/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" deleted file mode 100644 index dbad9c4e7..000000000 --- "a/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" +++ /dev/null @@ -1,7 +0,0 @@ -# 设计模式 - -## 创建型 - -## 结构型 - -## 行为型 diff --git "a/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" "b/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" deleted file mode 100644 index a8c071355..000000000 --- "a/docs/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 案例分析 -permalink: /architect/case-analyse/ ---- -# 案例分析 diff --git "a/docs/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" "b/docs/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" deleted file mode 100644 index 27c96ab1b..000000000 --- "a/docs/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 综合知识 -permalink: /architect/comprehensive/ ---- -# 综合知识 diff --git "a/docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" "b/docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" deleted file mode 100644 index b7f9d5f16..000000000 --- "a/docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 论文写作 -permalink: /architect/essay-writing/ ---- -# 论文写作 diff --git a/docs/copyright/README.md b/docs/copyright/README.md new file mode 100644 index 000000000..32acee1d5 --- /dev/null +++ b/docs/copyright/README.md @@ -0,0 +1 @@ +# 软件著作权 diff --git a/docs/read-books/README.md b/docs/read-books/README.md index f96afe5e2..870ae46a2 100644 --- a/docs/read-books/README.md +++ b/docs/read-books/README.md @@ -1,5 +1,5 @@ --- -title: 读书整理 +title: 读书 --- # 读书整理 diff --git a/docs/read-books/cs-books/README.md b/docs/read-books/cs-books/README.md new file mode 100644 index 000000000..6bf33e374 --- /dev/null +++ b/docs/read-books/cs-books/README.md @@ -0,0 +1 @@ +# 技术类 diff --git a/docs/read-books/not-cs-book/README.md b/docs/read-books/not-cs-book/README.md new file mode 100644 index 000000000..adb6ead9e --- /dev/null +++ b/docs/read-books/not-cs-book/README.md @@ -0,0 +1 @@ +# 文学类 diff --git a/docs/ruankao/README.md b/docs/ruankao/README.md new file mode 100644 index 000000000..d38212ad9 --- /dev/null +++ b/docs/ruankao/README.md @@ -0,0 +1,15 @@ +# 考试 + +```mindmap +root(考试) + (软件设计师) + (系统架构设计师) + (软著) +``` + +## 软考 + +- 官网入口: +- 用户登录: +- 考试报名: +- 考试查分: diff --git a/docs/ruankao/architect/README.md b/docs/ruankao/architect/README.md new file mode 100644 index 000000000..d426a0a9b --- /dev/null +++ b/docs/ruankao/architect/README.md @@ -0,0 +1,8 @@ +# 系统架构设计师 + +```mindmap +root(系统架构设计师) + (综合知识) + (案例分析) + (论文写作) +``` diff --git a/docs/architect/architect.sidebar.ts b/docs/ruankao/architect/architect.sidebar.ts similarity index 58% rename from docs/architect/architect.sidebar.ts rename to docs/ruankao/architect/architect.sidebar.ts index e75e4d2e8..319afd70e 100644 --- a/docs/architect/architect.sidebar.ts +++ b/docs/ruankao/architect/architect.sidebar.ts @@ -1,13 +1,14 @@ export const architectSidebar = [ { text: '综合知识', + prefix: '综合知识', collapsible: true, - link: '/architect/综合知识/', + link: '/ruankao/architect/综合知识/', }, { text: '案例分析', - base: '/architect/案例分析/', - collapsible: true, + prefix: '案例分析', + collapsible: false, children: [ { text: '软件架构设计', link: '1-软件架构设计.md' }, { text: '系统开发基础', link: '2-系统开发基础.md' }, @@ -18,21 +19,8 @@ export const architectSidebar = [ }, { text: '论文写作', + prefix: '论文写作', collapsible: true, - link: '/architect/论文写作/', - }, - { - text: '在线刷题', - collapsible: true, - children: [ - { - text: '报名', - link: 'https://www.nowcoder.com/', - }, - { - text: '查分', - link: 'https://leetcode-cn.com/', - }, - ], + link: '/ruankao/architect/论文写作/', }, ] diff --git "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" "b/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" new file mode 100644 index 000000000..f7019955d --- /dev/null +++ "b/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" @@ -0,0 +1,5 @@ +--- +title: 软件架构设计 +permalink: /ruankao/architect/architect-design/ +--- +# 软件架构设计 diff --git "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" "b/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" new file mode 100644 index 000000000..da28d3343 --- /dev/null +++ "b/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" @@ -0,0 +1,5 @@ +--- +title: 系统开发基础 +permalink: /ruankao/architect/system-develop-base/ +--- +# 系统开发基础 diff --git "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" "b/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" new file mode 100644 index 000000000..92dfed760 --- /dev/null +++ "b/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" @@ -0,0 +1,5 @@ +--- +title: 数据库系统 +permalink: /ruankao/architect/db-system/ +--- +# 数据库系统 diff --git "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" "b/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" new file mode 100644 index 000000000..c4aba8f19 --- /dev/null +++ "b/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" @@ -0,0 +1,5 @@ +--- +title: Web应用开发 +permalink: /ruankao/architect/app-develop/ +--- +# Web应用开发 diff --git "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" "b/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" new file mode 100644 index 000000000..554be7945 --- /dev/null +++ "b/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" @@ -0,0 +1,11 @@ +--- +title: 设计模式 +permalink: /ruankao/architect/design-pattern/ +--- +# 设计模式 + +## 创建型 + +## 结构型 + +## 行为型 diff --git "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" "b/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" new file mode 100644 index 000000000..1d04ab384 --- /dev/null +++ "b/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" @@ -0,0 +1,5 @@ +--- +title: 案例分析 +permalink: /ruankao/architect/case-analyse/ +--- +# 案例分析 diff --git "a/docs/ruankao/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" "b/docs/ruankao/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" new file mode 100644 index 000000000..a811bd274 --- /dev/null +++ "b/docs/ruankao/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" @@ -0,0 +1,5 @@ +--- +title: 综合知识 +permalink: /ruankao/architect/comprehensive/ +--- +# 综合知识 diff --git "a/docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/1-\350\200\203\347\202\271.md" "b/docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/1-\350\200\203\347\202\271.md" similarity index 100% rename from "docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/1-\350\200\203\347\202\271.md" rename to "docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/1-\350\200\203\347\202\271.md" diff --git "a/docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/2-\346\250\241\346\235\277.md" "b/docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/2-\346\250\241\346\235\277.md" similarity index 100% rename from "docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/2-\346\250\241\346\235\277.md" rename to "docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/2-\346\250\241\346\235\277.md" diff --git "a/docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/3-\350\256\272\347\202\271.md" "b/docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/3-\350\256\272\347\202\271.md" similarity index 100% rename from "docs/architect/\350\256\272\346\226\207\345\206\231\344\275\234/3-\350\256\272\347\202\271.md" rename to "docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/3-\350\256\272\347\202\271.md" diff --git "a/docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" "b/docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" new file mode 100644 index 000000000..f4fca8222 --- /dev/null +++ "b/docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" @@ -0,0 +1,5 @@ +--- +title: 论文写作 +permalink: /ruankao/architect/essay-writing/ +--- +# 论文写作 diff --git a/docs/ruankao/soft-design/README.md b/docs/ruankao/soft-design/README.md new file mode 100644 index 000000000..41daba349 --- /dev/null +++ b/docs/ruankao/soft-design/README.md @@ -0,0 +1 @@ +# 软件设计师 diff --git a/docs/ruankao/soft-design/soft-design.sidebar.ts b/docs/ruankao/soft-design/soft-design.sidebar.ts new file mode 100644 index 000000000..98e8e4cdd --- /dev/null +++ b/docs/ruankao/soft-design/soft-design.sidebar.ts @@ -0,0 +1,10 @@ +export const softDesignSidebar = [ + { + text: '基础知识', + children: [], + }, + { + text: '应用技术', + children: [], + }, +] diff --git "a/docs/ruankao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/README.md" "b/docs/ruankao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/README.md" new file mode 100644 index 000000000..f834b2bc2 --- /dev/null +++ "b/docs/ruankao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/README.md" @@ -0,0 +1,5 @@ +--- +title: 基础知识 +permalink: /soft-design/basics/ +--- +# 基础知识 diff --git "a/docs/ruankao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/README.md" "b/docs/ruankao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/README.md" new file mode 100644 index 000000000..752e779bc --- /dev/null +++ "b/docs/ruankao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/README.md" @@ -0,0 +1,5 @@ +--- +title: 论文写作 +permalink: /soft-design/application/ +--- +# 应用技术 diff --git a/docs/solo-algorithm/solo-algorithm.sidebar.ts b/docs/solo-algorithm/solo-algorithm.sidebar.ts index a78da77f6..540683785 100644 --- a/docs/solo-algorithm/solo-algorithm.sidebar.ts +++ b/docs/solo-algorithm/solo-algorithm.sidebar.ts @@ -1,31 +1,18 @@ export const soloAlgorithmSidebar = [ { - text: '❓ 面试必刷Top101', - link: '/solo-algorithm/interview-101/', - }, - { - text: '⚔️ 剑指Offer', - link: '/solo-algorithm/sword-point/', - }, - { - text: '🌟 Shell篇', - link: '/solo-algorithm/shell/', + text: '面试必刷', + children: [ + { text: '❓ 面试必刷Top101', link: '/solo-algorithm/interview-101/' }, + { text: '⚔️ 剑指Offer', link: '/solo-algorithm/sword-point/' }, + { text: '🌟 Shell篇', link: '/solo-algorithm/shell/' }, + ], }, { - text: '在线刷题', + text: '刷题平台', children: [ - { - text: '🫀 牛客', - link: 'https://www.nowcoder.com/', - }, - { - text: '🪐 力扣', - link: 'https://leetcode-cn.com/', - }, - { - text: '🏫 杭电OJ', - link: 'https://acm.hdu.edu.cn/', - }, + { text: '🫀 牛客', link: 'https://www.nowcoder.com/' }, + { text: '🪐 力扣', link: 'https://leetcode-cn.com/' }, + { text: '🏫 杭电OJ', link: 'https://acm.hdu.edu.cn/' }, ], }, ] diff --git a/docs/theme.config.ts b/docs/theme.config.ts index 9d595d244..3f986b022 100644 --- a/docs/theme.config.ts +++ b/docs/theme.config.ts @@ -6,6 +6,8 @@ import { FrontEndSidebar } from './front-end/front-end.sidebar' import { JobChanceSidebar } from './job-chance/job-chance.sidebar' import { MicroserviceSidebar } from './microservice/microserviceSidebar' import { ReadBooksSidebar } from './read-books/read-books.sidebar' +import { architectSidebar } from './ruankao/architect/architect.sidebar' +import { softDesignSidebar } from './ruankao/soft-design/soft-design.sidebar' import { BaseSidebar, DesignPatternsSidebar, @@ -40,7 +42,27 @@ export const navbarConfig = defineVipNavbarConfig([ { text: '🕸️ 微服务架构', link: '/microservice/' }, ], }, - { text: '📖 读书整理', link: '/read-books/' }, + { + text: '📖 能力提升', + children: [ + { text: '® 软著', link: '/copyright/' }, + { + text: '考试', + link: '/ruankao/', + children: [ + { text: '👨🏻‍💻 软件设计师', link: '/ruankao/soft-design/' }, + { text: '💫 系统架构设计师', link: '/ruankao/architect/' }, + ], + }, + { + text: '读书', + children: [ + { text: '🕸️ 技术类', link: '/read-books/cs-books/' }, + { text: '💫 文学类', link: '/read-books/not-cs-book/' }, + ], + }, + ], + }, { text: '👉 了解更多', children: [ @@ -85,6 +107,10 @@ export const sidebarConfig = defineVipSidebarConfig({ '/job-chance': JobChanceSidebar, '/microservice': MicroserviceSidebar, '/battle-interview': BattleInterviewSidebar, + + // 软考 + '/ruankao/soft-desigin': softDesignSidebar, + '/ruankao/architect': architectSidebar, }) /** diff --git "a/docs/\345\270\270\347\224\250\347\275\221\347\253\231.md" "b/docs/\345\270\270\347\224\250\347\275\221\347\253\231.md" index 29d58eb64..e3d793ba7 100644 --- "a/docs/\345\270\270\347\224\250\347\275\221\347\253\231.md" +++ "b/docs/\345\270\270\347\224\250\347\275\221\347\253\231.md" @@ -6,24 +6,22 @@ sidebar: false # 常用网站 -## 技术文档 - -### 知识库 +## 笔记 - JavaGuide: - JavaFamily: - Java面试考察: -### 代码管理 +## 代码管理 - Git中文文档: - SVN中文文档: -### 代码规范 +## 代码规范 - EsLint中文文档: -### 前端 +## 前端 - JQuery中文文档: - Vue中文文档: @@ -31,7 +29,7 @@ sidebar: false - Vuepress: - Vuepress-theme-hope: -#### UI框架 +### UI框架 - View UI: - Element-plus: @@ -40,17 +38,17 @@ sidebar: false - 微信小程序: -### 服务端 +## 服务端 - Nginx: -#### 语言 +### 语言 - Node.js: - TypeScript: - Golang: -#### 框架 +### 框架 - Express: - Koa: @@ -59,22 +57,22 @@ sidebar: false - Nest.js中文: - Midway.js: -#### 消息队列 +### 消息队列 - RabbitMQ: - RocketMQ: - Kafka: -#### 容器相关 +## 容器相关 - Docker官方: - Kubernetes中文: -#### ELK相关 +## ELK - ElasticSearch: -#### CI/CD +## CI/CD - Jenkins: - GitHub Actions中文: From 2428877d81bf037fc510966ce1cb433b731bc1c7 Mon Sep 17 00:00:00 2001 From: chufan Date: Thu, 21 Aug 2025 17:44:22 +0800 Subject: [PATCH 3/6] chore: update --- docs/ruankao/README.md | 2 +- docs/ruankao/architect/README.md | 4 ++-- docs/theme.config.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/ruankao/README.md b/docs/ruankao/README.md index d38212ad9..b1d585c6c 100644 --- a/docs/ruankao/README.md +++ b/docs/ruankao/README.md @@ -3,7 +3,7 @@ ```mindmap root(考试) (软件设计师) - (系统架构设计师) + (系统架构师) (软著) ``` diff --git a/docs/ruankao/architect/README.md b/docs/ruankao/architect/README.md index d426a0a9b..9e600bd79 100644 --- a/docs/ruankao/architect/README.md +++ b/docs/ruankao/architect/README.md @@ -1,7 +1,7 @@ -# 系统架构设计师 +# 系统架构师 ```mindmap -root(系统架构设计师) +root(系统架构师) (综合知识) (案例分析) (论文写作) diff --git a/docs/theme.config.ts b/docs/theme.config.ts index 3f986b022..8692c4f96 100644 --- a/docs/theme.config.ts +++ b/docs/theme.config.ts @@ -51,7 +51,7 @@ export const navbarConfig = defineVipNavbarConfig([ link: '/ruankao/', children: [ { text: '👨🏻‍💻 软件设计师', link: '/ruankao/soft-design/' }, - { text: '💫 系统架构设计师', link: '/ruankao/architect/' }, + { text: '💫 系统架构师', link: '/ruankao/architect/' }, ], }, { From 49ba3a550633a64d52e32508113d2ebacbe97f78 Mon Sep 17 00:00:00 2001 From: chufan Date: Fri, 22 Aug 2025 17:51:37 +0800 Subject: [PATCH 4/6] chore: update --- docs/theme.config.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/theme.config.ts b/docs/theme.config.ts index 8692c4f96..f627ed29c 100644 --- a/docs/theme.config.ts +++ b/docs/theme.config.ts @@ -36,7 +36,13 @@ export const navbarConfig = defineVipNavbarConfig([ { text: '💻 全栈开发', children: [ - { text: '👩🏻‍💻 前端', link: '/front-end/' }, + { + text: '前端', + link: '/front-end/', + children: [ + { text: '👩🏻‍💻 三件套', link: '/front-end/' }, + ], + }, { text: '👨🏻‍💻 后端', link: '/server-end/' }, { text: '💫 开发技巧', link: '/develop-skill/' }, { text: '🕸️ 微服务架构', link: '/microservice/' }, From 202f7d6e4097b637e97ddd51d6f1469fb09a2440 Mon Sep 17 00:00:00 2001 From: chufan Date: Fri, 15 May 2026 16:57:52 +0800 Subject: [PATCH 5/6] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E8=BD=AF?= =?UTF-8?q?=E4=BB=B6=E8=AE=BE=E8=AE=A1=E5=B8=88=E7=9B=B8=E5=85=B3=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/{ruankao => ruan-kao}/README.md | 4 + .../{ruankao => ruan-kao}/architect/README.md | 4 + .../architect/architect.sidebar.ts | 7 +- ...66\346\236\204\350\256\276\350\256\241.md" | 2 +- ...00\345\217\221\345\237\272\347\241\200.md" | 5 + ...56\345\272\223\347\263\273\347\273\237.md" | 2 +- ...24\347\224\250\345\274\200\345\217\221.md" | 2 +- ...76\350\256\241\346\250\241\345\274\217.md" | 2 +- .../README.md" | 5 + .../README.md" | 5 + .../1-\350\200\203\347\202\271.md" | 0 .../2-\346\250\241\346\235\277.md" | 0 .../3-\350\256\272\347\202\271.md" | 0 .../README.md" | 5 + docs/ruan-kao/soft-design/README.md | 48 +++ .../soft-design/soft-design.sidebar.ts | 42 +++ .../README.md" | 29 ++ ...24\350\257\225\346\242\263\347\220\206.md" | 158 ++++++++++ ...24\350\257\225\346\242\263\347\220\206.md" | 141 +++++++++ ...23\344\270\232\350\213\261\350\257\255.md" | 192 ++++++++++++ ...77\345\210\206\350\246\201\347\202\271.md" | 279 ++++++++++++++++++ ...75\351\242\230\345\245\227\350\267\257.md" | 241 +++++++++++++++ ...03\345\274\217\350\246\201\347\202\271.md" | 97 ++++++ ...15\344\271\240\350\267\257\347\272\277.md" | 235 +++++++++++++++ ...24\350\257\225\350\246\201\347\202\271.md" | 95 ++++++ .../README.md" | 22 ++ ...45\350\257\206\344\272\247\346\235\203.md" | 85 ++++++ ...15\344\275\234\347\263\273\347\273\237.md" | 49 +++ ...56\345\272\223\347\263\273\347\273\237.md" | 108 +++++++ ...04\344\270\216\347\256\227\346\263\225.md" | 77 +++++ ...26\350\257\221\345\216\237\347\220\206.md" | 59 ++++ ...23\347\263\273\347\273\223\346\236\204.md" | 123 ++++++++ ...27\346\234\272\347\275\221\347\273\234.md" | 106 +++++++ ...42\345\220\221\345\257\271\350\261\241.md" | 84 ++++++ ...13\345\272\217\345\241\253\347\251\272.md" | 45 +++ ...13\345\272\217\345\241\253\347\251\272.md" | 108 +++++++ .../README.md" | 22 ++ ...76\350\256\241\346\250\241\345\274\217.md" | 91 ++++++ ...56\345\272\223\350\256\276\350\256\241.md" | 62 ++++ ...04\345\214\226\345\210\206\346\236\220.md" | 57 ++++ ...76\350\256\241\345\241\253\347\251\272.md" | 42 +++ ...00\345\217\221\345\237\272\347\241\200.md" | 5 - .../README.md" | 5 - .../README.md" | 5 - .../README.md" | 5 - docs/ruankao/soft-design/README.md | 1 - .../soft-design/soft-design.sidebar.ts | 10 - .../README.md" | 5 - .../README.md" | 5 - docs/theme.config.ts | 25 +- vuepress.config.ts | 2 + 51 files changed, 2750 insertions(+), 58 deletions(-) rename docs/{ruankao => ruan-kao}/README.md (93%) rename docs/{ruankao => ruan-kao}/architect/README.md (71%) rename docs/{ruankao => ruan-kao}/architect/architect.sidebar.ts (78%) rename "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" => "docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" (50%) create mode 100644 "docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" rename "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" => "docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" (51%) rename "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" => "docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" (50%) rename "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" => "docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" (62%) create mode 100644 "docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" create mode 100644 "docs/ruan-kao/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" rename "docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/1-\350\200\203\347\202\271.md" => "docs/ruan-kao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/1-\350\200\203\347\202\271.md" (100%) rename "docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/2-\346\250\241\346\235\277.md" => "docs/ruan-kao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/2-\346\250\241\346\235\277.md" (100%) rename "docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/3-\350\256\272\347\202\271.md" => "docs/ruan-kao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/3-\350\256\272\347\202\271.md" (100%) create mode 100644 "docs/ruan-kao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" create mode 100644 docs/ruan-kao/soft-design/README.md create mode 100644 docs/ruan-kao/soft-design/soft-design.sidebar.ts create mode 100644 "docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/README.md" create mode 100644 "docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\212\345\215\210\347\273\274\345\220\210\347\237\245\350\257\206\302\267\347\234\237\351\242\230\345\272\224\350\257\225\346\242\263\347\220\206.md" create mode 100644 "docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\213\345\215\210\346\241\210\344\276\213\345\210\206\346\236\220\302\267\347\234\237\351\242\230\345\272\224\350\257\225\346\242\263\347\220\206.md" create mode 100644 "docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\223\344\270\232\350\213\261\350\257\255.md" create mode 100644 "docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\223\351\242\230\351\200\237\350\256\260\344\270\216\346\213\277\345\210\206\350\246\201\347\202\271.md" create mode 100644 "docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\347\234\237\351\242\230\347\273\237\350\256\241\344\270\216\345\221\275\351\242\230\345\245\227\350\267\257.md" create mode 100644 "docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\347\256\227\346\263\225\345\272\224\350\257\225\344\270\216\350\214\203\345\274\217\350\246\201\347\202\271.md" create mode 100644 "docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\350\200\203\350\257\225\346\212\200\345\267\247\344\270\216\345\244\215\344\271\240\350\267\257\347\272\277.md" create mode 100644 "docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\350\256\276\350\256\241\346\250\241\345\274\217\345\272\224\350\257\225\350\246\201\347\202\271.md" create mode 100644 "docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/README.md" create mode 100644 "docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\344\277\241\346\201\257\345\256\211\345\205\250\346\240\207\345\207\206\345\214\226\344\270\216\347\237\245\350\257\206\344\272\247\346\235\203.md" create mode 100644 "docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\223\215\344\275\234\347\263\273\347\273\237.md" create mode 100644 "docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" create mode 100644 "docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\225\260\346\215\256\347\273\223\346\236\204\344\270\216\347\256\227\346\263\225.md" create mode 100644 "docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\347\250\213\345\272\217\350\256\276\350\256\241\350\257\255\350\250\200\344\270\216\347\274\226\350\257\221\345\216\237\347\220\206.md" create mode 100644 "docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\350\256\241\347\256\227\346\234\272\347\273\204\346\210\220\344\270\216\344\275\223\347\263\273\347\273\223\346\236\204.md" create mode 100644 "docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234.md" create mode 100644 "docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\350\275\257\344\273\266\345\267\245\347\250\213\344\270\216\351\235\242\345\220\221\345\257\271\350\261\241.md" create mode 100644 "docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/C\347\250\213\345\272\217\345\241\253\347\251\272.md" create mode 100644 "docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/Java\347\250\213\345\272\217\345\241\253\347\251\272.md" create mode 100644 "docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/README.md" create mode 100644 "docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/UML\344\270\216\350\256\276\350\256\241\346\250\241\345\274\217.md" create mode 100644 "docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.md" create mode 100644 "docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\346\225\260\346\215\256\346\265\201\345\233\276\344\270\216\347\273\223\346\236\204\345\214\226\345\210\206\346\236\220.md" create mode 100644 "docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\347\256\227\346\263\225\350\256\276\350\256\241\345\241\253\347\251\272.md" delete mode 100644 "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" delete mode 100644 "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" delete mode 100644 "docs/ruankao/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" delete mode 100644 "docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" delete mode 100644 docs/ruankao/soft-design/README.md delete mode 100644 docs/ruankao/soft-design/soft-design.sidebar.ts delete mode 100644 "docs/ruankao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/README.md" delete mode 100644 "docs/ruankao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/README.md" diff --git a/docs/ruankao/README.md b/docs/ruan-kao/README.md similarity index 93% rename from docs/ruankao/README.md rename to docs/ruan-kao/README.md index b1d585c6c..223063df8 100644 --- a/docs/ruankao/README.md +++ b/docs/ruan-kao/README.md @@ -1,3 +1,7 @@ +--- +title: 考试 +--- + # 考试 ```mindmap diff --git a/docs/ruankao/architect/README.md b/docs/ruan-kao/architect/README.md similarity index 71% rename from docs/ruankao/architect/README.md rename to docs/ruan-kao/architect/README.md index 9e600bd79..29ed3666e 100644 --- a/docs/ruankao/architect/README.md +++ b/docs/ruan-kao/architect/README.md @@ -1,3 +1,7 @@ +--- +permalink: /ruan-kao/architect.html +--- + # 系统架构师 ```mindmap diff --git a/docs/ruankao/architect/architect.sidebar.ts b/docs/ruan-kao/architect/architect.sidebar.ts similarity index 78% rename from docs/ruankao/architect/architect.sidebar.ts rename to docs/ruan-kao/architect/architect.sidebar.ts index 319afd70e..0f3b79eb0 100644 --- a/docs/ruankao/architect/architect.sidebar.ts +++ b/docs/ruan-kao/architect/architect.sidebar.ts @@ -2,13 +2,11 @@ export const architectSidebar = [ { text: '综合知识', prefix: '综合知识', - collapsible: true, - link: '/ruankao/architect/综合知识/', + link: '/ruan-kao/architect/comprehensive.html', }, { text: '案例分析', prefix: '案例分析', - collapsible: false, children: [ { text: '软件架构设计', link: '1-软件架构设计.md' }, { text: '系统开发基础', link: '2-系统开发基础.md' }, @@ -20,7 +18,6 @@ export const architectSidebar = [ { text: '论文写作', prefix: '论文写作', - collapsible: true, - link: '/ruankao/architect/论文写作/', + link: '/ruan-kao/architect/essay-writing.html', }, ] diff --git "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" "b/docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" similarity index 50% rename from "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" rename to "docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" index f7019955d..1d4f3c6e7 100644 --- "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" +++ "b/docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/1-\350\275\257\344\273\266\346\236\266\346\236\204\350\256\276\350\256\241.md" @@ -1,5 +1,5 @@ --- title: 软件架构设计 -permalink: /ruankao/architect/architect-design/ +permalink: /ruan-kao/architect/architect-design.html --- # 软件架构设计 diff --git "a/docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" "b/docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" new file mode 100644 index 000000000..b1f5f0c1e --- /dev/null +++ "b/docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" @@ -0,0 +1,5 @@ +--- +title: 系统开发基础 +permalink: /ruan-kao/architect/system-develop-base.html +--- +# 系统开发基础 diff --git "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" "b/docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" similarity index 51% rename from "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" rename to "docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" index 92dfed760..8dfcac99b 100644 --- "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" +++ "b/docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/3-\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" @@ -1,5 +1,5 @@ --- title: 数据库系统 -permalink: /ruankao/architect/db-system/ +permalink: /ruan-kao/architect/db-system.html --- # 数据库系统 diff --git "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" "b/docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" similarity index 50% rename from "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" rename to "docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" index c4aba8f19..9cbdb0d96 100644 --- "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" +++ "b/docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/4-Web\345\272\224\347\224\250\345\274\200\345\217\221.md" @@ -1,5 +1,5 @@ --- title: Web应用开发 -permalink: /ruankao/architect/app-develop/ +permalink: /ruan-kao/architect/app-develop.html --- # Web应用开发 diff --git "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" "b/docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" similarity index 62% rename from "docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" rename to "docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" index 554be7945..f6dd35a4d 100644 --- "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" +++ "b/docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/5-\350\256\276\350\256\241\346\250\241\345\274\217.md" @@ -1,6 +1,6 @@ --- title: 设计模式 -permalink: /ruankao/architect/design-pattern/ +permalink: /ruan-kao/architect/design-pattern.html --- # 设计模式 diff --git "a/docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" "b/docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" new file mode 100644 index 000000000..c9381cf43 --- /dev/null +++ "b/docs/ruan-kao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" @@ -0,0 +1,5 @@ +--- +title: 案例分析 +permalink: /ruan-kao/architect/case-analyse.html +--- +# 案例分析 diff --git "a/docs/ruan-kao/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" "b/docs/ruan-kao/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" new file mode 100644 index 000000000..6558496a3 --- /dev/null +++ "b/docs/ruan-kao/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" @@ -0,0 +1,5 @@ +--- +title: 综合知识 +permalink: /ruan-kao/architect/comprehensive.html +--- +# 综合知识 diff --git "a/docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/1-\350\200\203\347\202\271.md" "b/docs/ruan-kao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/1-\350\200\203\347\202\271.md" similarity index 100% rename from "docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/1-\350\200\203\347\202\271.md" rename to "docs/ruan-kao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/1-\350\200\203\347\202\271.md" diff --git "a/docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/2-\346\250\241\346\235\277.md" "b/docs/ruan-kao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/2-\346\250\241\346\235\277.md" similarity index 100% rename from "docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/2-\346\250\241\346\235\277.md" rename to "docs/ruan-kao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/2-\346\250\241\346\235\277.md" diff --git "a/docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/3-\350\256\272\347\202\271.md" "b/docs/ruan-kao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/3-\350\256\272\347\202\271.md" similarity index 100% rename from "docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/3-\350\256\272\347\202\271.md" rename to "docs/ruan-kao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/3-\350\256\272\347\202\271.md" diff --git "a/docs/ruan-kao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" "b/docs/ruan-kao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" new file mode 100644 index 000000000..8d098e5ef --- /dev/null +++ "b/docs/ruan-kao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" @@ -0,0 +1,5 @@ +--- +title: 论文写作 +permalink: /ruan-kao/architect/essay-writing.html +--- +# 论文写作 diff --git a/docs/ruan-kao/soft-design/README.md b/docs/ruan-kao/soft-design/README.md new file mode 100644 index 000000000..41f45f138 --- /dev/null +++ b/docs/ruan-kao/soft-design/README.md @@ -0,0 +1,48 @@ +--- +title: 软件设计师(中级) +permalink: /ruan-kao/soft-design.html +--- + +# 软件设计师(中级) + +复习资料按 **「知识点 + 易错难点 + 真题角度拿分要点」** 合并编写,并配 **速记表/背诵块**,减少重复阅读与走弯路。 + +**若痛点是「内容散、记不住、限时做不对」**:请按 **[专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html)**(一页串联知识点→考点→动作)+ **[考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html)**(PDF 复盘、下午时间预算、准确率训练)+ **[真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html)**(自建矩阵)闭环执行;再回 **[基础知识](/ruan-kao/soft-design/basics.html)** / **[应用技术](/ruan-kao/soft-design/applied.html)** 补细节。 + +> 官方考试说明当前使用的科目名称是 **计算机与软件工程知识**、**软件设计**;本站目录按备考习惯命名为 **基础知识(上午)**、**应用技术(下午)**。考试安排、**机考/纸笔、是否连考** 等以 [中国计算机技术职业资格网](https://www.ruankao.org.cn/) 当年通知及准考证为准;能力条目仍以 [软件设计师考试说明](https://www.ruankao.org.cn/article/content/ksjs/02_15.html) 为主干。 + +## 阅读顺序(建议) + +1. **[专题突破](/ruan-kao/soft-design/topics.html)**:考试技巧、**真题统计矩阵**、算法范式、设计模式应试、专业英语——先建立策略再刷模块;**速背一页**见 **[专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html)**。 +2. **[专业英语应试](/ruan-kao/soft-design/topics/english.html)**:卷末阅读与词表;**上午 / 下午真题整卷梳理**见该页最下方。 +3. **[考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html)**:目标分、30/14/7 天、上下午抢分模板与考前清单。 +4. **[真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html)**:题集编排、上午/下午矩阵、算法/程序填空自建表。 +5. **[基础知识](/ruan-kao/soft-design/basics.html)**(上午) / **[应用技术](/ruan-kao/soft-design/applied.html)**(下午):按模块背诵 + 限时真题。 + +若本地有 **多年份真题 PDF + 解析 + 官方《试题分析与解答》**,按 **[真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html)** 的 **零节** 编排刷题,并用该篇 **矩阵表** 自建统计。 + +## 目录一览 + +| 栏目 | 作用 | +|------|------| +| 专题突破 | 考试技巧、真题统计、算法/模式/英语;**上/下午 PDF 对照整卷梳理** | +| 基础知识 | 科目一知识整合与速记 | +| 应用技术 | 科目二题型套路与书写要点 | + +## 复习依据 + +本站按官方软件设计师考试说明与 **2009–2019 解析可抽取文本统计 + 近年卷稳定题型** 整理(统计结论见 [真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html)),重点覆盖: + +- 数据表示、计算机体系结构、操作系统、程序语言与编译基础。 +- 数据结构与算法、数据库、网络、多媒体、安全、标准化与知识产权。 +- 软件工程、软件过程改进、项目管理、软件设计方法与技术。 +- 下午软件设计题型:DFD、数据库设计、UML/设计模式、算法与程序填空。 +- 英文资料阅读:题干定位、同义改写、计算机专业词汇。 + +## 相关 + +- [专题突破](/ruan-kao/soft-design/topics.html) +- [基础知识(上午)](/ruan-kao/soft-design/basics.html) +- [应用技术(下午)](/ruan-kao/soft-design/applied.html) +- [软件设计师考试说明](https://www.ruankao.org.cn/article/content/ksjs/02_15.html) +- [中国计算机技术职业资格网](https://www.ruankao.org.cn/) diff --git a/docs/ruan-kao/soft-design/soft-design.sidebar.ts b/docs/ruan-kao/soft-design/soft-design.sidebar.ts new file mode 100644 index 000000000..b0f2f4ec5 --- /dev/null +++ b/docs/ruan-kao/soft-design/soft-design.sidebar.ts @@ -0,0 +1,42 @@ +export const softDesignSidebar = [ + { + text: '基础知识(上午考试)', + link: '/ruan-kao/soft-design/basics.html', + children: [ + { text: '计算机组成与体系结构', link: '/ruan-kao/soft-design/basics/computer-org.html' }, + { text: '操作系统', link: '/ruan-kao/soft-design/basics/os.html' }, + { text: '数据结构与算法', link: '/ruan-kao/soft-design/basics/dsa.html' }, + { text: '程序语言与编译原理', link: '/ruan-kao/soft-design/basics/lang-compile.html' }, + { text: '数据库系统', link: '/ruan-kao/soft-design/basics/database.html' }, + { text: '计算机网络', link: '/ruan-kao/soft-design/basics/network.html' }, + { text: '软件工程与面向对象', link: '/ruan-kao/soft-design/basics/se-oo.html' }, + { text: '信息安全·标准化·知识产权', link: '/ruan-kao/soft-design/basics/security-legal.html' }, + ], + }, + { + text: '应用技术(下午考试)', + link: '/ruan-kao/soft-design/applied.html', + children: [ + { text: '数据流图与结构化分析', link: '/ruan-kao/soft-design/applied/dfd.html' }, + { text: '数据库设计', link: '/ruan-kao/soft-design/applied/db-design.html' }, + { text: 'UML与设计模式', link: '/ruan-kao/soft-design/applied/uml-patterns.html' }, + { text: '算法设计填空', link: '/ruan-kao/soft-design/applied/algo-fill.html' }, + { text: 'Java程序填空', link: '/ruan-kao/soft-design/applied/java-fill.html' }, + { text: 'C程序填空(选填)', link: '/ruan-kao/soft-design/applied/c-fill.html' }, + ], + }, + { + text: '专题突破', + link: '/ruan-kao/soft-design/topics.html', + children: [ + { text: '考试技巧与复习路线', link: '/ruan-kao/soft-design/topics/exam-skills.html' }, + { text: '专题速记与拿分要点', link: '/ruan-kao/soft-design/topics/topic-cram.html' }, + { text: '真题统计与命题套路', link: '/ruan-kao/soft-design/topics/paper-patterns.html' }, + { text: '算法应试', link: '/ruan-kao/soft-design/topics/pm-algorithm.html' }, + { text: '设计模式', link: '/ruan-kao/soft-design/topics/patterns-exam.html' }, + { text: '专业英语', link: '/ruan-kao/soft-design/topics/english.html' }, + { text: '上午真题梳理', link: '/ruan-kao/soft-design/topics/morning-papers-guide.html' }, + { text: '下午真题梳理', link: '/ruan-kao/soft-design/topics/afternoon-papers-guide.html' }, + ], + }, +] diff --git "a/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/README.md" "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/README.md" new file mode 100644 index 000000000..516e1f419 --- /dev/null +++ "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/README.md" @@ -0,0 +1,29 @@ +--- +title: 专题突破 +permalink: /ruan-kao/soft-design/topics.html +--- + +# 专题突破 + +本栏聚焦 **应试策略、真题统计、算法/模式/英语** 与 **上下午整卷 PDF 对照梳理**,与 [基础知识](/ruan-kao/soft-design/basics.html)、[应用技术](/ruan-kao/soft-design/applied.html) 的知识点条文分工:**知识在基础/应用篇,策略与统计在本栏**。 + +**建议阅读路径(解决「单薄、记不住、做不对」)**:① [专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html) 建立 **高频域→考场动作** 总图 → ② [考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html) 固化 **限时、PDF 复盘、下午时间预算** → ③ [真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html) 用矩阵跟踪 **个人弱项** → ④ 回到基础/应用分册 **只攻勾选的模块**。 + +**高密度背诵**:优先使用 **[专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html)**(知识点→考点→拿分动作一页汇总)。 + +侧栏顺序与下列一致;**上午 / 下午真题整卷梳理**的集中入口在 **[专业英语应试](/ruan-kao/soft-design/topics/english.html)** 页面最下方。 + +## 专题文档 + +- **速记拿分**:[专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html) — **知识点 / 常考点 / 拿分动作** 速背表;上午各模块 + 下午五大块 + 抢分口诀 +- **考试技巧**:[考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html) — 目标分、先后次序、上下午节奏、30/14/7 天、拿分模板、易混对打、考前清单 +- **真题统计**:[真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html) — 题集编排、上午/下午矩阵、套路与陷阱、算法/程序填空统计表 +- **算法应试**:[算法应试与范式要点](/ruan-kao/soft-design/topics/pm-algorithm.html) — 范式定性考频、阅卷书写、时间策略;按卷空白表见真题统计篇 +- **设计模式**:[设计模式应试要点](/ruan-kao/soft-design/topics/patterns-exam.html) — 下午模式识别/选型、易混排除、GoF 意图速扫;深度见 [UML与设计模式](/ruan-kao/soft-design/applied/uml-patterns.html) +- **专业英语**:[专业英语应试](/ruan-kao/soft-design/topics/english.html) — 阅读步骤、题干句式、分主题词表、构词法;**文末**附 [上午真题梳理](/ruan-kao/soft-design/topics/morning-papers-guide.html)、[下午真题梳理](/ruan-kao/soft-design/topics/afternoon-papers-guide.html) + +## 应用技术 · 程序填空(题型精讲) + +- [Java程序填空](/ruan-kao/soft-design/applied/java-fill.html) +- [C程序填空](/ruan-kao/soft-design/applied/c-fill.html) +- [算法设计填空](/ruan-kao/soft-design/applied/algo-fill.html) diff --git "a/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\212\345\215\210\347\273\274\345\220\210\347\237\245\350\257\206\302\267\347\234\237\351\242\230\345\272\224\350\257\225\346\242\263\347\220\206.md" "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\212\345\215\210\347\273\274\345\220\210\347\237\245\350\257\206\302\267\347\234\237\351\242\230\345\272\224\350\257\225\346\242\263\347\220\206.md" new file mode 100644 index 000000000..222756205 --- /dev/null +++ "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\212\345\215\210\347\273\274\345\220\210\347\237\245\350\257\206\302\267\347\234\237\351\242\230\345\272\224\350\257\225\346\242\263\347\220\206.md" @@ -0,0 +1,158 @@ +--- +title: 上午综合知识 · 真题应试梳理 +permalink: /ruan-kao/soft-design/topics/morning-papers-guide.html +--- + +# 上午综合知识 · 真题应试梳理 + +> **说明**:本站无法读取你本机上的 PDF 正文。下文依据 **软件设计师「计算机与软件工程知识」科目公开题型与长期稳定的命题习惯** 整理,供你对照 **《2009–2024 综合知识》**、**《2020–2024 综合知识答案解析》**、**《试题分析与解答(2009–2016 / 2017–2019)》** 自建统计与背诵;**不能替代**你亲自限时做题与对解析纠错。 + +## 一、与你手头资料的用法(上午) + +| 资料(示例文件名) | 建议用法 | +|--------------------|----------| +| **2009–2024 综合知识** | **限时 150 min 整卷**;做完再对答案;错题记入 [真题统计矩阵](/ruan-kao/soft-design/topics/paper-patterns.html#stats-am) | +| **2020–2024 综合知识答案解析** | 只精读 **错题与蒙对题**;抄「标准表述」进错题本 | +| **试题分析与解答 2009–2016 / 2017–2019** | 与回忆版表述冲突时 **以官方为准**;纠偏「定义句」 | + +**效率原则**:以 **最近连续 8~10 套** 为主统计样本;更早卷用于 **薄弱模块加餐**(详见 [考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html))。 + +--- + +## 二、上午答题总套路(75 题单选) + +| 环节 | 做法 | +|------|------| +| **时间** | 约 2 min/题;计算题 ≤3 min,超时先选并标记 | +| **顺序** | 先做概念题 → 有把握的计算 → 英语 → 回头啃标记题 | +| **概念题** | 见第三节「纯概念」;**两两对打**选项先排除半对 | +| **计算题** | 子网、流水线、页面置换、调度等:算完用 **量纲/数量级** 验错 | +| **绝对化** | 「一定」「绝不」「只有」非定理类 **优先怀疑** | +| **卷末英语** | 先读 5 道题干再定位;见 [专业英语应试](/ruan-kao/soft-design/topics/english.html) | + +--- + +## 三、纯概念 · 按模块速记(背「定义 + 辨析」) + +下列为上午 **最常以「纯概念/辨析」出现** 的块,与 [基础知识](/ruan-kao/soft-design/basics.html) 各篇对照精读;此处只列 **考场级关键词**。 + +### 3.1 软件工程 / UML / 设计模式(第一梯队) + +| 考点类型 | 你要能秒判 | +|----------|------------| +| 生命周期 | 瀑布 / 原型 / 螺旋 / 敏捷/DevOps 适用场景与风险 | +| 测试 | 单元/集成/确认/系统/回归;**黑盒 vs 白盒**;测试用例设计思想 | +| 质量 | ISO 质量特性;**内聚↑ 耦合↓**;McCabe 环复杂度(概念) | +| 过程改进 | CMMI 连续式/阶段式(记层级含义,勿死记冷门细节) | +| UML | 类图 **五种关系**;用例 **include 必走 / extend 条件**;常见图适用场景 | +| 设计模式 | GoF **意图 + 典型角色**;易混:**策略/状态/模板方法**、**适配/装饰/代理** | + +深度与例题 → [软件工程与面向对象](/ruan-kao/soft-design/basics/se-oo.html)、[设计模式应试要点](/ruan-kao/soft-design/topics/patterns-exam.html)。 + +### 3.2 数据结构与算法(第一梯队) + +| 考点类型 | 你要能秒判 | +|----------|------------| +| 复杂度 | 最好/最坏/平均;常见结构插入删除查找复杂度 | +| 树图 | 二叉树性质、遍历;平衡树概念;拓扑排序、关键路径 **适用条件** | +| 排序 | **稳定性**;堆/快排/归并适用场景 | +| 哈希 | 冲突处理思想;装填因子(概念) | + +→ [数据结构与算法](/ruan-kao/soft-design/basics/dsa.html)。 + +### 3.3 数据库(第一梯队) + +| 考点类型 | 你要能秒判 | +|----------|------------| +| 范式 | 1NF/2NF/3NF/BCNF **函数依赖角度**(部分依赖、传递依赖) | +| 事务 | ACID;并发问题(丢失修改、脏读、不可重复读、幻读);**隔离级别与现象** | +| 封锁 | 两段锁思想;死锁条件与处理(概念) | +| 关系代数 / SQL 语义 | 选择投影连接除;`GROUP BY`/`HAVING` 分工(概念题常考) | + +→ [数据库系统](/ruan-kao/soft-design/basics/database.html)。 + +### 3.4 计算机网络(第二梯队偏上) + +| 考点类型 | 你要能秒判 | +|----------|------------| +| 分层 | OSI 与 TCP/IP 对应;典型协议与端口 | +| TCP | 连接管理、流量控制、拥塞控制 **概念对比** | +| IP | 子网划分思路;CIDR;私有地址(概念) | + +→ [计算机网络](/ruan-kao/soft-design/basics/network.html)。 + +### 3.5 操作系统(第二梯队偏上) + +| 考点类型 | 你要能秒判 | +|----------|------------| +| 进程/线程 | 状态转换;同步互斥;**PV 信号量含义** | +| 死锁 | 四个必要条件;银行家算法 **考思路不硬算偏题** | +| 内存 | 分页/分段区别;页面置换 **Belady 现象概念**;抖动 | +| 磁盘 | 调度算法思想;文件系统基本概念 | + +→ [操作系统](/ruan-kao/soft-design/basics/os.html)。 + +### 3.6 组成原理(第二梯队) + +| 考点类型 | 你要能秒判 | +|----------|------------| +| 数制与码 | 补码、溢出;定点浮点 **概念级** | +| 流水线 | 吞吐、加速比、冒险类型 **概念** | +| 存储 | Cache 局部性;RAID 各级别 **适用与冗余** | +| 可靠性 | 串联并联系统可靠度 **模型记忆** | + +→ [计算机组成与体系结构](/ruan-kao/soft-design/basics/computer-org.html)。 + +### 3.7 程序语言与编译(第二梯队) + +| 考点类型 | 你要能秒判 | +|----------|------------| +| 文法 | 0/1/2/3 型文法 **层级关系** | +| 编译过程 | 词法/语法/语义;中间代码;优化 **阶段归属** | +| 传参 | 值传递/引用传递与副作用(概念) | + +→ [程序设计语言与编译原理](/ruan-kao/soft-design/basics/lang-compile.html)。 + +### 3.8 安全 / 标准化 / 知识产权(第二梯队) + +| 考点类型 | 你要能秒判 | +|----------|------------| +| 安全模型 | BLP(保密)/ Biba(完整)**对比** | +| 加密 | 对称/非对称适用;数字签名与认证 **概念** | +| 法规 | 著作权、专利权、商标 **边界案例**;侵权判定倾向 | +| 标准 | 常见国标/行业标准代号 **识记高频** | + +→ [信息安全标准化与知识产权](/ruan-kao/soft-design/basics/security-legal.html)。 + +--- + +## 四、上午「经典题型」与对策 + +| 题型 | 典型信号 | 对策 | +|------|----------|------| +| **概念对打** | 两两成对选项 | 先写各自定义再排除 | +| **计算一步坑** | 改一个条件 | 重算 + 量纲检查 | +| **场景选型** | 「最适合/最不合适」 | 回到生命周期/架构/测试目的 | +| **英语细节** | NOT/EXCEPT | 题干定位 + 同义改写比对 | + +--- + +## 五、计算类 · 复习优先级(仍属上午,但非「纯背」) + +优先保证 **子网划分、流水线、页面置换、进程调度、关键路径** 等 **步骤短、套路固定** 的题;偏门数值公式性价比低时,以真题错题驱动(见 [考试技巧](/ruan-kao/soft-design/topics/exam-skills.html))。 + +--- + +## 六、自建:上午「模块 × 年份」错题矩阵 + +请在 [真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html#stats-am) 维护同一张表,避免多处重复;本篇只强调 **填表规则**:每做完一套 **综合知识** 卷,把错题模块勾出来,**两周后只刷勾得多的列**。 + +--- + +## 相关链接 + +- [专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html) +- [考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html)(上午节奏、30/14/7) +- [真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html)(矩阵与套路总表) +- [下午案例分析 · 真题应试梳理](/ruan-kao/soft-design/topics/afternoon-papers-guide.html) +- [专业英语应试](/ruan-kao/soft-design/topics/english.html)(卷末阅读;文末含上/下午真题梳理入口) diff --git "a/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\213\345\215\210\346\241\210\344\276\213\345\210\206\346\236\220\302\267\347\234\237\351\242\230\345\272\224\350\257\225\346\242\263\347\220\206.md" "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\213\345\215\210\346\241\210\344\276\213\345\210\206\346\236\220\302\267\347\234\237\351\242\230\345\272\224\350\257\225\346\242\263\347\220\206.md" new file mode 100644 index 000000000..0051cb904 --- /dev/null +++ "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\213\345\215\210\346\241\210\344\276\213\345\210\206\346\236\220\302\267\347\234\237\351\242\230\345\272\224\350\257\225\346\242\263\347\220\206.md" @@ -0,0 +1,141 @@ +--- +title: 下午案例分析 · 真题应试梳理 +permalink: /ruan-kao/soft-design/topics/afternoon-papers-guide.html +--- + +# 下午案例分析 · 真题应试梳理 + +> **说明**:本站无法读取你本机上的 PDF 正文。下文依据 **「软件设计」科目(下午六道大题)长期稳定的题型能力链** 整理,供你对照 **《2009–2024 案例分析》**、**《2020–2024 案例分析答案解析》**、**《试题分析与解答》** 做 **题型统计 + 套路固化**;题面以当年卷为准。 + +## 一、与你手头资料的用法(下午) + +| 资料(示例文件名) | 建议用法 | +|--------------------|----------| +| **2009–2024 案例分析** | **严格 150 min 六道连做**;记录每大题耗时与丢分点 | +| **2020–2024 案例分析答案解析** | 对答案时只抠 **书写格式 + 关键词命中** | +| **试题分析与解答** | 学习 **分步给分** 的写法;与回忆版冲突以官方为准 | + +统计表请填在 [真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html#stats-pm) 与 [#stats-algo](/ruan-kao/soft-design/topics/paper-patterns.html#stats-algo)。 + +--- + +## 二、下午整体答题套路(六道主观) + +| 原则 | 说明 | +|------|------| +| **按题型备考** | 业务背景年年换,**能力类型稳定** | +| **先易后难** | 开卷 5~8 min 浏览六道,先做最有把握的 | +| **步骤分** | 范式证明、SQL、类图、算法空,**写中间步骤** | +| **关键词** | 用教材术语(如丢失修改、不可重复读),少口语 | +| **不空** | 算法/Java/C 空位 **猜合理结构** 也可能拿分 | + +时间分配与模板细节 → [考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html) 第四、六节。 + +--- + +## 三、下午「能力链」与常见题位(定性) + +> 题号每届可能微调;下列为 **能力块** 与 **最常见出现位置**,用于你对着 PDF **自建统计**。 + +```mermaid +flowchart LR + T1[① 数据流图 DFD] + T2[② 数据库 E-R/范式/SQL] + T3[③ UML / 设计模式] + T4[④ 算法伪代码填空] + T5[⑤ 算法/数据结构(可与④合并或分题)] + T6[⑥ Java 或 C 程序填空] + T1 --> T2 --> T3 --> T4 --> T5 --> T6 +``` + +| 能力块 | 典型考查 | 抢分核心 | +|--------|----------|----------| +| **DFD** | 顶层/0 层、缺失流、加工命名 | **平衡**;命名抄题干;**不画控制流** | +| **数据库** | E-R 转关系、范式、SQL | 主外键写全;范式 **按定义写步骤** | +| **UML/模式** | 类图补全、多重度、模式选型 | 关系符号;[设计模式应试要点](/ruan-kao/soft-design/topics/patterns-exam.html) | +| **算法填空** | DP/贪心/回溯/分治/图 | 边界、`dp` 含义、循环方向;[算法应试](/ruan-kao/soft-design/topics/pm-algorithm.html) | +| **程序填空** | Java 或 C | [Java](/ruan-kao/soft-design/applied/java-fill.html) / [C](/ruan-kao/soft-design/applied/c-fill.html) / [算法设计填空](/ruan-kao/soft-design/applied/algo-fill.html) | + +--- + +## 四、题型统计 · 自建表(提高复习效率的核心) + +### 4.1 按「大题能力块 × 年份」统计(是否出现 / 难度自评) + +在 [真题统计篇](/ruan-kao/soft-design/topics/paper-patterns.html#stats-pm) 已有总表;你也可复制下表扩展「难度 1~5」列: + +| 年份-卷别 | DFD | DB | UML/模式 | 算法空 | Java/C 程序 | 本套最耗时块 | +|-----------|-----|----|----------|--------|---------------|--------------| +| 自填 | | | | | | | + +**用法**:连续 **≥5 套** 后,哪一列长期偏低,接下来一周 **只攻该能力块 + 应用技术对应篇**。 + +### 4.2 算法与程序填空 · 范式/语言统计 + +见 [真题统计 § stats-algo](/ruan-kao/soft-design/topics/paper-patterns.html#stats-algo):把每套卷的 **核心范式** 与 **C/Java** 自填进去,比泛泛「刷了很多套」更能指导取舍。 + +--- + +## 五、分题答题套路(经典题型) + +### 5.1 DFD(经典丢分点) + +| 套路 | 正确动作 | +|------|----------| +| 找缺失数据流 | 从题干 **名词+动宾** 对照父图/子图 | +| 加工命名 | **动词+名词**;不要拿实体名当加工名 | +| 数据存储 | 只表示 **需要保存的数据**;控制条件不当数据流 | + +### 5.2 数据库(经典题型) + +| 题型 | 套路 | +|------|------| +| E-R → 关系 | `1:n` 外键在 **n 端**;`m:n` **独立联系表** | +| 范式 | 逐步说明 **消除了何种依赖** | +| SQL | 先 `FROM/JOIN` 再 `WHERE`;`HAVING` 只接在分组后 | + +### 5.3 UML / 设计模式(经典题型) + +| 题型 | 套路 | +|------|------| +| 类图补线 | 先判继承/实现/关联/聚合/组合 **哪一种** | +| 多重度 | 题干「一名/多名」→ 抄到图上 | +| 模式选型 | 先抓 **变化点**:行为变化多 → 策略/状态;结构包装 → 装饰/适配/外观 | + +### 5.4 算法填空(经典题型) + +| 题型 | 套路 | +|------|------| +| DP | 先写 `dp[i]` 或 `dp[i][j]` **含义**;注意 **初值与循环顺序** | +| 贪心 | 排序关键字往往题干已暗示 | +| 图搜索 | `visited`、边界、队列/栈操作顺序 | + +### 5.5 Java / C 程序填空(经典题型) + +| 语言 | 高频空位 | +|------|----------| +| Java | `null`、`Map` 计数、`StringBuilder`、`Comparator`、集合遍历 | +| C | 指针移动、`'\0'`、递归出口、边界 | + +--- + +## 六、下午「考察内容」自检清单(过线用) + +考前用 **是/否** 自评(全「是」再上考场更稳): + +- [ ] DFD:能独立画/补 **0 层图** 并口头说明平衡检查步骤 +- [ ] DB:能写 **E-R 转关系 + 范式判定骨架 + 多表 SQL 骨架** +- [ ] UML:能区分 **五种关系 + include/extend** +- [ ] 模式:能 **快速背出** 10+ 个高频模式意图(见设计模式应试篇) +- [ ] 算法:能在纸上 **手推** 2 道 DP/贪心小样的边界 +- [ ] 程序:Java/C **各做过** ≥2 道完整填空(当年可能只考其一,但需双线) + +--- + +## 相关链接 + +- [专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html) +- [上午综合知识 · 真题应试梳理](/ruan-kao/soft-design/topics/morning-papers-guide.html) +- [真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html)(统计矩阵) +- [算法应试与范式要点](/ruan-kao/soft-design/topics/pm-algorithm.html) +- [专业英语应试](/ruan-kao/soft-design/topics/english.html)(文末含上/下午真题梳理入口) diff --git "a/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\223\344\270\232\350\213\261\350\257\255.md" "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\223\344\270\232\350\213\261\350\257\255.md" new file mode 100644 index 000000000..20989a783 --- /dev/null +++ "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\223\344\270\232\350\213\261\350\257\255.md" @@ -0,0 +1,192 @@ +--- +title: 专业英语应试 +permalink: /ruan-kao/soft-design/topics/english.html +--- + +# 专业英语应试 + +上午卷末为 **技术英语阅读**(题量以当年试卷为准)。本篇合并 **阅读步骤 + 题干句式 + 分主题词表 + 构词法**,目标是用有限时间拿到稳定分,并与 [考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html) 中的上午节奏一致:**先题干、再定位、不全文翻译**。 + +--- + +## 一、阅读步骤(考场版) + +```mermaid +flowchart TD + R1[先读 5 道题干] --> R2[圈 NOT / EXCEPT / mainly] + R2 --> R3[关键词回文定位] + R3 --> R4[同义改写比对选项] + R4 --> R5[排除绝对化与无依据推断] +``` + +1. **读题干**:圈 `NOT`、`EXCEPT`、`mainly`、`best` 等,分清要找「正确」还是「错误」、主旨还是细节。 +2. **不逐句翻译**:用题干关键词 **回文定位**(专有名词、数字、引号内术语、首字母大写产品名)。 +3. **同义改写**:正确项常为 **paraphrase**;原句照搬要警惕陷阱。 +4. **排极端**:绝对化、文中无依据的推断优先排除。 + +--- + +## 二、题干与选项常用句式 + +| 英文 | 含义 | +|------|------| +| According to the passage / paragraph … | 据文章/某段 | +| It can be inferred / concluded that … | 可推断/得出结论 | +| The word “…” is closest in meaning to … | 词义猜测 | +| Which of the following is **NOT** true? | 选 **错误** 项 | +| The main idea / primary purpose … | 主旨/写作目的 | +| The author mentions … in order to … | 举例目的 | +| is essential / critical / crucial for … | 对…必不可少 | +| is prone to / vulnerable to … | 易于遭受… | +| mitigates / alleviates … | 减轻、缓解 | +| imposes overhead / incurs latency | 额外开销/延迟 | + +--- + +## 三、软件开发与工程(超高频) + +| English | 中文 | +|-----------|------| +| requirements specification | 需求规格说明 | +| feasibility study | 可行性研究 | +| traceability | 可追溯性 | +| baseline | 基线 | +| work breakdown structure (WBS) | 工作分解结构 | +| regression testing | 回归测试 | +| integration testing | 集成测试 | +| acceptance testing | 验收测试 | +| stub / driver | 桩模块/驱动模块 | +| coupling / cohesion | 耦合/内聚 | +| maintainability / portability | 可维护性/可移植性 | +| technical debt | 技术债 | +| agile / Scrum / sprint / backlog | 敏捷/Scrum/迭代/待办 | +| continuous integration / deployment (CI/CD) | 持续集成/部署 | +| refactoring | 重构 | +| anti-pattern | 反模式 | + +--- + +## 四、面向对象与 UML + +| English | 中文 | +|-----------|------| +| encapsulation / inheritance / polymorphism | 封装/继承/多态 | +| association / aggregation / composition | 关联/聚合/组合 | +| generalization / realization | 泛化/实现 | +| dependency | 依赖 | +| lifeline / activation | 生命线/激活条 | +| synchronous / asynchronous message | 同步/异步消息 | +| state transition / guard condition | 状态迁移/守卫条件 | +| design pattern | 设计模式 | +| creational / structural / behavioral | 创建型/结构型/行为型 | +| singleton / factory method / abstract factory | 单例/工厂方法/抽象工厂 | +| adapter / decorator / facade / proxy | 适配器/装饰/外观/代理 | +| observer / strategy / template method | 观察者/策略/模板方法 | + +--- + +## 五、数据结构与算法 + +| English | 中文 | +|-----------|------| +| time complexity / space complexity | 时间/空间复杂度 | +| asymptotic notation (Big-O) | 渐近记号 | +| stack / queue / deque | 栈/队列/双端队列 | +| linked list / doubly linked | 链表/双向链表 | +| binary tree / balanced tree | 二叉树/平衡树 | +| traversal (preorder, inorder, postorder) | 遍历(前/中/后序) | +| hash table / collision / load factor | 哈希表/冲突/装填因子 | +| directed acyclic graph (DAG) | 有向无环图 | +| shortest path / minimum spanning tree | 最短路径/最小生成树 | +| topological sort | 拓扑排序 | +| divide and conquer / dynamic programming / greedy | 分治/动态规划/贪心 | +| memoization | 记忆化 | +| backtracking | 回溯 | +| stable sort | 稳定排序 | + +--- + +## 六、数据库与事务 + +| English | 中文 | +|-----------|------| +| schema / instance | 模式/实例 | +| candidate key / primary key / foreign key | 候选码/主码/外码 | +| functional dependency / normalization | 函数依赖/规范化 | +| transaction / ACID properties | 事务/ACID | +| concurrency control / isolation level | 并发控制/隔离级别 | +| deadlock / livelock / starvation | 死锁/活锁/饥饿 | +| two-phase locking (2PL) | 两段锁 | +| query optimization / index / clustered | 查询优化/索引/聚簇 | +| redundancy / anomaly (insertion, deletion, update) | 冗余/插入删除更新异常 | + +--- + +## 七、操作系统与体系结构 + +| English | 中文 | +|-----------|------| +| process / thread / context switch | 进程/线程/上下文切换 | +| scheduling / preemptive / non-preemptive | 调度/抢占/非抢占 | +| semaphore / mutex / critical section | 信号量/互斥量/临界区 | +| paging / page fault / thrashing | 分页/缺页/抖动 | +| virtual memory / working set | 虚拟内存/工作集 | +| file system / inode / directory | 文件系统/inode/目录 | +| throughput / latency | 吞吐量/延迟 | +| pipeline hazard (data, structural, control) | 流水线冒险 | +| cache hit ratio | Cache 命中率 | + +--- + +## 八、网络与安全 + +| English | 中文 | +|-----------|------| +| packet switching / circuit switching | 分组交换/电路交换 | +| latency / bandwidth / jitter | 时延/带宽/抖动 | +| routing / forwarding | 路由选择/转发 | +| subnet mask / CIDR / NAT | 子网掩码/CIDR/NAT | +| three-way handshake / congestion control | 三次握手/拥塞控制 | +| denial-of-service (DoS) / firewall / IDS | 拒绝服务/防火墙/入侵检测 | +| encryption / decryption / symmetric / asymmetric | 加/解密/对称/非对称 | +| digital signature / certificate authority (CA) | 数字签名/认证机构 | +| authentication / authorization / integrity | 认证/授权/完整性 | +| phishing / malware / Trojan | 钓鱼/恶意软件/木马 | + +--- + +## 九、构词法速记(猜词) + +| 词缀/词根 | 含义 | 例 | +|-----------|------|-----| +| inter- | 相互、之间 | interoperability | +| intra- | 内部 | intranet | +| multi- / poly- | 多 | multiprocessing | +| mono- / uni- | 单 | unicast | +| -ization | …化 | parallelization | +| -able / -ibility | 可… | scalability | +| over- / under- | 过度/不足 | overhead | +| re- | 再 | refactoring | + +--- + +## 十、背诵建议 + +- **每天约 20 词**:英↔中,以 **三至八节** 为主循环。 +- **与上午选择题联动**:同一概念中英文都认识,可用中文知识 **反推** 选项。 +- **不背长句**:只背 **动词短语 + 名词短语**(如 `mitigate risk`, `enforce policy`)。 + +--- + +## 相关 + +- [专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html) +- [考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html) +- [真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html) +- [算法应试与范式要点](/ruan-kao/soft-design/topics/pm-algorithm.html) +- [设计模式应试要点](/ruan-kao/soft-design/topics/patterns-exam.html) + +## 真题整卷梳理(上 / 下午) {#papers-am-pm} + +- [上午综合知识 · 真题应试梳理](/ruan-kao/soft-design/topics/morning-papers-guide.html) +- [下午案例分析 · 真题应试梳理](/ruan-kao/soft-design/topics/afternoon-papers-guide.html) diff --git "a/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\223\351\242\230\351\200\237\350\256\260\344\270\216\346\213\277\345\210\206\350\246\201\347\202\271.md" "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\223\351\242\230\351\200\237\350\256\260\344\270\216\346\213\277\345\210\206\350\246\201\347\202\271.md" new file mode 100644 index 000000000..81ca14ccb --- /dev/null +++ "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\344\270\223\351\242\230\351\200\237\350\256\260\344\270\216\346\213\277\345\210\206\350\246\201\347\202\271.md" @@ -0,0 +1,279 @@ +--- +title: 专题速记与拿分要点 +permalink: /ruan-kao/soft-design/topics/topic-cram.html +--- + +# 专题速记与拿分要点 + +> 本篇在 **[考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html)** 的策略之上,把 **知识点 → 常考点 → 考场拿分动作** 压成可背诵块;**细节与例题**仍以 [基础知识](/ruan-kao/soft-design/basics.html)、[应用技术](/ruan-kao/soft-design/applied.html) 为准。 +> **用法**:每天 **15~20 min** 朗读;每做完一套真题,用红笔把错因标在对应表格行旁(只标「概念 / 公式 / 审题 / 超时」四类)。考前 48 h 过两遍本文 + **[上午/下午真题应试梳理](/ruan-kao/soft-design/topics/english.html#papers-am-pm)** 的检查项。 + +--- + +## 〇、两周「过线优先」节奏(可照抄执行) + +| 天数 | 上午(75 题) | 下午(六道) | +|------|----------------|--------------| +| D1~D2 | 软工+UML+模式 **速记表朗读** + 各 1 套限时(只做错题域) | DFD **1 道写满** + 数据库 **1 道写满**(抄解析得分句) | +| D3~D4 | DS+DB **错题清零**(排序稳定性、范式、事务隔离) | UML/模式 **1 道** + 算法 **1 道**(手推边界) | +| D5~D6 | 网络+OS **概念对打**(TCP/UDP、PV、页面置换) | 程序填空 **Java 与 C 各 1**(见应用技术分册) | +| D7~D8 | 组成+编译+安全 **只背表格** + 英语词表 | 限时 **半套下午**(先做 DFD+DB) | +| D9~D10 | 整卷限时 ×2 + 矩阵填「模块×年份」 | 整卷限时 ×2 + 填「题型×年份」 | +| D11~D12 | 只刷矩阵里 **勾最多的列** | 只练最弱一列(算法或程序) | +| D13~D14 | **只看错题与本文**;不做新题 | 同左;**平衡、范式步骤、模式英文名** 过一遍 | + +矩阵空白表 → [真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html)。 + +--- + +## 〇点五、解析文本统计给的「长期权重」(对齐你手头 PDF) + +本站对 2009–2019《试题分析与解答》中 **「本题考查……」类表述** 做过可抽取文本归类(约 **499** 条样本,**排序比绝对数重要**)。与本地多年 PDF 对照时,优先把精力押在下列域(与 [真题统计](/ruan-kao/soft-design/topics/paper-patterns.html#stats-am) 一致): + +| 排序 | 知识域 | 考场动作 | +|------|--------|----------| +| 1 | 软件工程与面向对象 | 用例关系、测试级别、维护类型、CMMI、**GoF 意图** | +| 2 | 数据结构与算法 | 复杂度、排序稳定性、树/图性质、**经典算法思想词** | +| 3 | 程序语言与编译 | 文法型、编译各阶段、传参、**正规式 vs CFG** | +| 4 | 组成与体系结构 | 补码溢出、流水线、Cache、RAID、可靠性 | +| 5 | 操作系统 | PV、死锁、页面置换、磁盘调度、文件目录 | +| 6 | 数据库 | 范式链、事务与封锁、关系代数/SQL 语义 | +| 7 | 安全与法规 + 网络 | 加密/签名/证书、知识产权;子网与 TCP/IP 概念栈 | + +**一句总纲**:上午 **「软工+DS+编译+组成+OS」** 占大头;下午 **「DFD→数据库→UML/模式」** 保底,算法与程序拉区分。 + +--- + +## 一、上午 · 模块速记(**重点**标粗) + +### 1.1 软件工程 / UML / 设计模式(**第一梯队**) + +| 知识点 | 常考点 / 陷阱 | **拿分点(背+写)** | +|--------|----------------|----------------------| +| 生命周期 | 瀑布/原型/螺旋/敏捷适用 | 题干「风险大」→ **螺旋**;「需求不稳」→ **原型/敏捷** | +| 测试级别 | 单元/集成/确认/系统/回归 | **回归** = 变更后再测;**确认** = 是否满足规格/需求 | +| 黑盒/白盒 | 功能 vs 结构路径 | 先定「看 **I/O**」还是看 **分支/路径覆盖** | +| 质量模型 | ISO 特性、McCabe | **高内聚低耦合**;环复杂度 **V(G)=E−N+2**(单入口单出口控制流图常用式) | +| 维护 | 改正性/适应性/完善性/预防性 | 「改环境」常考 **适应性** | +| CMMI | 连续式/阶段式 | 记过程域与成熟度关系,**勿背冷门编号** | +| 风险 | 识别/分析/应对 | **回避/转移/减轻/接受** 与场景配对 | +| 进度 | 关键路径、PERT | **关键路径 = 最长路径**;松弛时间为 0 的活动在线上 | +| UML 类图 | 五种关系 | **组合实心菱形** 同生命周期;**聚合空心** 可独立 | +| 用例 | include / extend | **include 必走**;**extend 条件触发** | +| GoF | 意图与角色名 | 下午联动多;先背 [设计模式应试](/ruan-kao/soft-design/topics/patterns-exam.html) 高频五模式 | + +**一句抢分**:概念题先写 **定义句 8~15 字**,再回选项「抠字眼」。 + +--- + +### 1.2 数据结构与算法(**第一梯队**) + +| 知识点 | 常考点 | **拿分点** | +|--------|--------|------------| +| 复杂度 | 最好/最坏/平均 | **数循环层数** + 递归深度;常见阶只选 **1, log n, n, n log n, n²** | +| 排序 | **稳定性** | 快排/堆排/希尔 **不稳**;归并/插入/冒泡 **稳**(记典型) | +| 树 | BST、堆、完全二叉树 | 完全二叉树高度 **⌊log₂n⌋**;堆用于 **优先队列** | +| 图 | 拓扑、关键路径 | 拓扑 ⇔ **有向无环**;**AOE 关键路径 = 最长路径** | +| 哈希 | 冲突 | **开放定址** vs **链地址** 的聚集与删除问题 | +| 查找 | 折半、B 树 | 折半 **有序+顺序存储**;B 树适合 **外存索引**(概念) | + +**一句抢分**:复杂度先 **数层数**,再套常见阶;证明题少,**选项排除** 更快。 + +--- + +### 1.3 数据库(**第一梯队**) + +| 知识点 | 常考点 | **拿分点** | +|--------|--------|------------| +| 范式 | 1NF~BCNF | **2NF 去部分依赖**;**3NF 去传递**;BCNF 决定因素 ⊆ **候选键** | +| 事务 | ACID、隔离 | 脏读/不可重复读/幻读 ↔ **RU/RC/RR/串行** 对应关系 | +| 封锁 | 2PL、死锁 | 死锁 **四条件**;**预防/避免/检测恢复** 辨析 | +| SQL | GROUP BY / HAVING | **WHERE 选行 → GROUP → HAVING 筛组** | +| 关系代数 | 选择/投影/连接 | **σ π ⋈** 与 SQL 对应;注意 **重复元组** 与投影 | + +**一句抢分**:范式题 **先写函数依赖箭头**,再套定义,**禁止跳步心算**。 + +--- + +### 1.4 计算机网络(第二梯队偏上) + +| 知识点 | 常考点 | **拿分点** | +|--------|--------|------------| +| OSI / TCP/IP | 层与典型设备/协议 | **交换机=二层**;**路由器=三层**;**HTTP 在应用层** | +| TCP | 可靠、连接 | **三次握手 / 四次挥手**;拥塞:**慢开始、拥塞避免、快重传**(记名) | +| IP / 子网 | CIDR、划分 | **主机位 = 32−前缀**;可用主机数注意 **全 0/全 1**(概念题常考) | +| 应用层 | DNS / DHCP / HTTPS | **DNS 53/UDP**;TLS 在传输安全中的位置(概念) | + +--- + +### 1.5 操作系统(第二梯队偏上) + +| 知识点 | 常考点 | **拿分点** | +|--------|--------|------------| +| PV | 互斥/同步 | **P 减 V 加**;先画 **临界区** 与执行顺序 | +| 死锁 | 四条件、银行家 | 破坏 **互斥/占有且等待/不可抢占/环路** 之一 | +| 页面置换 | FIFO/LRU/时钟 | **Belady** 现象 = FIFO 帧数↑缺页可能↑ | +| 调度 | FCFS/SJF/时间片 | **SJF 平均等待最优**(理论前提记清) | +| 磁盘 | SCAN/C-SCAN | **SCAN 电梯**;C-SCAN **单向服务** | + +--- + +### 1.6 组成原理(第二梯队) + +| 知识点 | 常考点 | **拿分点** | +|--------|--------|------------| +| 补码 | 溢出 | 同号相加才可能溢;**双符号位** 判溢 | +| 流水线 | 加速比、冒险 | 理想加速比 ≤ **级数**;**数据/控制/结构** 冒险 | +| Cache | 映射、局部性 | **时间+空间局部性**;命中率与 **主存块大小** 权衡 | +| RAID | 级别 | 0 **条带无冗余**;1 **镜像**;5 **分布式奇偶** | + +--- + +### 1.7 编译 / 程序语言(第二梯队) + +| 知识点 | 常考点 | **拿分点** | +|--------|--------|------------| +| 文法 | 0~3 型 | **3⊂2⊂1⊂0**(包含关系) | +| 编译阶段 | 词法→语法→语义→中间代码… | **词法↔正则/FA**;**语法↔CFG**;语义 **静态/动态** | +| 传参 | 值/引用/名 | 形参能否改实参、是否共享存储 | + +--- + +### 1.8 安全 / 法规 / 标准化(第二梯队) + +| 知识点 | 常考点 | **拿分点** | +|--------|--------|------------| +| BLP / Biba | 保密 vs 完整 | **BLP 不上读不下写**(防泄密);**Biba 防写坏** | +| 加密 | 对称/非对称、摘要 | **大数据加密用对称**;**密钥分发/数字签名** 常配非对称;**摘要不可逆** | +| 著作权/专利 | 客体、产生时间 | **软件著作权自动取得**;专利 **申请审查制** | + +--- + +### 1.9 多媒体与标准化(分散但常考) + +| 知识点 | 常考点 | **拿分点** | +|--------|--------|------------| +| 媒体分类 | 感觉/表示/存储/传输 | 题干给例子能 **归类** | +| 颜色空间 | RGB / YUV | 视频压缩常提 **YUV**;显示 **RGB** | +| 压缩 | 无损/有损 | **霍夫曼、算术** 等名与 **有无损** 对应 | +| 标准 / 知识产权 | GB、行业标准 | **国家标准与推荐性**;与 **著作权、商业秘密** 区分 | + +--- + +### 1.10 卷末英语(**勿放弃**) + +| 考点 | **拿分点** | +|------|------------| +| NOT / EXCEPT | 先圈限定词,**回文定位** 再逐项排除 | +| 词义 | **并列/转折** 前后找同义替换 | +| 主旨 | **首段+末段+各段首句** | + +词表与步骤 → [专业英语应试](/ruan-kao/soft-design/topics/english.html)。 + +--- + +## 二、下午 · 大题速记(按能力块) + +### 2.0 卷面结构(与 2017–2019 样本及近年稳定形态对齐) + +前三道 **高度稳定**:**DFD → 数据库设计 → UML/设计**。第四道 **算法填空**(分治/回溯/DP 轮换);第五或六道 **程序填空**(**Java 与 C 均可能出现**,须双线备考)。详见 [真题统计](/ruan-kao/soft-design/topics/paper-patterns.html#stats-pm)。 + +### 2.1 数据流图 DFD(**分值高、套路稳**) + +| 考点 | **拿分点(必做检查)** | +|------|------------------------| +| 平衡 | **父图输入输出 ⊆ 子图**;子图 **禁止** 凭空出现父图无来源/去向的数据 | +| 补流 | 从题干 **名词 + 动宾短语** 找「谁把什么交给哪个加工」 | +| 命名 | **动宾**;与题干用词 **一致** | +| 禁忌 | **控制流(事件/判断)不得当数据流**;外部实体与存储与加工关系画清 | + +--- + +### 2.2 数据库(E-R / 范式 / SQL) + +| 考点 | **拿分点** | +|------|------------| +| E-R→关系 | **1:n 外键在 n 端**;**m:n 建联系表** + 两端主键作外键 | +| 范式 | 按 **1NF→2NF→3NF** 写「消除了何种依赖」;BCNF 写清 **决定因素** | +| SQL | **FROM 定范围 → WHERE 过滤 → GROUP → HAVING → ORDER**;`JOIN ON` 条件写全 | + +--- + +### 2.3 UML / 设计模式 + +| 考点 | **拿分点** | +|------|------------| +| 类图 | 关系符号画对;**多重度抄题干** | +| 交互/状态 | 消息序号、状态转移 **条件/动作** | +| 模式名 | **标准英文名** + 典型角色(Context、Strategy、Observer…) | + +→ [设计模式应试要点](/ruan-kao/soft-design/topics/patterns-exam.html)。 + +--- + +### 2.4 算法填空 + +| 考点 | **拿分点** | +|------|------------| +| DP | **先声明 `dp[i]` 或 `dp[i][j]` 含义**;01 背包内层常 **逆序** | +| 贪心 | **排序关键字** 往往题干明示或隐含 | +| 回溯/分治 | **递归出口**、搜索 **剪枝条件**、分治 **合并步骤** | +| 图 | `visited`、**入度表**(拓扑)、最短路径松弛(视空位) | + +→ [算法应试与范式要点](/ruan-kao/soft-design/topics/pm-algorithm.html)。 + +--- + +### 2.5 Java / C 程序填空 + +| 语言 | **高频拿分空** | +|------|----------------| +| Java | `null`、边界、`Map`/`Set` 计数、`StringBuilder`、`Comparator.compare` | +| C | 指针移动、`'\0'`、递归出口、`malloc/free` 配对、数组下标 **0~n−1** | + +→ [Java](/ruan-kao/soft-design/applied/java-fill.html) / [C](/ruan-kao/soft-design/applied/c-fill.html)。 + +--- + +## 三、通用抢分口诀(可背) + +- **上午**:梯队模块先,**英语扫读不恋战**;计算 **量纲验算**;**绝对化先怀疑**。 +- **下午**:**DFD 先平衡再补流**;**DB 键与范式写步骤**;**UML 术语写准**;**算法先边界再循环方向**;**程序每空先写语义再填 API**。 +- **全局**:**空白不得分**;**关键词 = 分**;让阅卷人 **少猜**。 + +--- + +## 四、与真题、统计表、PDF 的配合 + +1. 每做完一套:**错题域** 填入 [上午模块×年份](/ruan-kao/soft-design/topics/paper-patterns.html#stats-am)、[下午题型×年份](/ruan-kao/soft-design/topics/paper-patterns.html#stats-pm)。 +2. **扫描版 PDF**:只记录 **题型+错因编号**,同样进矩阵;二周后 **只刷勾多的列**。 +3. 整卷节奏与机考注意 → [考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html)「〇节、一点五节、四节」。 +4. 上/下午 **按卷 PDF 对照** 步骤 → [专业英语应试](/ruan-kao/soft-design/topics/english.html) 文末 **真题整卷梳理**。 + +--- + +## 五、题干「信号词」→ 考点(秒判用) + +| 题干信号 | 多指向 | +|----------|--------| +| 「不正确的」「除了」 | **反选**;先排除最确定两项 | +| 「风险驱动」 | **螺旋模型** | +| 「小步迭代、可工作软件」 | **敏捷** | +| 「最长路径」「工期」 | **关键路径** / **AOE** | +| 「不可重复读」「幻读」 | **隔离级别** | +| 「决定因素不是候选键」 | **BCNF 破坏点** | +| 「算法可互换」 | **Strategy** | +| 「一对多通知」 | **Observer** | +| 「抽象与实现独立变化」 | **Bridge** | + +--- + +## 相关 + +- [考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html) +- [真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html) +- [算法应试与范式要点](/ruan-kao/soft-design/topics/pm-algorithm.html) +- [设计模式应试要点](/ruan-kao/soft-design/topics/patterns-exam.html) +- [专业英语应试](/ruan-kao/soft-design/topics/english.html)(文末含上午/下午真题梳理入口) +- [上午综合知识 · 真题应试梳理](/ruan-kao/soft-design/topics/morning-papers-guide.html) +- [下午案例分析 · 真题应试梳理](/ruan-kao/soft-design/topics/afternoon-papers-guide.html) diff --git "a/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\347\234\237\351\242\230\347\273\237\350\256\241\344\270\216\345\221\275\351\242\230\345\245\227\350\267\257.md" "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\347\234\237\351\242\230\347\273\237\350\256\241\344\270\216\345\221\275\351\242\230\345\245\227\350\267\257.md" new file mode 100644 index 000000000..a6dbb14a7 --- /dev/null +++ "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\347\234\237\351\242\230\347\273\237\350\256\241\344\270\216\345\221\275\351\242\230\345\245\227\350\267\257.md" @@ -0,0 +1,241 @@ +--- +title: 真题统计与命题套路 +permalink: /ruan-kao/soft-design/topics/paper-patterns.html +--- + +# 真题统计与命题套路 + +> 侧重 **命题套路、陷阱类型与自建统计表**。本文结合本地题集做可抽取文本统计:2009-2016、2017-2019《试题分析与解答》可抽出部分/完整解析文本;2020-2024 PDF 当前为图片扫描版,本地无 OCR,暂不做逐题自动统计。结论只用于复习优先级,不替代你限时做卷。**快速背诵版**见 [专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html);**准确率与机考节奏**见 [考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html)。 + +## 零、手头题集怎么编排(PDF 等) + +若你持有 **多年完整试卷** + **近年解析** + **官方《试题分析与解答》**,建议: + +| 资料类型 | 用途 | +|----------|------| +| 综合知识(上午)全周期卷 | 限时整卷;填 **「上午模块×年份」矩阵** | +| 案例分析(下午)全周期卷 | 六道计时;填 **「下午大题×年份」矩阵** | +| 近年答案解析 | 对答案、抄标准得分句式 | +| 官方试题分析与解答 | 与回忆版冲突时 **以官方为准** | + +1. **主战场**:最近连续 **8~10 套** 限时整卷。 +2. **辅战场**:更早的年份按 **薄弱模块挑做**。 +3. **解析**:先闭卷限时,再打开解析,避免假会。 + +### 0.1 本次统计口径 + +| 来源 | 文本可解析性 | 本文使用方式 | +|------|--------------|--------------| +| 2009-2016 试题分析与解答 | 部分页可抽文本,解析关键词可统计 | 观察长期高频知识域 | +| 2017-2019 试题分析与解答 | 文本可抽取,上午/下午结构较完整 | 形成下午题型矩阵与近年样本 | +| 2020-2024 综合知识/案例分析题面与解析 | 当前环境抽不出文本,疑似扫描版 | 不做逐题统计;按稳定题型备考 | + +### 0.2 扫描版 PDF:不靠 OCR 也能建「个人真题统计」 + +1. **只做标记**:每套卷用 Excel/纸笔维护与本文 **第二节、第三节** 同结构的矩阵,格子内只写 **「错 / 超时 / 蒙对」** 三选一。 +2. **摘录替代复制**:解析里若无法复制,手抄 **一行得分句式**(含教材术语)进错题本即可。 +3. **与官方《试题分析与解答》对齐**:回忆版与官方冲突时 **以官方为准**;统计仍可用于「我哪里弱」,不用于押题。 +4. **近年卷(2020+)定性结论**(在无法自动抽文本的前提下仍成立): + - 上午:**软工+UML+模式、DS、编译、组成、OS、DB** 仍为得分主战场;英语、多媒体、法规为 **高性价比背诵块**。 + - 下午:**DFD → 数据库 → UML/设计** 三道结构稳定;算法在 **DP / 回溯 / 分治** 中轮换;程序填空 **Java 与 C 双线准备**。 + +**版权处理**:本站不收录真题原文,只沉淀知识域、题型、答题套路和复习矩阵。 + +--- + +## 一、统计原则 + +| 原则 | 说明 | +|------|------| +| 固定同一套真题来源 | 减少版本差异导致的假错题 | +| 先限时再对答案 | 「超时题」单独标出 | +| 解析与试卷分开用 | 闭卷 → 对解析 | + +--- + +## 二、上午:模块 × 年份 {#stats-am} + +> 列名可按自己弱项增删;与 [考试技巧](/ruan-kao/soft-design/topics/exam-skills.html)「第一梯队」对齐。 + +| 年份 | 软工+UML | 数据结构 | 数据库 | 网络 | OS | 组成 | 编译 | 安全法律 | 英语 | 备注 | +|------|----------|----------|--------|------|-----|------|------|----------|------|------| +| 20×× | | | | | | | | | | | +| | | | | | | | | | | | + +### 2.1 已抽取解析关键词:长期高频域 + +对 2009-2019 可抽取解析中“本题考查……”类句子做关键词归类,得到 499 条可用样本。该统计会受 PDF 可抽取质量影响,**只看排序,不看绝对分值**。 + +| 知识域 | 样本数 | 复习动作 | +|--------|--------|----------| +| 软件工程与面向对象 | 143 | 先清 UML、测试、维护、项目管理、设计模式错题 | +| 数据结构与算法 | 85 | 排序查找、树图、复杂度、算法思想必须刷熟 | +| 程序语言与编译 | 67 | 文法/编译阶段/语言机制用表格背准 | +| 计算机组成与体系结构 | 55 | 数据表示、寄存器、指令、Cache、可靠性反复出现 | +| 操作系统 | 40 | 文件管理、PV、进程、死锁、磁盘调度要能秒判 | +| 数据库 | 24 | 范式、关系运算、并发、E-R 与 SQL 都是双科高频 | +| 安全与法规 | 21 | 知识产权、数字签名、证书、加密适合考前集中背 | +| 计算机网络 | 20 | HTTPS、DNS、TCP/IP、路由、防火墙以概念辨析为主 | +| 多媒体/英语/其他 | 44 | 多媒体与英语分散,靠速记表拿分 | + +### 2.2 上午稳定结论 + +| 优先级 | 模块 | 具体抓手 | +|--------|------|----------| +| 1 | 软件工程 + UML + 模式 | 用例/类图关系、测试覆盖、维护类型、GoF 意图 | +| 2 | 数据结构与算法 | 排序稳定性、查找、树图性质、复杂度阶 | +| 3 | 组成 + 操作系统 | 寄存器/Cache/DMA/RAID;PV/死锁/文件/页面 | +| 4 | 数据库 + 网络 | 范式/事务/SQL;协议层次/端口/子网/TCP | +| 5 | 安全法律 + 英语 | 签名/摘要/证书/知识产权期限;题干定位 | + +```mermaid +flowchart LR + A[做一套上午卷] --> B[按知识域标错题] + B --> C[第一梯队错题清零] + C --> D[第二梯队速记表] + D --> E[英语与安全法律考前背] +``` + +--- + +## 三、下午:大题类型 × 年份 {#stats-pm} + +| 年份 | DFD | DB | UML/模式 | 算法填空 | 程序 (C/Java) | 最弱一题 | +|------|-----|----|----------|----------|---------------|----------| +| 20×× | | | | | | | +| | | | | | | | + +连续 **≥5 套**,哪一列长期偏低就回到 [应用技术](/ruan-kao/soft-design/applied.html) 对应篇专项练。 + +### 3.1 2017-2019 下午题型样本 + +| 卷别 | 第 1 题 | 第 2 题 | 第 3 题 | 第 4 题 | 第 5/6 题 | +|------|--------|--------|--------|--------|----------| +| 2017 上 | DFD | 数据库设计 | UML/设计 | 分治/递归(假币) | Builder(C++/Java) | +| 2017 下 | DFD | 数据库设计 | UML | 回溯/图(Hamilton) | Bridge(C++/Java) | +| 2018 上 | DFD | 数据库设计 | UML | DP(钢条切割) | Builder(C++/Java) | +| 2018 下 | DFD | 数据库设计 | UML | DP(序列/结构类) | State(C++/Java) | +| 2019 上 | DFD | 数据库设计 | UML | 回溯(n 皇后) | Strategy(Java/C++) | +| 2019 下 | DFD | 数据库设计 | UML | DP(0-1 背包) | Observer(C++/Java) | + +**稳定结论**: + +- 前三题高度稳定:**DFD → 数据库 → UML/设计**,应作为下午保底分。 +- 第四题算法轮换:分治、回溯、动态规划都出现,必须按“范式模板”备考。 +- 第五/六题常围绕 GoF 模式代码填空,C++/Java 载体轮换,但模式角色和类图意图相同。 + +### 3.2 下午拿分优先级 + +| 优先级 | 题型 | 为什么先练 | +|--------|------|------------| +| 1 | DFD | 每年换业务,但补流、平衡、命名规则稳定 | +| 2 | 数据库设计 | 主外键、E-R 转关系、范式步骤容易拿部分分 | +| 3 | UML/设计模式 | 类图关系、多重度、模式名称可通过模板稳定得分 | +| 4 | 算法填空 | 需要推演,但边界/初值/循环方向可套路化 | +| 5 | 程序填空 | 受语言和代码上下文影响大,最后专项补 API/指针 | + +--- + +## 四、上午常见套路与陷阱 + +| 套路 | 表现 | 应对 | +|------|------|------| +| 概念对打 | BLP/Biba、聚合/组合等两两对 | 先排违背定义的半对项 | +| 计算一步坑 | 子网、流水线、置换改一个条件 | 量纲验算 | +| 「一定/绝不」 | 绝对化 | 非定理慎用 | +| 英语末段 | NOT/EXCEPT、同义改写 | 见 [专业英语应试](/ruan-kao/soft-design/topics/english.html) | + +### 按卷简记(可选) + +| 卷别 | 错题域 | 错因 | 已二刷 | +|------|--------|------|--------| +| | | | | + +--- + +## 五、下午大题「换皮不换骨」 + +| 题类 | 常见背景 | 能力骨 | +|------|----------|--------| +| 第 1 大题 | 医疗、单车、房产、学校、物流 | DFD 平衡、补流、命名 | +| 第 2 大题 | 租赁、会议、代购、培训、创业项目 | E-R、范式、SQL、主外键 | +| 第 3 大题 | 图书馆、ETC、SNS、诊所、销售系统 | UML、类图、多重度 | +| 第 4 大题 | 假币、Hamilton、钢条切割、n 皇后、背包 | 边界、递归出口、DP 状态 | +| 第 5/6 大题 | 快餐套餐、跨平台预览、会员积分、文件通知 | 设计模式角色、Java/C++ 代码空 | + +--- + +## 六、稳定偏好(定性 · 非官方) + +- 下午算法重 **过程可读**,程序填空 **Java 与 C 均可能出现**([Java](/ruan-kao/soft-design/applied/java-fill.html) / [C](/ruan-kao/soft-design/applied/c-fill.html))。 +- 上午 **软工 + DS + DB** 块大,优先错题清零。 +- 2017-2019 的模式题集中出现 Builder、Bridge、State、Strategy、Observer;复习时先背这些 **意图 + 角色 + 类图形状**。 +- 算法题不追求竞赛难度,常在经典范式里考 **填空位置**:递归出口、状态转移、循环方向、剪枝判断。 + +### 6.1 高频模式识别卡 + +| 模式 | 题干信号 | 填空常见角色 | +|------|----------|--------------| +| Builder | 复杂对象构建过程相同、表示不同 | `Builder`、`ConcreteBuilder`、`Director`、`Product` | +| Bridge | 抽象与实现分离,多个维度独立变化 | `Abstraction`、`Implementor` | +| State | 对象行为随状态改变 | `Context`、`State`、`ConcreteState` | +| Strategy | 算法可替换 | `Context`、`Strategy`、`ConcreteStrategy` | +| Observer | 一对多通知,主题变化通知观察者 | `Subject`、`Observer`、`update` | + +更多见 [设计模式应试要点](/ruan-kao/soft-design/topics/patterns-exam.html)。 + +--- + +## 七、应答技巧(对解析时) {#stats-answer} + +| 场景 | 做法 | +|------|------| +| 对完仍不服 | 抄解析标准句,对照缺了哪些 **教材术语** | +| 计算题 | 核对公式与量纲,记一条验算口诀 | +| DFD / E-R | 命名是否抄题干;控制流是否误入 DFD | +| 算法/程序空 | 边界、`null`、循环起止;记入 [算法应试](/ruan-kao/soft-design/topics/pm-algorithm.html) 复习顺序 | +| 时间不够 | 先保 DFD、DB、UML **完整书写**,难题写步骤争分 | + +--- + +## 八、算法与程序填空 · 自建统计 {#stats-algo} + +> 与 [算法应试与范式要点](/ruan-kao/soft-design/topics/pm-algorithm.html) 第三节「范式表」配合:此处只留 **按卷登记** 的空白矩阵。 + +若拥有 **2009–2024** 等长卷,算法仍以 **最近 8~10 套** 为主统计;早年卷补 **范式盲区**。 + +### 范式 × 年份 + +| 年份-卷别 | 动态规划 | 贪心 | 分治/递归 | 回溯 | 图/搜索 | 备注 | +|-----------|----------|------|-----------|------|---------|------| +| 2017 上 | | | √ | | | 假币问题 | +| 2017 下 | | | | √ | √ | Hamilton 回路 | +| 2018 上 | √ | | | | | 钢条切割 | +| 2018 下 | √ | | | | | 序列/结构类 DP | +| 2019 上 | | | | √ | | n 皇后 | +| 2019 下 | √ | | | | | 0-1 背包 | +| 20×× | | | | | | 自填 | + +### 程序填空:语言 × 年份 + +| 年份-卷别 | C++/Java 载体 | 主要考点关键词 | +|-----------|---------------|----------------| +| 2017 上 | C++ / Java | Builder | +| 2017 下 | C++ / Java | Bridge | +| 2018 上 | C++ / Java | Builder | +| 2018 下 | C++ / Java | State | +| 2019 上 | Java / C++ | Strategy | +| 2019 下 | C++ / Java | Observer | +| 20×× | 自填 | 自填 | + +填完后,**连续偏低**的列回到 [算法应试](/ruan-kao/soft-design/topics/pm-algorithm.html) 调整复习顺序。 + +--- + +## 相关 + +- [专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html) +- [考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html) +- [算法应试与范式要点](/ruan-kao/soft-design/topics/pm-algorithm.html) +- [设计模式应试要点](/ruan-kao/soft-design/topics/patterns-exam.html) +- [专业英语应试](/ruan-kao/soft-design/topics/english.html)(文末汇总 **上午 / 下午** 真题梳理链接) diff --git "a/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\347\256\227\346\263\225\345\272\224\350\257\225\344\270\216\350\214\203\345\274\217\350\246\201\347\202\271.md" "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\347\256\227\346\263\225\345\272\224\350\257\225\344\270\216\350\214\203\345\274\217\350\246\201\347\202\271.md" new file mode 100644 index 000000000..b94285c30 --- /dev/null +++ "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\347\256\227\346\263\225\345\272\224\350\257\225\344\270\216\350\214\203\345\274\217\350\246\201\347\202\271.md" @@ -0,0 +1,97 @@ +--- +title: 算法应试与范式要点 +permalink: /ruan-kao/soft-design/topics/pm-algorithm.html +--- + +# 算法应试与范式要点 + +## 一、真实性说明(必读) + +- **官方不公开标准题库**;回忆版表述可能与原卷有出入。 +- 本文 **不伪造「某年必考某算法」**;「考频」为 **范式层级** 的定性归纳。 +- **按卷统计的空白表**(范式×年份、程序语言×年份)见 **[真题统计与命题套路 § 算法与程序填空统计](/ruan-kao/soft-design/topics/paper-patterns.html#stats-algo)**,请用同一套真题来源逐卷自填。 + +--- + +## 二、阅卷友好书写(简表) + +| 书写行为 | 效果 | +|----------|------| +| 变量名与题干 **一致** | 减少误判 | +| **边界**(`null`、`0`、`n-1`)先写 | 易拿步骤分 | +| 循环起止与题面下标约定一致 | 避免连锁错 | +| 不留白 | 空白 = 失分 | + +--- + +## 三、算法范式 · 定性考频与复习要点 + +> **高 / 中 / 低** 指在公开回忆卷与教辅中的常见程度,**非官方**。 + +| 范式 | 考频(定性) | 典型得分空 | 快速拿分 | +|------|--------------|------------|----------| +| **动态规划** | 高 | 状态、`dp` 转移、循环顺序、初值 | 先写 `dp[i]` 含义一行;01 背包内层常 **逆序** | +| **贪心** | 高 | 排序关键字、`if`、累加器初值 | 按题干提示属性排序 | +| **分治** | 中 | `mid`、递归边界、`merge`/`partition` | `mid = lo + (hi-lo)/2` 防溢出 | +| **回溯** | 中 | 选/不选、撤销、剪枝 | `dfs` 模板:出口 → for 尝试 → 回溯 | +| **双指针 / 滑窗** | 中 | `left/right` 移动条件 | 先写合法窗口判定 | +| **图 BFS/DFS** | 中 | `visited`、队列、邻接表 | 网格题注意边界 | +| **链表 / 快慢指针** | 中 | `next` 顺序 | 先接后继再断链 | +| **二叉树递归** | 中 | 先/中/后序位置 | 空树 `return` 先写 | + +### 与 Java 程序填空的交汇 + +Java 常叠加 **集合、`String`、`Comparator`** 等空,详见 [Java程序填空](/ruan-kao/soft-design/applied/java-fill.html)。复习:**范式模板 + Java API 小块** 并行。 + +--- + +## 四、复习侧重(推测 · 仅供参考) + +1. 仍以 **可读过程 + 少量关键空** 为主。 +2. 载体多为栈、队列、哈希、二叉树、图(含网格 BFS)。 +3. **Java 与 C 并行准备** 程序填空,以当年卷面为准。 +4. 极冷门数论在设计师下午 **性价比低**。 + +### 4.1 2017-2019 第四题样本带来的训练顺序 + +| 范式 | 样本题型 | 优先训练的空 | +|------|----------|--------------| +| 分治/递归 | 假币问题 | 递归规模、终止条件、左右区间 | +| 回溯/图搜索 | Hamilton 回路、n 皇后 | `visited`、冲突判断、递归出口、撤销选择 | +| 动态规划 | 钢条切割、序列结构、0-1 背包 | 状态定义、初值、转移、循环方向 | + +**训练顺序**:先 DP(背包/切割)→ 回溯(n 皇后/路径)→ 分治递归。贪心、双指针、树链表保持模板熟悉,但不要挤掉前三类时间。 + +--- + +## 五、考场时间策略 + +| 阶段 | 建议 | +|------|------| +| 第一轮 | 算法相关题 **限时**,强制写边界 | +| 第二轮 | 只刷 **错题范式**,同类连做 3 道 | +| 考前 | 过一遍本节 **范式表** + Java 常考 API(各约 10 min) | + +```mermaid +flowchart LR + A[读题 2 min] --> B[判范式 1 min] + B --> C[边界与初值 2 min] + C --> D[核心空 5-8 min] + D --> E[小样手推 2 min] +``` + +--- + +## 六、维护建议 + +固定一套真题来源;每做一套在 [真题统计](/ruan-kao/soft-design/topics/paper-patterns.html#stats-algo) **增一行**——两个月后「个人考频」会清晰到不必依赖二手统计文。仓库不收录真题原文。 + +--- + +## 相关 + +- [专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html) +- [真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html) +- [算法设计填空](/ruan-kao/soft-design/applied/algo-fill.html) +- [考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html) +- [专业英语应试](/ruan-kao/soft-design/topics/english.html)(文末汇总 **上午 / 下午** 真题梳理链接) diff --git "a/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\350\200\203\350\257\225\346\212\200\345\267\247\344\270\216\345\244\215\344\271\240\350\267\257\347\272\277.md" "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\350\200\203\350\257\225\346\212\200\345\267\247\344\270\216\345\244\215\344\271\240\350\267\257\347\272\277.md" new file mode 100644 index 000000000..95ebf067e --- /dev/null +++ "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\350\200\203\350\257\225\346\212\200\345\267\247\344\270\216\345\244\215\344\271\240\350\267\257\347\272\277.md" @@ -0,0 +1,235 @@ +--- +title: 考试技巧与复习路线 +permalink: /ruan-kao/soft-design/topics/exam-skills.html +--- + +# 考试技巧与复习路线 + +> 软考官方不公开标准题库;下文为 **考场策略 + 时间分配 + 可执行清单**,与 [基础知识](/ruan-kao/soft-design/basics.html)、[应用技术](/ruan-kao/soft-design/applied.html) 的知识点条文配合使用。真题编排与矩阵统计见 **[真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html)**;算法范式见 **[算法应试与范式要点](/ruan-kao/soft-design/topics/pm-algorithm.html)**。高密度背诵块见 **[专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html)**。 + +## 〇、当年考务与卷面(以官方与准考证为准) + +报名、批次、**纸笔或机考**、是否**科目连考**、单科最短/最长作答时长、能否把剩余时间带入下一科等,**一律以当年 [中国计算机技术职业资格网](https://www.ruankao.org.cn/) 发布的考试计划、报名地通知及本人准考证说明为准**。下文按传统「上午 150 min + 下午 150 min、下午六道大题」编写能力训练;若你所在批次为**机考连考**,请把本节当作「能力不变、节奏要调」的补丁。 + +| 备考动作 | 目的 | +|----------|------| +| 打印或收藏准考证上的 **科目顺序、总时长、可交卷时间** | 避免临场才发现时间合并或界面分栏 | +| 在模拟软件或 Word 里各练 **1~2 次** DFD / 简单类图 / 表格化 SQL | 机考下手速度≠纸笔速度 | +| 确认 **草稿纸、计算器、输入法** 是否允许 | 减少违规与心态波动 | + +**若实施两科连考、时间可流转**:建议在总时长里自留「硬性切分点」——例如第一科预留 **不少于应用技术常用块**(见下文下午时间预算)再交卷,避免「上午恋战 → 下午大题写不完」。 + +--- + +## 一、试卷参数与目标分 + +| 项目 | 科目一(基础知识) | 科目二(应用技术) | +|------|-------------------|-------------------| +| 时长 | 以准考证为准(常见 **150 min**;连考时可能并入总时长) | 同上 | +| 题型 | **75 道单选**(每题 1 分) | **六道主观大题**(常见为填空 / 简答 / 作图等组合;**题量与分值以当年题本为准**) | +| 及格 | 45 / 75(两科**同时**过线) | 同上 | + +| 科目 | 复习目标(建议) | +|------|------------------| +| 基础知识 | 稳定 **52+**,留波动空间 | +| 应用技术 | 稳定 **50+**,避免一题崩盘 | + +官方安排以 [中国计算机技术职业资格网](https://www.ruankao.org.cn/exam/plan.html) 与 [软件设计师考试说明](https://www.ruankao.org.cn/article/content/ksjs/02_15.html) 当年页面为准。 + +--- + +## 一点五、手边 PDF / 纸质真题怎么用(提高准确率) + +与 [真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html)「零节」一致,把资料分成 **题面** 与 **解析**,闭卷限时只做前者。 + +| 步骤 | 做法 | 避免 | +|------|------|------| +| 1. 限时 | 上午按 75 题节奏;下午按六道大块计时 | 边做边翻书 = 假高分 | +| 2. 红笔只标「错因类」 | 概念 / 公式 / 审题 / 时间到蒙 | 只抄正确答案不归类 | +| 3. 对解析写一句「**得分句式**」 | 抄教材术语与标准表述 | 用自己的口语代替阅卷词 | +| 4. 填入矩阵 | 上午「模块×年份」、下午「题型×年份」 | 多处重复记错题 | + +**扫描版 PDF**(无法复制文字时):用截图或打印单页,在纸上只写 **关键词 + 错因编号**,同样填入统计矩阵;统计的是你的弱项分布,不必依赖 OCR。 + +--- + +## 二、复习先后顺序(先下午模板,再上午梯队) + +```mermaid +flowchart LR + A[限时 1 套近年整卷摸底] --> B[下午题型模板] + B --> C[上午第一梯队模块] + C --> D[第二梯队速记表] + D --> E[专业英语词表] + E --> F[整卷限时与错题回刷] +``` + +**下午优先**:主观题 **套路稳定、步骤分明显**;DFD、数据库、UML、算法、程序填空练熟后,上午大量概念题反而更好归类。 + +--- + +## 三、上午:模块梯队与抢分 + +### 3.1 第一梯队(优先清零错题) + +1. 软件工程 + UML + **设计模式**(与 [设计模式应试要点](/ruan-kao/soft-design/topics/patterns-exam.html)、[UML与设计模式](/ruan-kao/soft-design/applied/uml-patterns.html) 对照) +2. 数据结构与算法 +3. 数据库 +4. 计算机网络 +5. 操作系统 + +### 3.2 第二梯队(概念为主) + +组成原理、编译、安全与知识产权:**速记表 + 真题错题**,不深钻偏门。 + +### 3.3 卷末英语 + +不必通译全文;步骤与词表见 **[专业英语应试](/ruan-kao/soft-design/topics/english.html)**。 + +### 3.4 上午抢分动作 + +| 技巧 | 做法 | +|------|------| +| 控时 | 75 题 / 150 min,概念题 ~1 min,计算题 ≤3 min,超时先蒙并标记 | +| 验算 | 流水线、子网、置换等用 **量纲 / 数量级** 快速验错 | +| 绝对化 | 「一定」「绝不」「只有」非定理类 **优先怀疑** | +| 排除 | 两选项语义相反常有一真;三同类一异类重点查异类 | + +--- + +## 四、下午:六道大题与时间 + +下午 **换业务背景不换能力**:按题型备考,不按行业。 + +| 常见位置 | 考查 | 抢分要点 | +|----------|------|----------| +| 第 1 题 | DFD | 平衡、补流、命名抄题干;**不画控制流** | +| 第 2 题 | 数据库 E-R / 范式 / SQL | 主外键写全;范式按定义写步骤 | +| 第 3 题 | UML / **设计模式** | 关系符号、多重度;模式名用教材英文 | +| 其后 | 算法伪代码 + **Java 或 C** 程序填空 | 边界手推;`null` / 指针 / 集合 API | + +| 阶段 | 建议 | +|------|------| +| 开卷 5~8 min | 浏览六道分值,先做最顺手两题 | +| DFD + DB | 分值高、套路固定,先保 **结构完整** | +| 算法 + 程序 | 留足纸上推演,少涂改 | + +**下午时间预算(150 min 六道时的参考刻度,可按个人强弱±5 min 调整)** + +| 大题类型 | 建议上限 | 最低交付物 | +|----------|----------|------------| +| DFD | 35~45 min | 顶层/0 层、加工与数据存储命名、**平衡检查**口头或简要写出 | +| 数据库 | 30~40 min | E-R 或关系模式、范式判定 **步骤句**、SQL 骨架 | +| UML / 模式 | 20~30 min | 关系与多重度、模式 **英文名** + 角色 | +| 算法填空 | 25~35 min | 边界、`dp`/递归含义、循环起止与方向 | +| 程序填空 | 20~30 min | 每空一句「语义」再填 API/指针 | + +若某题超过上限仍卡壳:**先写步骤分与关键词**,跳过后再回卷;下午崩盘多源于「一题钉死」而非不会。 + +书写:**教材术语**、作图规范、**分步给分**;不会也要写关键词,**空白不得分**。 + +--- + +## 五、30 / 14 / 7 天路线(摘要) + +### 30 天以上 + +| 阶段 | 天数 | 动作 | +|------|------|------| +| 摸底 | 1~2 | 限时 1 套近年卷,建错题桶 | +| 下午模板 | 7~10 | DFD、DB、UML、算法、Java/C 每类 ≥3 题写满步骤 | +| 上午第一梯队 | 8~10 | 软工、DS、DB、OS、网络 | +| 上午第二梯队 | 4~5 | 组成、编译、安全、法规、英语速记 | +| 冲刺 | 5~7 | 每 2 天 1 套整卷 + 复盘 | + +### 14 天 + +第 1~4 天:下午 DFD + DB + UML;第 5~8 天:算法 + 程序填空;第 9~11 天:上午第一梯队错题;第 12~14 天:2 套限时整卷。 + +### 7 天 + +D1~D2:DFD+DB 各 2 题;D3:UML/模式+算法;D4:程序填空;D5:上午第一梯队速刷;D6:上午第二梯队;D7:**只看错题与模板,不刷新题**。 + +--- + +## 六、下午五类题 · 拿分检查表(精简) + +### DFD + +父子平衡;缺失流从题干名词/动词找;加工「动宾」命名;**不把控制当数据流**。 + +### 数据库 + +`1:n` 外键在 n 端;`m:n` 独立联系表;范式按 1NF→2NF→3NF/BCNF **写步骤**;SQL 先 `FROM/JOIN` 再 `WHERE/GROUP BY/HAVING`。 + +### UML 与设计模式 + +类图关系与多重度抄题干;`<>` 必走、`<>` 条件触发;模式名与角色类 **教材一致**(详见 [设计模式应试要点](/ruan-kao/soft-design/topics/patterns-exam.html))。 + +### 算法填空 + +先判 DP/贪心/回溯/分治/图搜索;边界 `0`/`n-1`/空;01 背包内层常 **逆序**。 + +### Java / C 程序填空 + +Java:`Map` 计数、`null`、`Comparator`;C:指针、`'\0'`、递归出口。**必须手推小样**。 + +--- + +## 七、上午易混「对打」速记 + +| 对比 | 记法 | +|------|------| +| 内聚 / 耦合 | 高内聚、低耦合 | +| 黑盒 / 白盒 | 黑盒看功能,白盒看路径 | +| 适配 / 装饰 / 代理 | 适配改接口;装饰加职责;代理控访问 | +| 2NF / 3NF / BCNF | 2NF 去部分依赖;3NF 去传递;BCNF 决定因素须为候选键 | +| BLP / Biba | BLP 保密;Biba 完整 | +| TCP / UDP | TCP 可靠;UDP 轻量 | + +--- + +## 八、错题闭环与考前 30 分钟 + +**错题格式**(两周后只刷错题桶): + +```md +### 题型 / 模块 +- 错因:概念 / 公式 / 审题 / 时间 +- 正确规则:一句话 +- 下次检查:题干关键词 +``` + +| 科目 | 考前只看 | +|------|------------| +| 上午 | 排序稳定性、树图、范式、PV/死锁、TCP/IP、UML 关系、GoF 关键词、[英语词表](/ruan-kao/soft-design/topics/english.html) | +| 下午 | DFD 平衡、E-R 与范式步骤、SQL 顺序、类图多重度、模式角色、DP 边界、Java/C 空值 | + +**不要看新题。** + +--- + +## 九、从「背了」到「做对」:准确率专项 + +| 现象 | 对策 | +|------|------| +| 超时做对 | 仍算失分风险;**收紧到 75/150 min** 再判对错 | +| 限时做错但「一看就会」 | 归入 **审题** 或 **检索失败**:题干圈出「不正确的是/除了」 | +| 同类题反复错 | 回到 [专题速记](/ruan-kao/soft-design/topics/topic-cram.html) 对应表,**只背「定义句 + 反例一句」** | +| 下午步骤被扣分 | 对照解析补 **教材原词**(范式名、关系名、模式英文名) | + +**审题三圈(上午尤其适用)** + +1. 问的是「正确」还是「**不正确** / 除了」? +2. 计算题:**单位、是否含本身、边界 n=0 或空**? +3. 场景题:落点是 **生命周期阶段**、**测试级别** 还是 **文档产物**? + +--- + +## 相关 + +- [专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html)(知识点→考点→拿分动作速背) +- [真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html) +- [算法应试与范式要点](/ruan-kao/soft-design/topics/pm-algorithm.html) +- [设计模式应试要点](/ruan-kao/soft-design/topics/patterns-exam.html) +- [专业英语应试](/ruan-kao/soft-design/topics/english.html)(文末汇总 **上午 / 下午** 真题梳理链接) diff --git "a/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\350\256\276\350\256\241\346\250\241\345\274\217\345\272\224\350\257\225\350\246\201\347\202\271.md" "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\350\256\276\350\256\241\346\250\241\345\274\217\345\272\224\350\257\225\350\246\201\347\202\271.md" new file mode 100644 index 000000000..a1079db8d --- /dev/null +++ "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\350\256\276\350\256\241\346\250\241\345\274\217\345\272\224\350\257\225\350\246\201\347\202\271.md" @@ -0,0 +1,95 @@ +--- +title: 设计模式应试要点 +permalink: /ruan-kao/soft-design/topics/patterns-exam.html +--- + +# 设计模式应试要点(下午高频) + +> 下午常在 **UML 类图 / 场景描述** 中考 **GoF 模式识别与选型**。细节与例题见 **[UML与设计模式](/ruan-kao/soft-design/applied/uml-patterns.html)**;本文只保留 **阅卷友好 + 易混排除 + 速记表**,便于考前扫读。 + +## 一、下午拿分动作(检查表) + +| 检查项 | 做法 | +|--------|------| +| 类图关系 | 继承、实现、关联、聚合、组合分清;**菱形实心=组合**(同生共死) | +| 多重度 | 从题干「一名/多名/至少一个」抄到图上 | +| 用例关系 | `<>` **必走**;`<>` **条件触发** | +| 模式名称 | 写 **教材标准英文名** + 典型角色类名,忌口语 | + +**高频失分**:聚合/组合画反;**策略 / 状态 / 模板方法** 混淆;把外观当成适配器。 + +### 1.1 2017-2019 模式题样本 + +| 模式 | 出题信号 | 先背角色 | +|------|----------|----------| +| Builder | 同样构建过程创建不同表示;复杂对象分步装配 | `Builder`、`ConcreteBuilder`、`Director`、`Product` | +| Bridge | 平台/格式等两个维度独立变化 | `Abstraction`、`RefinedAbstraction`、`Implementor` | +| State | 会员等级、订单状态等状态变化影响行为 | `Context`、`State`、`ConcreteState` | +| Strategy | 算法族可替换,运行时选择具体策略 | `Context`、`Strategy`、`ConcreteStrategy` | +| Observer | 一个对象变化,多个对象自动收到通知 | `Subject`、`Observer`、`attach/detach/notify/update` | + +这些不是押题,而是近年解析样本中的典型载体。复习时先确保它们能 **看场景秒判 + 写出角色名**。 + +--- + +## 二、易混模式「一句话」 + +| 模式组 | 考场分辨 | +|--------|----------| +| **策略 vs 状态** | 策略:互换算法族;状态:对象内在状态变导致行为变 | +| **模板方法 vs 策略** | 模板:骨架在父类、子类填钩子;策略:组合不同算法对象 | +| **适配器 vs 装饰器 vs 代理** | 适配:接口不兼容转接;装饰:动态加职责;代理:控制访问 | +| **工厂三件套** | 简单工厂(非 GoF 名)/工厂方法(子类决定产品)/抽象工厂(产品族) | +| **外观** | 子系统统一入口,**不新增业务规则** | + +--- + +## 三、GoF 意图速扫(下午选项常见) + +| 创建型 | 一句话 | +|--------|--------| +| Singleton | 全局唯一实例 | +| Factory Method | 子类决定实例化哪一个产品类 | +| Abstract Factory | 创建 **一族** 相关对象 | +| Prototype | 用克隆代替 new | +| Builder | 分步构造复杂对象 | + +| 结构型 | 一句话 | +|--------|--------| +| Adapter | 把不兼容接口转成客户端期望 | +| Bridge | 抽象与实现分离扩展 | +| Composite | 树形部分-整体 | +| Decorator | 包装对象动态加职责 | +| Facade | 对外统一简单接口 | +| Flyweight | 共享细粒度对象 | +| Proxy | 为对象提供替身以控制访问 | + +| 行为型 | 一句话 | +|--------|--------| +| Chain of Responsibility | 沿链传递请求直到被处理 | +| Command | 请求封装为对象,可撤销/队列 | +| Interpreter | 文法解释(少考大题) | +| Iterator | 顺序访问聚合元素 | +| Mediator | 多对象间通过中介通信 | +| Memento | 捕获状态以便恢复 | +| Observer | 一对多依赖,状态变通知观察者 | +| State | 状态对象改变行为 | +| Strategy | 封装可互换算法 | +| Template Method | 骨架固定、子类实现步骤 | +| Visitor | 在不改类结构下定义新操作 | + +--- + +## 四、与上午选择题的联动 + +上午常考 **模式意图、类图关系、内聚耦合**。可与 [软件工程与面向对象](/ruan-kao/soft-design/basics/se-oo.html) 一起过一遍 **定义对比**,不必重复背长篇教材。 + +--- + +## 相关 + +- [专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html) +- [UML与设计模式](/ruan-kao/soft-design/applied/uml-patterns.html) +- [考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html) +- [真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html) +- [专业英语应试](/ruan-kao/soft-design/topics/english.html)(文末汇总 **上午 / 下午** 真题梳理链接) diff --git "a/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/README.md" "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/README.md" new file mode 100644 index 000000000..b8e9d8bf6 --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/README.md" @@ -0,0 +1,22 @@ +--- +title: 基础知识 +permalink: /ruan-kao/soft-design/basics.html +--- +# 基础知识(上午) + +每篇文档将 **知识点、易错难点、真题常见设问** 写在一起,避免「看完重点还要翻难点」的重复劳动;文末附 **速记表** 供背诵与进考场前过一遍。 + +**建议搭配**:[专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html)、[考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html)、[真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html)、[专业英语应试](/ruan-kao/soft-design/topics/english.html)。 + +## 文档索引 + +| 文档 | 核心 | +|------|------| +| [计算机组成与体系结构](/ruan-kao/soft-design/basics/computer-org.html) | 编码、校验、Cache、流水线、RAID、可靠性 | +| [操作系统](/ruan-kao/soft-design/basics/os.html) | PV、死锁、调度、分页置换、磁盘 | +| [数据结构与算法](/ruan-kao/soft-design/basics/dsa.html) | 复杂度、树图、排序、哈希、算法思想 | +| [程序设计语言与编译原理](/ruan-kao/soft-design/basics/lang-compile.html) | 文法、自动机、编译阶段、传参作用域 | +| [数据库系统](/ruan-kao/soft-design/basics/database.html) | 范式、事务并发、封锁、关系代数 | +| [计算机网络](/ruan-kao/soft-design/basics/network.html) | TCP/IP、子网、协议端口、拥塞 | +| [软件工程与面向对象](/ruan-kao/soft-design/basics/se-oo.html) | 生命周期、测试、UML、模式、CMMI | +| [信息安全标准化与知识产权](/ruan-kao/soft-design/basics/security-legal.html) | CIA、密码、标准代号、著作权专利 | diff --git "a/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\344\277\241\346\201\257\345\256\211\345\205\250\346\240\207\345\207\206\345\214\226\344\270\216\347\237\245\350\257\206\344\272\247\346\235\203.md" "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\344\277\241\346\201\257\345\256\211\345\205\250\346\240\207\345\207\206\345\214\226\344\270\216\347\237\245\350\257\206\344\272\247\346\235\203.md" new file mode 100644 index 000000000..e1c12176f --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\344\277\241\346\201\257\345\256\211\345\205\250\346\240\207\345\207\206\345\214\226\344\270\216\347\237\245\350\257\206\344\272\247\346\235\203.md" @@ -0,0 +1,85 @@ +--- +title: 信息安全、标准化与知识产权 +permalink: /ruan-kao/soft-design/basics/security-legal.html +--- + +# 信息安全、标准化与知识产权 + +> **快拿分**:CIA 三性、对称/非对称场景、摘要/签名/MAC 区别、BLP/Biba 方向、常见攻击英文、GB/GB/T、著作权与专利客体——**概念对比题为主**,适合考前集中背诵。 + +## 一、知识与应试(考点·难点·知识点合一) + +### 1.1 安全基础 + +- **CIA**:机密性、完整性、可用性;扩展:认证、不可否认、审计。 +- **对称 vs 非对称**:AES/DES vs RSA/ECC;**混合加密**(对称加密数据、非对称保护密钥)。 +- **哈希**:抗碰撞;**数字签名** = 私钥签 + 公钥验(认证+不可否认);**MAC** 需共享密钥,不天然提供不可否认。 +- **PKI**:CA、证书、CRL/OCSP。 + +### 1.1.1 密码算法与使用场景 + +| 类别 | 常见算法 | 场景 | 考点 | +|------|----------|------|------| +| 对称加密 | DES、3DES、AES、RC5、IDEA | 大量明文加密 | 速度快,密钥分发难;DES 密钥 56 位,3DES 常按 112 位有效强度记 | +| 非对称加密 | RSA、ECC | 密钥交换、数字签名 | 速度慢,不适合直接加密大量数据 | +| 摘要/哈希 | SHA、MD5、HMAC | 完整性校验 | SHA-1 输出 160 位摘要;HMAC 结合共享密钥 | +| 数字签名 | RSA 签名、DSA 等 | 身份认证、不可否认 | 发送方私钥签名,接收方公钥验证 | + +**混合加密套路**:用对称密钥加密正文,再用接收方公钥保护对称密钥;HTTPS/TLS 类题常考这个组合思想。 + +### 1.2 访问控制与模型 + +- **DAC/MAC/RBAC**。 +- **BLP**(Bell-LaPadula):**不上读不下写** → 保**机密性**。 +- **Biba**:**不上写下不读** → 保**完整性**。 +- **〔易错〕**:BLP 与 Biba 方向**相反**,选项常对调挖坑。 + +### 1.3 攻击与防护 + +- 病毒、蠕虫、木马、钓鱼、DoS、中间人——**传播/触发方式**对比。 +- 防火墙(包过滤、状态检测、应用代理)、IDS/IPS 定位。 + +### 1.4 标准化 + +- **GB** 强制性国家标准,**GB/T** 推荐性;行业标准如 **SJ** 等了解即可。 +- **ISO、IEC、ITU**;IEEE 802 系列与局域网/Wi-Fi 对应(概念级)。 + +### 1.5 知识产权 + +- **著作权**:自动取得;**职务作品**权利归属(单位/个人依法律和合同约定)。 +- **专利**:发明、实用新型、外观设计;三性;**不授权客体**概括识记。 +- **开源许可证**:GPL「传染性」定性;合理使用边界选择题。 + +### 1.5.1 知识产权期限与客体 + +| 权利 | 产生 / 期限 | 高频判断 | +|------|-------------|----------| +| 软件著作权 | 软件开发完成之日起产生 | 不以登记为生效要件 | +| 署名权、修改权、保护作品完整权 | 不受保护期限制 | 常与发表权混淆 | +| 发表权、使用权、获得报酬权 | 通常为作者终身及死后 50 年 | 受时间限制 | +| 发明专利 | 申请日起 20 年 | 不能续展 | +| 实用新型专利 | 申请日起 10 年 | 不能续展 | +| 外观设计专利 | 申请日起 15 年 | 注意近年教材常按 15 年 | +| 商标权 | 到期可续展 | 与专利“不可延长”对比 | +| 商业秘密 | 无固定期限 | 前提是持续保密且有商业价值 | + +知识产权范围包括著作权、邻接权、专利权、商标权、商业秘密权、集成电路布图设计权;**物权不属于知识产权**。 + +### 1.6 法律法规(概念题) + +- 《网络安全法》《数据安全法》《个人信息保护法》:**分级、关键信息基础设施、处理个人信息合法性基础**——按教材或真题解析给出的要点记忆,勿背偏门条文号。 + +## 二、速记与背诵 + +| 模型 | 口诀 | +|------|------| +| BLP | 机密:不向上读、不向下写 | +| Biba | 完整:不向上写、不向下读 | + +- **签名 vs 摘要**:签名带密钥身份绑定;摘要防篡改需配合传输安全。 +- **大量数据加密用对称,密钥交换/签名用非对称,完整性校验用摘要。** + +## 三、考场检查 + +- 问「不可否认」:优先想**数字签名**,不是单纯对称加密。 +- 问「可用性」:选备份冗余、容灾、QoS 类选项,而非加密强度。 diff --git "a/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\223\215\344\275\234\347\263\273\347\273\237.md" "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\223\215\344\275\234\347\263\273\347\273\237.md" new file mode 100644 index 000000000..74aa3c7e6 --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\223\215\344\275\234\347\263\273\347\273\237.md" @@ -0,0 +1,49 @@ +--- +title: 操作系统 +permalink: /ruan-kao/soft-design/basics/os.html +--- + +# 操作系统 + +> **快拿分**:信号量初值与 P/V 后进程数、死锁四个条件与银行家安全序列、页面置换缺页次数、磁盘调度总移动磁道、调度算法的周转/带权周转——**计算题步骤分**靠写清公式。 + +## 一、知识与应试(考点·难点·知识点合一) + +### 1.1 进程、线程与调度 + +- **进程**:PCB 是进程存在的唯一标志;三态/五态迁移。 +- **线程**:共享地址空间与打开文件,**栈与寄存器**独立。 +- **调度算法**:FCFS;SJF(可能饥饿);**HRRN** \(=(等待+服务)/服务\);时间片轮转;多级反馈。 + - **〔真题〕**:算周转时间、带权周转、平均等待时间,注意「到达时间」是否相同。 + +### 1.2 同步互斥与死锁 + +- **临界区准则**:互斥、前进、有限等待。 +- **信号量**:P 减 1,<0 阻塞;V 加 1,≤0 唤醒等待队列中一个。生产者-消费者、读者-写者——**初值背熟**。 +- **死锁**:互斥、占有且等待、不可剥夺、循环等待;破坏其一可预防;**银行家**避免。 + - **〔难点〕**:安全性检查:Work、Finish 迭代;请求向量合法性(≤Need)。 + +### 1.3 存储管理 + +- **分页**:页表、多级页表省空间;**页面置换** LRU、FIFO、Clock;Belady 异常(FIFO)。 +- **虚拟内存**:局部性;缺页率与有效访存时间。 + - **〔易错〕**:抖动是频繁换页导致 CPU 利用率**反常**与缺页率**极高**。 + +### 1.4 文件与磁盘 + +- **文件分配**:连续(顺序快、碎片)、链接(无碎片、随机慢)、索引(支持随机)。 +- **磁盘调度**:FCFS、SSTF、SCAN、C-SCAN——**按请求序列算磁头移动总和**。 + +## 二、速记与背诵 + +| 概念 | 口诀/要点 | +|------|-----------| +| 死锁四条件 | 互占等环(互斥、占有等待、不可剥夺、循环等待) | +| 银行家 | 请求不超需求,试分配后找安全序列 | +| Spooling | 独占变共享,缓冲池+井管理 | +| 三级调度 | 作业调度、内存调度、进程调度(教材表述对齐选项) | + +## 三、考场检查 + +- PV 题:画表模拟几个时刻,防止 **V 唤醒次数** 算错。 +- 页面置换:题意「所给访问串」是否含 **预装入** 的初始页。 diff --git "a/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" new file mode 100644 index 000000000..66b3b329e --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237.md" @@ -0,0 +1,108 @@ +--- +title: 数据库系统 +permalink: /ruan-kao/soft-design/basics/database.html +--- + +# 数据库系统 + +> **快拿分**:范式判定(1NF~BCNF)、事务并发异常与隔离、封锁/XS 与两段锁、关系代数与 SQL 语义、E-R 转关系——**上午下午双线高频**,术语写全可抢步骤分。 + +### 范式阶梯(从「破坏什么」记) + +```mermaid +flowchart TD + N1["1NF:属性原子"] --> N2["2NF:消非主属性对码的部分依赖"] + N2 --> N3["3NF:消非主属性对非主属性的传递依赖"] + N3 --> N4["BCNF:每个 FD 左部都是超键"] +``` + +### 并发异常一眼表 + +| 现象 | 典型成因 | 与隔离级别关系(概念) | +|------|-----------|------------------------| +| 脏读 | 读到未提交数据 | 读已提交以上可避免 | +| 不可重复读 | 两次读之间被他人更新 | 可重复读以上可避免 | +| 幻读 | 两次读之间被他人插入/删除行 | 串行化 / 部分实现用间隙锁 | + +## 一、知识与应试(考点·难点·知识点合一) + +### 1.1 模型与三级模式 + +- **三级模式两级映像**:外模式-模式-内模式;**逻辑/物理独立性**由哪级映像保证。 +- **完整性**:实体、参照、用户定义;主码/外码约束。 + +### 1.1.1 三级模式与设计阶段 + +| 层次 / 阶段 | 产物 | 拿分关键词 | +|-------------|------|------------| +| 需求分析 | 数据流图、数据字典、需求说明书 | 确定系统边界与用户需求 | +| 概念结构设计 | E-R 图 | 按用户观点建模,独立于具体 DBMS | +| 逻辑结构设计 | 关系模式、规范化 | 将 E-R 图转换为关系模式 | +| 物理结构设计 | 存储结构、索引、存取路径 | 面向具体 DBMS 与性能 | +| 实施 | 建库、装载数据、编写应用 | 从设计落地 | +| 运行维护 | 监控、备份、调优、变更 | 保证系统长期可用 | + +**三级模式**:外模式面向用户视图,模式是数据库全局逻辑结构,内模式描述物理存储。外模式/模式映像保证逻辑独立性,模式/内模式映像保证物理独立性。 + +### 1.2 关系代数与 SQL + +- **选择 \(\sigma\)** 行、**投影 \(\pi\)** 列;自然连接去重复列;**除法**表达「全部」类查询。 +- **SQL**:`WHERE` 在分组前,`HAVING` 在分组后;`COUNT(*)` 与 `COUNT(col)` 对 NULL 区别。 +- **〔真题〕**:`GROUP BY` 列与 `SELECT` 非聚合列一致性。 + +### 1.3 范式与分解 + +- **1NF** 原子性;**2NF** 消除非主属性对码的**部分依赖**;**3NF** 消除**传递依赖**;**BCNF** 左部含超键。 +- **〔难点〕**:无损分解检验、BCNF 分解可能**丢失依赖**——按题意选「保持依赖」或「到 BCNF」。 +- **〔易错〕**:候选码求法:从不出现在 FD **右部**的属性入手尝试闭包。 + +### 1.3.1 范式判定一眼表 + +| 范式 | 通过条件 | 常见题干信号 | +|------|----------|--------------| +| 1NF | 每个属性不可再分 | 表中出现“多个电话/多值属性”通常违反 | +| 2NF | 在 1NF 基础上,非主属性完全依赖候选码 | 联合主键的一部分能推出非主属性 | +| 3NF | 在 2NF 基础上,非主属性不传递依赖候选码 | `主键 -> A -> B`,且 B 是非主属性 | +| BCNF | 每个非平凡函数依赖的决定因素都是超键 | 左部不是候选码/超键 | +| 4NF | 消除非平凡多值依赖 | 多个相互独立的多值事实放在同一关系 | + +**全码**:关系模式的所有属性共同构成候选码。遇到“所有属性都是主属性”时,2NF/3NF 的判断要格外小心。 + +### 1.3.2 弱实体与 E-R 符号 + +| E-R 元素 | 常见图形 | 关系化要点 | +|----------|----------|------------| +| 实体 | 矩形 | 转换为关系表 | +| 弱实体 | 双矩形 | 主键通常 = 强实体主键 + 部分键 | +| 联系 | 菱形 | `m:n` 转独立联系表 | +| 识别联系 | 双菱形 | 弱实体依赖强实体存在 | +| 属性 | 椭圆 | 转换为表字段 | +| 多值属性 | 双椭圆 | 常单独成表 | +| 派生属性 | 虚线椭圆 | 通常不直接存储 | + +### 1.4 事务与并发 + +- **ACID**;并发问题:丢失更新、脏读、不可重复读、幻读。 +- **封锁**:共享 S、排他 X;一级/二级/三级协议与禁止现象对应。 +- **两段锁**:加锁段与解锁段,保证可串行化。 +- **恢复**:日志 **REDO**(已提交)/ **UNDO**(未提交)。 + +## 二、速记与背诵 + +| 范式 | 记法 | +|------|------| +| 1NF | 属性原子,不放重复组 | +| 2NF | 无部分依赖(非主属性完全依赖码) | +| 3NF | 无传递依赖(非主属性不依赖非主属性) | +| BCNF | 每个 FD 左部都是超键 | + +- **幻读**:同一查询两次**行数变多**(与不可重复读区分看题干)。 + +## 三、下午关联 + +- E-R 转关系、补全主外键、写 `CREATE TABLE` 约束——与 [数据库设计](/ruan-kao/soft-design/applied/db-design.html) 同一套能力。 + +## 四、考场检查 + +- 写 FD 闭包、候选码时 **符号与下标** 与题干一致。 +- SQL 填空:连接条件漏写会变成笛卡尔积。 diff --git "a/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\225\260\346\215\256\347\273\223\346\236\204\344\270\216\347\256\227\346\263\225.md" "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\225\260\346\215\256\347\273\223\346\236\204\344\270\216\347\256\227\346\263\225.md" new file mode 100644 index 000000000..74de6934b --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\225\260\346\215\256\347\273\223\346\236\204\344\270\216\347\256\227\346\263\225.md" @@ -0,0 +1,77 @@ +--- +title: 数据结构与算法 +permalink: /ruan-kao/soft-design/basics/dsa.html +--- + +# 数据结构与算法 + +> **快拿分**:复杂度阶的比较、排序**稳定性**与一趟排序结果、哈夫曼 WPL、图的拓扑/关键路径、哈希冲突处理——上午极高频;下午算法题则抓 **循环边界与变量初值**。 + +## 一、知识与应试(考点·难点·知识点合一) + +### 1.1 复杂度与线性结构 + +- **渐近**:\(O,\Omega,\Theta\);递归式常见用展开法或主定理。 +- **栈队列**:表达式、括号;**循环队列**判满(牺牲单元或 size)。 +- **〔真题〕**:问「平均/最坏」须看清题干限定。 + +### 1.1.1 复杂度阶速记 + +\[ +O(1) < O(\log n) < O(n) < O(n\log n) < O(n^2) < O(n^3) < O(2^n) < O(n!) +\] + +数据结构三要素:**逻辑结构、存储结构、数据运算**。题目若问“数据结构包括什么”,不要只答线性表、树、图这些逻辑结构。 + +### 1.2 树与堆 + +- **二叉树性质**:\(n_0=n_2+1\);深度与结点数关系。 +- **BST**:中序有序;退化链最坏 \(O(n)\)。 +- **堆**:建堆 \(O(n)\);堆排序**不稳定**。 +- **哈夫曼**:\(n\) 叶子 → \(2n-1\) 个结点;**WPL** 最小。 + +### 1.3 图 + +- **存储**:邻接矩阵稠密、邻接表稀疏。 +- **遍历**:BFS/DFS;**拓扑排序**(无环 DAG);**关键路径**(AOE 最早/最迟时间)。 +- **〔易错〕**:Dijkstra 不适用**负权边**(除非题改)。 + +### 1.4 排序与查找 + +| 排序 | 平均时间 | 最坏时间 | 空间 | 稳定? | +|------|----------|----------|------|--------| +| 直接插入 | \(O(n^2)\) | \(O(n^2)\) | \(O(1)\) | 稳 | +| 冒泡 | \(O(n^2)\) | \(O(n^2)\) | \(O(1)\) | 稳 | +| 简单选择 | \(O(n^2)\) | \(O(n^2)\) | \(O(1)\) | 不稳 | +| 希尔 | 与增量有关 | 与增量有关 | \(O(1)\) | 不稳 | +| 快排 | \(O(n\log n)\) | \(O(n^2)\) | \(O(\log n)\) | 不稳 | +| 堆排 | \(O(n\log n)\) | \(O(n\log n)\) | \(O(1)\) | 不稳 | +| 归并 | \(O(n\log n)\) | \(O(n\log n)\) | \(O(n)\) | 稳 | +| 基数 | \(O(d(n+r))\) | \(O(d(n+r))\) | \(O(r)\) | 稳 | + +- **B+ 树**:叶子链、适合 DB 索引(与 B 树对比为常考点)。 + +### 1.4.1 查找高频 + +| 查找 | 前提 | 平均/典型复杂度 | 考点 | +|------|------|------------------|------| +| 顺序查找 | 无序/有序均可 | \(O(n)\) | 监视哨可减少判断 | +| 折半查找 | 有序顺序表 | \(O(\log n)\) | 不能用于链表 | +| 分块查找 | 块间有序、块内可无序 | 索引查找 + 块内查找 | 常考“块间有序,块内无序” | +| 哈希查找 | 哈希函数与冲突处理 | 接近 \(O(1)\) | 装填因子影响冲突 | + +### 1.5 算法思想 + +- **分治、DP、贪心、回溯**:题干关键词「最优子结构+重叠子问题」→DP;「局部最优」→贪心;「解空间树剪枝」→回溯。 + +## 二、速记与背诵 + +- **不稳记三堆希快选**(堆、希尔、快排、选择排序——按常见考法)。 +- **稳定记直冒归基**(直接插入、冒泡、归并、基数)。 +- **KMP**:`next[j]` = 前缀后缀最长公共长度相关(按教材定义填)。 +- **完全二叉树高度**:\(\lfloor\log_2 n\rfloor+1\) 与 \(\lceil\log_2(n+1)\rceil\) 等价类表述看清选项。 + +## 三、考场检查 + +- 排序题:问「某一趟之后序列」必须 **按该算法真实执行**,不可凭感觉。 +- 图题:拓扑有序序列**可能不唯一**,选项中合法即可。 diff --git "a/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\347\250\213\345\272\217\350\256\276\350\256\241\350\257\255\350\250\200\344\270\216\347\274\226\350\257\221\345\216\237\347\220\206.md" "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\347\250\213\345\272\217\350\256\276\350\256\241\350\257\255\350\250\200\344\270\216\347\274\226\350\257\221\345\216\237\347\220\206.md" new file mode 100644 index 000000000..7ab24c36d --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\347\250\213\345\272\217\350\256\276\350\256\241\350\257\255\350\250\200\344\270\216\347\274\226\350\257\221\345\216\237\347\220\206.md" @@ -0,0 +1,59 @@ +--- +title: 程序设计语言与编译原理 +permalink: /ruan-kao/soft-design/basics/lang-compile.html +--- + +# 程序设计语言与编译原理 + +> **快拿分**:文法类型与自动机对应、句柄在分析树的位置、编译各阶段任务、传值/传址/静态动态作用域、FIRST/FOLLOW 概念题——**偏记准定义**,大计算较少。 + +## 一、知识与应试(考点·难点·知识点合一) + +### 1.1 文法与自动机 + +- **Chomsky 分层**:0 短语结构、1 上下文有关、2 **CFG**、3 **正则**;2 型对应下推自动机,3 型对应有限自动机。 +- **句柄**:最左**直接短语**(分析树叶子向上找)。 +- **〔真题〕**:「配对括号」语言不能用**仅正则**描述(需栈)。 + +### 1.2 语法分析 + +- **LL(1)**:左递归消除、FIRST/FOLLOW、预测分析表无多重入口。 +- **LR 族**:LR0/SLR/LR1/LALR 冲突类型(移进-归约、归约-归约)。 +- **〔难点〕**:FIRST/FOLLOW 含 \(\varepsilon\) 时的迭代至不动点。 + +### 1.3 编译过程与优化 + +- **阶段**:词法(正则/DFA)→ 语法 → **语义**(类型检查等)→ 中间代码 → **优化** → 目标代码;符号表多遍使用。 +- **中间表示**:四元式、三元式、间接三元式——**可修改性**对比。 +- **优化**:局部(常量合并、公共子表达式)、循环不变外提;与机器无关/有关划分。 + +### 1.4 语言机制(常接 C) + +- **传值/传址**:形参是否影响实参。 +- **作用域**:静态看词法块,动态看调用链(题设默认多为静态)。 +- **`static` 局部**:生存期贯穿程序,只初始化一次。 + +### 1.4.1 程序内存区域 + +| 区域 | 存放内容 | 易错点 | +|------|----------|--------| +| 代码区 | 编译后的机器指令 | 通常只读 | +| 静态存储区 | 全局变量、静态变量、常量、字符串常量 | 生命周期贯穿程序运行期 | +| 堆区 | 动态分配对象/内存 | 由程序员或运行时管理,泄漏常出在这里 | +| 栈区 | 函数参数、局部变量、返回地址 | 由编译器自动分配释放 | + +上午题常把 `static`、全局变量、局部变量、动态分配对象混在一起考,先按**生命周期**和**谁分配释放**区分。 + +## 二、速记与背诵 + +| 文法 | 自动机 | +|------|--------| +| 3 型 正则 | 有限自动机 NFA/DFA | +| 2 型 CFG | 下推自动机 PDA | + +- **编译前端**:词法+语法+语义;**后端**:代码生成+(目标级)优化。 + +## 三、考场检查 + +- 问「某阶段错误」:词法错多为非法字符;语义错多为类型不匹配。 +- 逆波兰/后缀:运算符顺序紧跟操作数,**不手懒**按栈模拟一遍。 diff --git "a/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\350\256\241\347\256\227\346\234\272\347\273\204\346\210\220\344\270\216\344\275\223\347\263\273\347\273\223\346\236\204.md" "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\350\256\241\347\256\227\346\234\272\347\273\204\346\210\220\344\270\216\344\275\223\347\263\273\347\273\223\346\236\204.md" new file mode 100644 index 000000000..5a73fbf44 --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\350\256\241\347\256\227\346\234\272\347\273\204\346\210\220\344\270\216\344\275\223\347\263\273\347\273\223\346\236\204.md" @@ -0,0 +1,123 @@ +--- +title: 计算机组成与体系结构 +permalink: /ruan-kao/soft-design/basics/computer-org.html +--- + +# 计算机组成与体系结构 + +> **快拿分**:补码范围、寻址方式辨析、RISC/CISC 对比、RAID 特性、流水线三种冒险、中断与 DMA 场景——上午卷 **高频且套路固定**,计算题注意单位换算。 + +## 一、知识与应试(考点·难点·知识点合一) + +### 1.1 数据表示与运算 + +- **进制**:二/八/十六互化;十六与二进制「一位拆四位」最快。 +- **机器码**:原码、反码、补码、移码定义;**补码**加减最常用;溢出:双符号位异或、或进位异或。 + - **〔易错〕**:\(n\) 位**定点整数补码**表示范围 \([-2^{n-1},\,2^{n-1}-1]\),负端多一个。 +- **IEEE754 单精度**:1 符号 + 8 阶(偏置 127)+ 23 尾数;隐含位;阶全 0/全 1 为特殊值。 + - **〔真题〕**:非规格化、Inf、NaN 的阶码与尾数组合判断。 + +### 1.2 校验 + +- **奇偶**:只能检奇数位错,不能定位。 +- **海明**:关系 \(2^r \ge k+r+1\)(\(k\) 数据位,\(r\) 校验位);校验位占 \(1,2,4,\dots\) 位。 + - **〔难点〕**:求校验位、指错位序,考场按题给步骤表做,勿跳步。 +- **CRC**:生成多项式除法(模 2),余数为 FCS。 + +### 1.1.1 机器码速查表 + +| 编码 | 负数处理 | 0 的形式 | 常考点 | +|------|----------|----------|--------| +| 原码 | 最高位为符号位,数值位不变 | `+0`、`-0` 两种 | 原点对称,计算不方便 | +| 反码 | 符号位不变,负数数值位取反 | `+0`、`-0` 两种 | 常作为补码过渡 | +| 补码 | 反码末位加 1 | 只有一个 0 | 计算机加减法主用;负数多表示一个 | +| 移码 | 在补码基础上符号位取反 | 只有一个 0 | 常用于浮点阶码,只表示整数 | + +**转换顺序**:真值 → 原码 → 反码 → 补码 → 移码。正数四种编码的数值位通常相同,负数才是考点。 + +### 1.3 CPU、指令与流水线 + +- **执行周期**:取指 → 译码 → 取数 → 执行 → 写回(表述因教材略异,选选项时对齐题干)。 +- **寻址方式**:立即(最快)、寄存器、直接、寄存器间接、间接、相对、基址、变址——**速度、访存次数、重定位能力**为常考点。 +- **RISC vs CISC**:指令条数、寻址方式种类、硬布线/微程序、定长指令、流水线友好度。 +- **流水线冒险**:结构(资源冲突)、数据(**RAW** 最常见)、控制(分支)。 + - **〔真题〕**:插入气泡条数、加速比 \(=\) 流水级数理想值受冒险限制。 + +### 1.3.1 控制器与寄存器:程序员可见/不可见 + +| 类别 | 典型寄存器 | 记忆方式 | +|------|------------|----------| +| 程序员可见 | 通用寄存器、程序状态字 PSW、程序计数器 PC、累加寄存器 AC | 汇编/程序状态能直接感知 | +| 程序员不可见 | 指令寄存器 IR、数据缓冲寄存器 DR、地址寄存器 AR | CPU 内部执行指令时临时使用 | + +控制器不仅负责指令执行流程,还要处理中断、异常等事件;运算器负责算术和逻辑运算。 + +### 1.3.2 RISC 与 CISC 高频对比 + +| 维度 | RISC | CISC | +|------|------|------| +| 指令数量 | 少而简单 | 多而复杂 | +| 指令长度 | 多为定长 | 可变长较常见 | +| 寻址方式 | 少 | 多 | +| 控制方式 | 硬布线控制为主 | 微程序控制常见 | +| 流水线 | 更利于流水线 | 实现较复杂 | +| 访存 | Load/Store 结构,算术逻辑多在寄存器间完成 | 指令可直接访存 | + +### 1.4 存储体系与 I/O + +- **Cache 映射**:直接(易冲突)、全相联(成本高)、**组相联**(折中);命中率与平均访存时间估算。 +- **RAID**:0 无冗余;1 镜像;5 分布式奇偶校验(常考「允许坏几块盘」类概念)。 +- **I/O**:程序查询(简单 CPU 占用高)、中断(中低速)、**DMA**(块设备、CPU 初始化后少干预)。 +- **Flynn**:SISD、SIMD、MISD、MIMD——记典型实例。 +- **可靠性**:串联 \(R=\prod R_i\);并联 \(R=1-\prod(1-R_i)\)。 + +### 1.4.1 存储层次与映射 + +```mermaid +flowchart LR + CPU --> Cache --> M["主存"] --> S["辅存"] + Cache -.解决 CPU 与主存速度不匹配.-> M + M -.虚拟存储解决主存容量不足.-> S +``` + +| Cache 映射 | 特点 | 易错点 | +|------------|------|--------| +| 直接映像 | 主存块只能放入 Cache 固定位置 | 冲突率高,但实现简单 | +| 全相联映像 | 主存块可放入任意 Cache 块 | 命中判断成本高 | +| 组相联映像 | 组间直接映像,组内全相联 | 是两者折中,题目常考定义 | + +### 1.4.2 I/O 控制方式对比 + +| 方式 | CPU 参与度 | 适用场景 | 考点 | +|------|------------|----------|------| +| 无条件传送 | 默认外设已就绪 | 简单外设 | 不查询状态 | +| 程序查询 | CPU 反复查询外设状态 | 低速、简单 | CPU 忙等,效率低 | +| 中断 | 外设就绪后通知 CPU | 中低速外设 | CPU 不必一直等待 | +| DMA | CPU 初始化,数据块由 DMA 控制器搬运 | 磁盘、网卡等批量传输 | 数据在内存与 I/O 设备间直接传送 | +| IOP | 专用 I/O 处理机执行 I/O 命令 | 大型系统 | 分担主机 I/O 管理 | + +### 1.4.3 RAID 快速判别 + +| 级别 | 核心 | 冗余 | 速记 | +|------|------|------|------| +| RAID 0 | 条带化 | 无 | 快,但任一盘坏可能丢数据 | +| RAID 1 | 镜像 | 有 | 可靠,成本高 | +| RAID 3 | 位/字节级条带 + 专用校验盘 | 有 | 校验盘可能瓶颈 | +| RAID 5 | 块级条带 + 分布式奇偶校验 | 有 | 常考:可容忍 1 块盘故障 | +| RAID 6 | 双重分布式校验 | 有 | 可容忍 2 块盘故障 | + +## 二、速记与背诵 + +| 主题 | 一句话 | +|------|--------| +| 补码范围 | 负数比正数多一个:\(-2^{n-1}\) | +| 海明码 | 检错纠错看码距:检错码距 2,纠 1 错码距 3 | +| 流水线冒险 | 结数 RAW(数据)、分支控制 | +| RAID0/1/5 | 0 快无冗余,1 镜像贵,5 一块校验盘级容错 | +| DMA | 大批量、减轻 CPU | +| RISC | 少寻址、定长、利于流水 | + +## 三、考场检查 + +- 带宽题:**位宽 × 频率** 是否与题干单位(B/s、b/s)一致。 +- 海明码:先算 \(r\) 再画位序,避免少一位。 diff --git "a/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234.md" "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234.md" new file mode 100644 index 000000000..573a65834 --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234.md" @@ -0,0 +1,106 @@ +--- +title: 计算机网络 +permalink: /ruan-kao/soft-design/basics/network.html +--- + +# 计算机网络 + +> **快拿分**:OSI 与 TCP/IP 层对应、子网划分与路由聚合、常用**端口**、TCP 握手与拥塞阶段、HTTP/HTTPS/DNS 角色——**记表格比啃大段快**。 + +### OSI ↔ TCP/IP 速记表 + +| OSI(7 层) | TCP/IP(4 层) | 常考关联 | +|-------------|----------------|----------| +| 应用 / 表示 / 会话 | **应用** | HTTP、DNS、SMTP、FTP 控制 | +| 传输 | **传输** | TCP、UDP;端口号 | +| 网络 | **网际** | IP、ICMP、路由;子网划分 | +| 数据链路 / 物理 | **网络接口** | 帧、MAC;交换机 | + +### 设备、协议、地址一眼定位 + +| 层次 | 设备 / 协议 | 地址或数据单位 | 高频坑 | +|------|-------------|----------------|--------| +| 物理层 | 中继器、集线器 | 比特 | 不识别 MAC/IP | +| 数据链路层 | 网桥、交换机、CSMA/CD、CSMA/CA | 帧、MAC 地址 | 交换机按 MAC 转发 | +| 网络层 | 路由器、IP、ICMP、ARP/RARP | 分组、IP 地址 | ARP:IP → MAC;RARP 反向 | +| 传输层 | TCP、UDP | TCP 字节流;UDP 报文 | TCP 可靠,UDP 开销小 | +| 应用层 | HTTP、DNS、SMTP、NFS、SNMP | 应用报文 | NFS 是网络文件服务,SNMP 是网络管理 | + +### TCP 三次握手(考场只记旗标与顺序) + +```mermaid +sequenceDiagram + participant C as 客户端 + participant S as 服务器 + C->>S: SYN=1, seq=x + S->>C: SYN=1, ACK=1, seq=y, ack=x+1 + C->>S: ACK=1, seq=x+1, ack=y+1 +``` + +> 挥手四次:多一次「被动关闭方」的 ACK+FIN 组合,选项常考「为何不是三次」。 + +## 一、知识与应试(考点·难点·知识点合一) + +### 1.1 体系结构与物理层 + +- **OSI 七层**:物数网传会表应;与 TCP/IP 四层对应关系。 +- **奈氏 / 香农**:无噪与有噪信道极限(套公式注意 log 底)。 +- **编码**:曼彻斯特、差分曼彻斯特——**自含时钟**用于同步。 + +### 1.2 链路层与局域网 + +- **停等、GBN、SR**:窗口与信道利用率小题。 +- **CSMA/CD**:争用期 \(2\tau\)、最小帧长与链路长度。 +- **WLAN**:CSMA/**CA**(冲突避免)。 + +| 协议 | 场景 | 关键词 | +|------|------|--------| +| CSMA/CD | 传统共享式以太网 | 冲突检测,边发边听 | +| CSMA/CA | 无线局域网 | 冲突避免,难以边发边检测冲突 | +| Token Ring | 令牌环 | 拿到令牌才能发送 | + +### 1.3 网络层与传输层 + +- **IPv4**:首部字段;**子网/CIDR**;私有地址段(A/B/C 三类)。 +- **路由**:RIP 距离向量;OSPF 链路状态;BGP 域间路径向量。 +- **TCP**:三次握手、四次挥手;可靠序号确认;**拥塞**:慢开始、拥塞避免、快重传、快恢复——**cwnd/ssthresh 曲线题**。 +- **UDP**:无连接、首部短、实时场景。 + +### 1.4 应用层与安全 + +- **HTTP/1.1** 持久连接;**HTTPS** = HTTP + TLS。 +- **DNS**:递归与迭代解析。 +- **FTP**:控制 21、数据 20;**SMTP/POP3/IMAP** 角色。 +- **防火墙 / VPN / IDS**:概念辨析题常见。 + +## 二、速记与背诵 + +| 端口 | 协议 | +|------|------| +| 20 | FTP 数据 | +| 21 | FTP 控制 | +| 23 | Telnet | +| 25 | SMTP | +| 53 | DNS | +| 67/68 | DHCP | +| 69 | TFTP | +| 80 | HTTP | +| 110 | POP3 | +| 161 | SNMP | +| 443 | HTTPS | + +| 命令 | 用途 | +|------|------| +| `ipconfig` | 查看本机 TCP/IP 配置 | +| `ping` | 测试连通性 | +| `tracert` | 跟踪到目标主机的路径 | +| `nslookup` | 查询 DNS 解析 | +| `netstat` | 查看网络连接、端口等状态 | +| `route` | 查看/配置路由表 | + +- **私网**:10/8,172.16–31/12,192.168/16。 + +## 三、考场检查 + +- 子网题:先算主机位数,再核对 **网络地址与广播地址** 是否落在选项。 +- TCP 题:看清问的是**发送窗口**还是**拥塞窗口**。 diff --git "a/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\350\275\257\344\273\266\345\267\245\347\250\213\344\270\216\351\235\242\345\220\221\345\257\271\350\261\241.md" "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\350\275\257\344\273\266\345\267\245\347\250\213\344\270\216\351\235\242\345\220\221\345\257\271\350\261\241.md" new file mode 100644 index 000000000..5a03a49f9 --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\350\275\257\344\273\266\345\267\245\347\250\213\344\270\216\351\235\242\345\220\221\345\257\271\350\261\241.md" @@ -0,0 +1,84 @@ +--- +title: 软件工程与面向对象 +permalink: /ruan-kao/soft-design/basics/se-oo.html +--- + +# 软件工程与面向对象 + +> **快拿分**:生命周期模型对比、内聚耦合高低序、测试方法与覆盖关系、UML 关系(尤其聚合/组合、include/extend)、GoF 模式**英文+意图**、CMMI 等级——**上午分值大户**,背诵性价比最高。 + +## 一、知识与应试(考点·难点·知识点合一) + +### 1.1 过程与需求 + +- **模型**:瀑布、原型、螺旋(**风险**)、增量、敏捷(Scrum:PO、SM、Sprint、Backlog)。 +- **需求**:功能/非功能;**追溯矩阵**链需求-设计-测试。 +- **〔真题〕**:敏捷宣言四条与「合同谈判、详尽文档」对比。 + +### 1.2 结构化与模块化 + +- **DFD + 数据字典**(与下午第一题呼应)。 +- **内聚**:由低到高(偶然→逻辑→时间→过程→通信→顺序→**功能**)。 +- **耦合**:由强到弱(内容→公共→外部→控制→标记→数据→**无直接**)。 +- **〔易错〕**:「内容耦合」最强,不是数据耦合。 + +### 1.3 面向对象与 UML + +- **OO 特征**:封装、继承、多态(+ 抽象)。 +- **用例图**:`<>` **必执行**复用;`<>` **条件**扩展。 +- **类图**:依赖 < 关联 < 聚合 < 组合;泛化与实现。 +- **顺序图**:同步实线三角、异步开口箭头;`opt/alt/loop`。 +- **〔难点〕**:**组合**部分生命周期随整体;**聚合**可独立存在。 + +### 1.3.1 UML 关系符号与判题关键词 + +| 关系 | 图形记忆 | 题干关键词 | 易错点 | +|------|----------|------------|--------| +| 依赖 | 虚线箭头 | 临时使用、参数、局部变量 | 强度最弱 | +| 关联 | 实线 | 长期知道/拥有引用 | 不等于整体-部分 | +| 聚合 | 空心菱形 | 整体-部分,部分可独立 | 菱形在整体端 | +| 组合 | 实心菱形 | 同生共死,整体销毁部分也销毁 | 生命周期绑定 | +| 泛化 | 空心三角实线 | 继承、is-a | 子类指向父类 | +| 实现 | 空心三角虚线 | 实现接口 | 类指向接口 | + +### 1.3.2 include / extend 判题 + +| 关系 | 使用条件 | 箭头方向 | 典型表达 | +|------|----------|----------|----------| +| `<>` | 多个用例抽取公共必经步骤 | 基本用例 → 被包含用例 | “必须”“每次都要”“公共行为” | +| `<>` | 某条件下可选扩展行为 | 扩展用例 → 基本用例 | “可选”“有时”“若…则…” | + +注意写作是 **extend**,不是 `exclude`。题目若写“根据不同场景可能发生分支”,通常优先考虑扩展关系。 + +### 1.4 设计原则与模式 + +- **SOLID**:单一职责、开闭、里氏替换、接口隔离、依赖倒置——题干「对扩展开放」→开闭;「依赖抽象」→DIP。 +- **GoF**:创建型(单例、工厂族)、结构型(适配、装饰、外观、代理)、行为型(策略、模板方法、观察者、状态、命令…)。上午常考 **意图匹配** 与 **类图认模式**。 + +### 1.5 测试与质量 + +- **测试级别**:单元、集成、确认、系统。 +- **黑盒**:等价类、边界值、判定表;**白盒**:语句、判定、条件、路径覆盖强弱。 +- **McCabe**:\(V(G)=E-N+2\)(环路复杂度)。 +- **CMMI**:5 级名称顺序;**ISO/IEC 25010** 质量特性大类。 + +### 1.6 维护、配置与风险 + +- **维护**:改正性、适应性、完善性、预防性——**按现象选类型**。 +- **配置管理**:版本、基线、变更、CCB。 +- **风险应对**:规避、转移、减轻、接受。 + +## 二、速记与背诵 + +- **include 必 include,extend 可 extend**(谐音:包含必执行,扩展看条件)。 +- **内聚高好、耦合低好**;功能内聚最好,内容耦合最坏。 +- **观察者**:一多依赖通知;**策略**:算法互换;**模板方法**:骨架固定子类改步骤。 + +## 三、下午关联 + +- UML 细部与模式选型见 [UML与设计模式](/ruan-kao/soft-design/applied/uml-patterns.html)。 + +## 四、考场检查 + +- 用例关系:别把 **泛化(actor 或 use case 继承)** 与 extend/include 混选。 +- 模式题:选项里类名 `Context/Strategy` 等直接指向**策略模式**。 diff --git "a/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/C\347\250\213\345\272\217\345\241\253\347\251\272.md" "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/C\347\250\213\345\272\217\345\241\253\347\251\272.md" new file mode 100644 index 000000000..3013ae954 --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/C\347\250\213\345\272\217\345\241\253\347\251\272.md" @@ -0,0 +1,45 @@ +--- +title: C程序填空(选填) +permalink: /ruan-kao/soft-design/applied/c-fill.html +--- + +# C程序填空(选填) + +> **何时看本篇**:下午「程序填空」若卷面为 **C**(与 **Java** 二选一或分卷,以**当年题本**为准),再用本篇。当前复习主线为 **Java** 时,优先 [Java程序填空](/ruan-kao/soft-design/applied/java-fill.html)。 + +> **快拿分**:**指针移动与 `NULL`**、字符串 `'\0'`、递归 **出口**、链表 **前驱指针**——空位常在 **while 条件、赋值顺序、return**;写完 **手推小样**。 + +## 一、知识与应试(考点·难点·知识点合一) + +### 1.1 指针与数组 + +- `a[i]` 即 `*(a+i)`;二维数组形参 `int a[][M]` 或 `int (*a)[M]`。 +- **`*p++`**:先取 `*p`,再移动 `p`;与 `(*p)++` 区分。 +- **`const`**:`const char *p` 所指内容不可改;`char * const p` 指针本身不可改。 + +### 1.2 字符串与内存 + +- `strlen` 不含 `'\0'`;`strcpy` 目标区要够大。 +- `malloc` 配对 `free`;检查 `NULL` 再使用。 + +### 1.3 递归与链表 + +- 递归:**基准** + 向基准前进;参数传值不改实参,需回传用指针。 +- 链表插入删除:**先连后断**,保存前驱;快慢指针(环、中点)。 + +### 1.4 与算法结合 + +- 快排 `partition`、归并 `merge`、二分 `mid = lo + (hi-lo)/2` 防溢出。 +- **〔易错〕**:循环里修改头结点要返回新 `head`。 + +## 二、速记与背诵 + +- **三交换**:`t=a; a=b; b=t;` +- **链表插入**:`s->next = p->next; p->next = s;` +- **递归先写出口**:`if (!p) return ...` + +## 三、考场检查清单 + +- [ ] 每个指针使用前是否可能 `NULL` +- [ ] `while` 循环是否有前进语句避免死循环 +- [ ] 字符串题是否预留 `'\0'` 空间 diff --git "a/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/Java\347\250\213\345\272\217\345\241\253\347\251\272.md" "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/Java\347\250\213\345\272\217\345\241\253\347\251\272.md" new file mode 100644 index 000000000..1dc06377d --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/Java\347\250\213\345\272\217\345\241\253\347\251\272.md" @@ -0,0 +1,108 @@ +--- +title: Java程序填空(下午选填) +permalink: /ruan-kao/soft-design/applied/java-fill.html +--- + +# Java程序填空(下午选填) + +> **重要**:下午「程序填空」在历年试卷中曾出现 **C 或 Java** 两种载体,**是否二选一、是否必做**以**当年题本说明与答题卡要求**为准。本篇按你当前复习目标 **专攻 Java**,与 [算法设计填空](/ruan-kao/soft-design/applied/algo-fill.html)、[真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html)(算法/程序矩阵)对照使用。 + +## 一、Java 卷与 C 卷的差异(决定填空写法) + +| 维度 | Java 常见考法 | 复习注意 | +|------|---------------|----------| +| 内存与指针 | 无显式指针,用 **引用**、`null` 判断 | `if (node == null)` 先于访问成员 | +| 字符串 | `String` 不可变;拼接多用 **`StringBuilder`** | 循环里少用 `+` 拼大字符串 | +| 集合 | **`List` / `Map` / `Set`** + `ArrayList` / `HashMap` / `HashSet` | 泛型类型与 `import java.util.*` 题面是否已给 | +| 遍历 | 增强 for、`Iterator`、`ListIterator` | 填空常考 **`hasNext()` / `next()`** | +| 排序与比较 | **`Arrays.sort`**、`Collections.sort`、`Comparable` / `Comparator` | `compareTo` 返回值正负零 | +| 面向对象 | 抽象类/接口、多态、方法重写 | 空位常在 **`super`**、构造链、接口实现类名 | + +## 二、历年真题风格归纳(能力向,非背题) + +在公开回忆版与主流解析中,Java 程序填空题 **反复出现的能力点**如下(与具体年份卷面脱钩,避免杜撰原文): + +| 能力块 | 典型空位 | 得分点 | +|--------|----------|--------| +| 集合与映射 | `put`/`get`、`containsKey`、遍历 `entrySet` | API 名拼写正确、泛型一致 | +| 链表/树 | `next`/`left`/`right`、递归终止条件 | **`null` 判断**、返回值接好 | +| 栈/队列 | `Deque` 的 `push/pop/peek` 或 `LinkedList` 作队列 | **空栈/空队列**不弹 | +| 字符串处理 | `charAt`、`substring`、`toCharArray` | 下标 `0..length()-1` | +| 排序与查找 | `Arrays.sort(a)`、`Arrays.binarySearch`(先 sort) | 是否要求 **稳定排序** 用 `Collections.sort` 稳定列表 | +| 面向对象 | 接口回调、模板方法里 **`this`** / 多态调用 | 方法签名与父类/接口一致 | + +## 三、高频 API 速查(背诵用) + +### 3.1 `List` / `ArrayList` + +```java +List list = new ArrayList<>(); +list.add(x); // 尾部 +list.get(i); // 按下标 +list.size(); // 元素个数 +list.isEmpty(); +list.remove(list.size() - 1); // 常配合栈语义 +``` + +### 3.2 `Map` / `HashMap` + +```java +Map map = new HashMap<>(); +map.put(key, val); +map.getOrDefault(key, 0); // 计数题常用 +map.containsKey(key); +for (Map.Entry e : map.entrySet()) { + String k = e.getKey(); + Integer v = e.getValue(); +} +``` + +### 3.3 `String` / `StringBuilder` + +```java +s.length(); // 不是 length +s.charAt(i); +new StringBuilder().append(a).append(b).toString(); +``` + +### 3.4 `Comparable` / `Comparator` + +```java +// 类内:自然序 +public int compareTo(Item o) { return this.w - o.w; } + +// 排序:匿名比较器 +Arrays.sort(a, (x, y) -> Integer.compare(x[0], y[0])); +Collections.sort(list, Comparator.comparingInt(p -> p.id)); +``` + +## 四、填空「抢分」操作顺序 + +```mermaid +flowchart TD + A[通读类名/方法名/注释] --> B[标出所有空的前后变量] + B --> C{是否涉及集合/字符串} + C -->|是| D[套 API 模板] + C -->|否| E[按递归/循环模板] + D --> F[手写 1-2 组小样推演] + E --> F + F --> G[检查 null 与边界] +``` + +1. **变量名、类型与上下文一致**(题面已声明的 `List` 不要写成 `ArrayList` 除非空在 `new` 处)。 +2. **先写 `null` 与边界**,再写核心语句,阅卷常按「是否安全」给步骤印象分。 +3. **`return` 类型**:递归题别漏 `return` 分支。 +4. **泛型**:`List` 元素类型与 `get` 后强转是否已用泛型消掉——以题面为准。 + +## 五、与「算法大题」的衔接 + +- 同一套卷中,**算法设计题**常为伪代码/Java 风格混合;**程序填空**为完整类中挖空。 +- 算法思想见 [算法设计填空](/ruan-kao/soft-design/applied/algo-fill.html);**考什么算法、哪类空最常挖**见 [算法应试与范式要点](/ruan-kao/soft-design/topics/pm-algorithm.html),按卷统计见 [真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html#stats-algo)。 + +## 六、自建「Java 填空错题本」模板(推荐) + +| 日期 | 卷别 | 空位主题 | 正确答案要点 | 错因 | +|------|------|----------|----------------|------| +| | | 如 HashMap 计数 | `getOrDefault` +1 | API 不熟 | + +将手边真题卷按上表记录 5~10 套,比任何二手「统计表」对你个人更真实。 diff --git "a/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/README.md" "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/README.md" new file mode 100644 index 000000000..19bc01e92 --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/README.md" @@ -0,0 +1,22 @@ +--- +title: 应用技术 +permalink: /ruan-kao/soft-design/applied.html +--- +# 应用技术(下午) + +下午 **换业务不换套路**:同一题型(DFD、数据库、UML、算法、**Java/C 程序填空**)反复训练比换参考书更重要。各篇按 **知识要点 + 阅卷易失分点 + 书写抢分** 合并编写,并附 **考场检查清单**。 + +**建议搭配**:[专题速记与拿分要点](/ruan-kao/soft-design/topics/topic-cram.html)、[考试技巧与复习路线](/ruan-kao/soft-design/topics/exam-skills.html)、[真题统计与命题套路](/ruan-kao/soft-design/topics/paper-patterns.html)、[算法应试与范式要点](/ruan-kao/soft-design/topics/pm-algorithm.html)。 + +程序填空 **主攻 Java** 见 [Java程序填空](/ruan-kao/soft-design/applied/java-fill.html);若当年卷为 C,可切换 [C程序填空](/ruan-kao/soft-design/applied/c-fill.html)。 + +## 文档索引 + +| 文档 | 核心 | +|------|------| +| [数据流图与结构化分析](/ruan-kao/soft-design/applied/dfd.html) | 平衡、补流/补加工、命名 | +| [数据库设计](/ruan-kao/soft-design/applied/db-design.html) | E-R 转关系、范式、SQL | +| [UML与设计模式](/ruan-kao/soft-design/applied/uml-patterns.html) | 类图关系、GoF 选型 | +| [算法设计填空](/ruan-kao/soft-design/applied/algo-fill.html) | DP/贪心/回溯边界 | +| [Java程序填空](/ruan-kao/soft-design/applied/java-fill.html) | **下午程序填空主攻**:集合、`Map`、字符串、比较器 | +| [C程序填空](/ruan-kao/soft-design/applied/c-fill.html) | 指针、字符串、递归(卷面为 C 时使用) | diff --git "a/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/UML\344\270\216\350\256\276\350\256\241\346\250\241\345\274\217.md" "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/UML\344\270\216\350\256\276\350\256\241\346\250\241\345\274\217.md" new file mode 100644 index 000000000..eb6af7c5c --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/UML\344\270\216\350\256\276\350\256\241\346\250\241\345\274\217.md" @@ -0,0 +1,91 @@ +--- +title: UML与设计模式 +permalink: /ruan-kao/soft-design/applied/uml-patterns.html +--- + +# UML与设计模式 + +> **快拿分**:类图 **多重度与关系类型**;用例 **include/extend**;模式题 **写标准角色名**(Context、Strategy…)+ **模式英文**——与教材图示一致即稳。 + +### 用例:include 还是 extend? + +| 判断 | `<>` | `<>` | +|------|----------------|---------------| +| 是否必须执行 | **必须**(缺了主用例不完整) | **可选**(条件满足才发生) | +| 典型表述 | 「必然」「首先要」 | 「可能」「有时」「若…则」 | +| 箭头方向 | 基本用例 → 被包含用例 | 扩展用例 → 基本用例 | +| 记忆 | **include = 硬包含** | **extend = 外挂扩展** | + +### GoF 三类(结构记忆) + +```mermaid +flowchart TB + subgraph CR["创建型"] + c1[单例 / 工厂族 / 建造者 / 原型] + end + subgraph ST["结构型"] + s1[适配 / 装饰 / 外观 / 代理 / 桥接 / 享元 / 组合] + end + subgraph BE["行为型"] + b1[策略 / 模板方法 / 观察者 / 状态 / 命令 / 责任链…] + end +``` + +## 一、知识与应试(考点·难点·知识点合一) + +### 1.1 类图与关系 + +- **依赖** < **关联** < **聚合** < **组合**(整体-部分强度递增)。 +- **泛化**(继承)、**实现**(接口)。 +- **〔难点〕**:**组合**部分随整体销毁;**聚合**部分可独立存在。 +- **多重度**:`1`、`0..1`、`*`、`1..*` 等按题补全。 + +| 关系 | 卷面关键词 | 画法 / 填空注意 | +|------|------------|----------------| +| 依赖 | 使用、调用、参数、局部变量 | 虚线箭头,方向指向被依赖者 | +| 关联 | 持有、知道、导航 | 实线,可补角色名与多重度 | +| 聚合 | 部分可脱离整体存在 | 空心菱形放整体端 | +| 组合 | 部分随整体创建/销毁 | 实心菱形放整体端 | +| 泛化 | 继承、父类/子类 | 空心三角指向父类 | +| 实现 | 接口/实现类 | 虚线空心三角指向接口 | + +### 1.2 用例图与行为图 + +- **include**:公共步骤**必执行**;**extend**:在**扩展点条件**满足时附加。 +- **顺序图**:生命线、同步/异步消息、`alt/opt/loop` 框。 +- **状态图**:状态、事件、守卫;与活动图区别(状态 vs 控制流)。 + +### 1.3 GoF 模式(下午高频) + +| 模式 | 关键词 | +|------|--------| +| 工厂方法 | 子类决定实例化 | +| 抽象工厂 | 产品族 | +| 适配器 | 接口转换 | +| 装饰 | 动态叠加职责 | +| 外观 | 统一对外接口 | +| 代理 | 控制访问 | +| 策略 | 算法互换 | +| 模板方法 | 骨架固定、步骤可覆盖 | +| 观察者 | 通知订阅 | +| 状态 | 状态对象改变行为 | +| 命令 | 请求封装为对象 | + +- **〔真题〕**:给类图问模式名;或给场景选模式(「算法可替换」→策略等)。 + +### 1.4 设计原则 + +- **开闭**:对扩展开放、对修改关闭;**依赖倒置**:依赖抽象而非具体。 + +## 二、速记与背诵 + +- **include 必走,extend 看条件**。 +- **适配转接口,装饰包一层,外观挡复杂,代理管访问**。 +- **策略换算法,模板定骨架,观察者广播**。 + +## 三、考场检查清单 + +- [ ] 组合/聚合菱形是否画对(实心组合、空心聚合) +- [ ] 用例关系是否写成 `extend`,不要写成 `exclude` +- [ ] 模式名英文拼写与教材一致 +- [ ] 多重度与题干「一个部门多名员工」等叙述一致 diff --git "a/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.md" "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.md" new file mode 100644 index 000000000..7823ec0dd --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.md" @@ -0,0 +1,62 @@ +--- +title: 数据库设计 +permalink: /ruan-kao/soft-design/applied/db-design.html +--- + +# 数据库设计 + +> **快拿分**:E-R 转关系 **主外键写全**;范式证明 **按定义写步骤**;SQL 填空 **JOIN 条件 + GROUP BY 列合法**——即使结论有小错,步骤分也常能保住。 + +## 一、知识与应试(考点·难点·知识点合一) + +### 1.1 E-R 与关系模式 + +- **实体** → 关系,属性成列,主码标明。 +- **1:1**:外键可放任意一方或合并(看题意)。 +- **1:n**:外键放 **n 端**。 +- **m:n**:**独立联系表**,主键为双方主键组合,联系属性挂在该表。 +- **弱实体**:依赖识别实体,主码 = 识别实体主码 + 部分键。 +- **〔真题〕**:补全「关系模式列表」缺属性、缺外键引用。 + +### 1.1.1 下午题作答模板 + +| 题问 | 答题顺序 | 检查点 | +|------|----------|--------| +| 补关系模式 | 先实体表,再联系表,再补联系属性 | 每个关系都标主键;外键写引用 | +| 判断联系类型 | 从题干“一名/多名/至少一个”定位 | 不凭业务常识改题意 | +| 弱实体 | 找“依赖某实体存在”的对象 | 主键包含强实体主键 | +| 冗余与异常 | 先说冗余,再说插入/删除/更新异常 | 术语写全,便于步骤分 | + +### 1.2 函数依赖与范式 + +- 求 **候选码**、\(F^+\)、是否保持依赖/无损——按教材算法执行,**写在卷面**。 +- **1NF~BCNF** 判定:逐级检查「部分依赖」「传递依赖」「左部是否超键」。 +- **〔难点〕**:无损连接分解判定;3NF 合成法 vs BCNF 分解取舍。 + +### 1.3 SQL 与约束 + +- `PRIMARY KEY` / `FOREIGN KEY ... REFERENCES ... ON DELETE CASCADE`。 +- 多表查询:`JOIN` **ON** 条件漏写 → 笛卡尔积。 +- `HAVING` 只能接在 `GROUP BY` 之后过滤聚合结果。 + +### 1.4 反范式与文字简答 + +- 问「冗余/异常」:从 **插入、删除、更新异常** 与 **冗余存储** 答。 + +## 二、速记与背诵 + +| 联系 | 外键位置 | +|------|----------| +| 1:1 | 任一方放外键或合并,按题意约束选择 | +| 1:n | n 端 | +| m:n | 中间表双主键,联系属性也放中间表 | +| 弱实体 | 强实体主键 + 部分键 | + +- **范式升级顺序**:原子 → 消部分 → 消传递 → BCNF 左部超键。 +- **设计阶段产物**:需求分析看数据流图/数据字典,概念设计看 E-R 图,逻辑设计看关系模式。 + +## 三、考场检查清单 + +- [ ] 每个 FK 指明 REFERENCES 哪张表哪列 +- [ ] 范式证明写出依赖与「违反哪一条」 +- [ ] `SELECT` 中非聚合列出现在 `GROUP BY` 中 diff --git "a/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\346\225\260\346\215\256\346\265\201\345\233\276\344\270\216\347\273\223\346\236\204\345\214\226\345\210\206\346\236\220.md" "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\346\225\260\346\215\256\346\265\201\345\233\276\344\270\216\347\273\223\346\236\204\345\214\226\345\210\206\346\236\220.md" new file mode 100644 index 000000000..ed0e54d77 --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\346\225\260\346\215\256\346\265\201\345\233\276\344\270\216\347\273\223\346\236\204\345\214\226\345\210\206\346\236\220.md" @@ -0,0 +1,57 @@ +--- +title: 数据流图与结构化分析 +permalink: /ruan-kao/soft-design/applied/dfd.html +--- + +# 数据流图与结构化分析 + +> **快拿分**:**平衡规则** + 数据流命名与题干一致 + 外部实体不直连存储(须经加工)+ 不写控制流——DFD 题 **步骤分大**,写满比空想重要。 + +### 判题流程(先跑一遍再落笔) + +```mermaid +flowchart TD + Start([拿到 DFD 子图]) --> Q1{父子数据流是否一一对应} + Q1 -->|否| A1[先标缺失/多余流] + Q1 -->|是| Q2{实体与存储是否只连加工} + Q2 -->|否| A2[补加工或改箭头] + Q2 -->|是| Q3{加工是否均有入有出} + Q3 -->|否| A3[补流或拆加工] + Q3 -->|是| OK([可作答文字说明]) +``` + +## 一、知识与应试(考点·难点·知识点合一) + +### 1.1 成分与分层 + +- **四种成分**:外部实体 E、加工 P、数据存储 D、数据流(命名箭头)。 +- **上下文图(0 层)**:**单个加工**表示目标系统,与外部实体之间的流。 +- **分层**:父图子图编号;子图细化某一加工。 + +### 1.2 平衡(必考能力) + +- 子图的所有 **输入/输出数据流** 必须与父图中该加工的流 **在名称与方向上对应**(子图可拆分细化,但不可凭空出现父图没有的新流)。 +- **〔难点〕**:找「缺失数据流」——对照父图列表逐条打勾;找「错误命名」——同一语义不同名。 + +### 1.3 数据守恒与规范 + +- 加工至少 **一入一出**;数据存储一般既有读也有写(除非题设只读库等)。 +- **数据字典**、加工说明与 DFD 加工一一对应。 +- **〔易错〕**:DFD **不表示控制、时序、模块调用**,不要把「控制流」「事件顺序」画进去。 + +### 1.4 常见设问与阅卷点 + +- 「补充缺失的加工/数据流」「指出图中错误」「说明某加工输入输出」。 +- **得分**:名称来自业务名词(与题干一致);箭头方向与加工逻辑一致;实体与存储 **不经加工不得直连**(经典扣分点)。 + +## 二、速记与背诵 + +- **平衡**:父子流对得上。 +- **三不能**:不能实体连存储、不能只有入没有出、不能把控制当数据。 + +## 三、考场检查清单 + +- [ ] 每条父图进/出流在子图都有落点 +- [ ] 数据流名与数据字典一致 +- [ ] 无「控制」「判断」类命名流 +- [ ] 加工编号与题意分层一致 diff --git "a/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\347\256\227\346\263\225\350\256\276\350\256\241\345\241\253\347\251\272.md" "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\347\256\227\346\263\225\350\256\276\350\256\241\345\241\253\347\251\272.md" new file mode 100644 index 000000000..790117757 --- /dev/null +++ "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\347\256\227\346\263\225\350\256\276\350\256\241\345\241\253\347\251\272.md" @@ -0,0 +1,42 @@ +--- +title: 算法设计填空 +permalink: /ruan-kao/soft-design/applied/algo-fill.html +--- + +# 算法设计填空 + +> **快拿分**:**变量名与上下文一致**;循环 **上界/下界** 与题给数组长度一致;DP **01 背包内层逆序**;递归 **基准情形**——阅卷按空给分,**猜结构合理的式子**优于留空。 +> **配套**:[下午算法题考频与应试预测](/ruan-kao/soft-design/topics/pm-algorithm.html) · [Java程序填空](/ruan-kao/soft-design/applied/java-fill.html) + +## 一、知识与应试(考点·难点·知识点合一) + +### 1.1 读题与定式 + +- 先标输入、输出、约束(\(n\) 范围暗示 \(O(n^2)\) 还是 \(O(n\log n)\))。 +- **DP**:定义 `dp[...]` 含义 → 转移 → 初值 → 答案下标;注意 **填循环顺序**(背包类常 **内层逆序**)。 +- **贪心**:排序关键字 + 一次扫描;空多在 **比较条件** 与 **累加器**。 +- **回溯**:递归/栈;**剪枝条件**、**撤销选择**、递归出口。 +- **分治**:`mid`、递归边界、`merge`/`partition` 中空位。 + +### 1.2 边界与易错 + +- **off-by-one**:`i < n` 还是 `i <= n` 以题意下标从 0 或 1 为准。 +- **初值**:求最大置极小;计数从 0;布尔「能否」类注意**或/与**组合。 +- **〔难点〕**:LIS 二分、`tails` 数组填空——严格照题给伪代码,勿换写法。 + +### 1.3 书写习惯 + +- 与前后文 **同一命名风格**(`dp`/`f`、`w`/`weight`)。 +- 多分支 `if` 把 **最苛刻条件放前** 可减少嵌套(也降低漏写 else 风险)。 + +## 二、速记与背诵 + +- **背包 01**:`for i` 物品,`for v` 容量 **down to w[i]**。 +- **区间 DP**:长度 `len` 从小到大枚举。 +- **图 DFS**:`visited` 标记 + 邻接表遍历。 + +## 三、考场检查清单 + +- [ ] 每个填空代入边界 \(n=0, n=1\) 手推 +- [ ] 返回值与题问「最大/最小/个数」一致 +- [ ] 无死循环(尤其 `while` 条件) diff --git "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" "b/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" deleted file mode 100644 index da28d3343..000000000 --- "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/2-\347\263\273\347\273\237\345\274\200\345\217\221\345\237\272\347\241\200.md" +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 系统开发基础 -permalink: /ruankao/architect/system-develop-base/ ---- -# 系统开发基础 diff --git "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" "b/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" deleted file mode 100644 index 1d04ab384..000000000 --- "a/docs/ruankao/architect/\346\241\210\344\276\213\345\210\206\346\236\220/README.md" +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 案例分析 -permalink: /ruankao/architect/case-analyse/ ---- -# 案例分析 diff --git "a/docs/ruankao/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" "b/docs/ruankao/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" deleted file mode 100644 index a811bd274..000000000 --- "a/docs/ruankao/architect/\347\273\274\345\220\210\347\237\245\350\257\206/README.md" +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 综合知识 -permalink: /ruankao/architect/comprehensive/ ---- -# 综合知识 diff --git "a/docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" "b/docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" deleted file mode 100644 index f4fca8222..000000000 --- "a/docs/ruankao/architect/\350\256\272\346\226\207\345\206\231\344\275\234/README.md" +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 论文写作 -permalink: /ruankao/architect/essay-writing/ ---- -# 论文写作 diff --git a/docs/ruankao/soft-design/README.md b/docs/ruankao/soft-design/README.md deleted file mode 100644 index 41daba349..000000000 --- a/docs/ruankao/soft-design/README.md +++ /dev/null @@ -1 +0,0 @@ -# 软件设计师 diff --git a/docs/ruankao/soft-design/soft-design.sidebar.ts b/docs/ruankao/soft-design/soft-design.sidebar.ts deleted file mode 100644 index 98e8e4cdd..000000000 --- a/docs/ruankao/soft-design/soft-design.sidebar.ts +++ /dev/null @@ -1,10 +0,0 @@ -export const softDesignSidebar = [ - { - text: '基础知识', - children: [], - }, - { - text: '应用技术', - children: [], - }, -] diff --git "a/docs/ruankao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/README.md" "b/docs/ruankao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/README.md" deleted file mode 100644 index f834b2bc2..000000000 --- "a/docs/ruankao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/README.md" +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 基础知识 -permalink: /soft-design/basics/ ---- -# 基础知识 diff --git "a/docs/ruankao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/README.md" "b/docs/ruankao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/README.md" deleted file mode 100644 index 752e779bc..000000000 --- "a/docs/ruankao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/README.md" +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 论文写作 -permalink: /soft-design/application/ ---- -# 应用技术 diff --git a/docs/theme.config.ts b/docs/theme.config.ts index f627ed29c..3e5abcf01 100644 --- a/docs/theme.config.ts +++ b/docs/theme.config.ts @@ -6,8 +6,8 @@ import { FrontEndSidebar } from './front-end/front-end.sidebar' import { JobChanceSidebar } from './job-chance/job-chance.sidebar' import { MicroserviceSidebar } from './microservice/microserviceSidebar' import { ReadBooksSidebar } from './read-books/read-books.sidebar' -import { architectSidebar } from './ruankao/architect/architect.sidebar' -import { softDesignSidebar } from './ruankao/soft-design/soft-design.sidebar' +import { architectSidebar } from './ruan-kao/architect/architect.sidebar' +import { softDesignSidebar } from './ruan-kao/soft-design/soft-design.sidebar' import { BaseSidebar, DesignPatternsSidebar, @@ -54,10 +54,10 @@ export const navbarConfig = defineVipNavbarConfig([ { text: '® 软著', link: '/copyright/' }, { text: '考试', - link: '/ruankao/', + link: '/ruan-kao.html', children: [ - { text: '👨🏻‍💻 软件设计师', link: '/ruankao/soft-design/' }, - { text: '💫 系统架构师', link: '/ruankao/architect/' }, + { text: '👨🏻‍💻 软件设计师', link: '/ruan-kao/soft-design.html' }, + { text: '💫 系统架构师', link: '/ruan-kao/architect.html' }, ], }, { @@ -114,9 +114,18 @@ export const sidebarConfig = defineVipSidebarConfig({ '/microservice': MicroserviceSidebar, '/battle-interview': BattleInterviewSidebar, - // 软考 - '/ruankao/soft-desigin': softDesignSidebar, - '/ruankao/architect': architectSidebar, + // 软考:考试总览(permalink /ruan-kao.html) + '/ruan-kao.html': [ + { text: '👨🏻‍💻 软件设计师', link: '/ruan-kao/soft-design.html' }, + { text: '💫 系统架构师', link: '/ruan-kao/architect.html' }, + ], + '/ruan-kao/': [ + { text: '👨🏻‍💻 软件设计师', link: '/ruan-kao/soft-design.html' }, + { text: '💫 系统架构师', link: '/ruan-kao/architect.html' }, + ], + // 软考(子页 permalink 为 .html;key 用目录前缀供主题匹配) + '/ruan-kao/soft-design': softDesignSidebar, + '/ruan-kao/architect': architectSidebar, }) /** diff --git a/vuepress.config.ts b/vuepress.config.ts index 9a6f0af75..d4c73bb6a 100644 --- a/vuepress.config.ts +++ b/vuepress.config.ts @@ -70,6 +70,8 @@ const copyrightHtmlStr = ` */ export default defineVipVuepressConfig({ base: vipDocSite.getBase(pkg.name), + /** 生成与站内链接统一为无尾斜杠 URL */ + trailingSlash: false, title: '凡是过往、皆为序章', description: pkg.description, port: 5000, From 785cc7e6f1bfbcc9ec5b06483277ffff8458dfea Mon Sep 17 00:00:00 2001 From: chufan Date: Wed, 24 Jun 2026 11:53:28 +0800 Subject: [PATCH 6/6] chore: update --- Dockerfile | 2 +- ...03\345\274\217\350\246\201\347\202\271.md" | 24 ++- ...24\350\257\225\350\246\201\347\202\271.md" | 32 +-- ...04\344\270\216\347\256\227\346\263\225.md" | 14 +- ...76\350\256\241\346\250\241\345\274\217.md" | 198 +++++++++++++++--- ...76\350\256\241\345\241\253\347\251\272.md" | 129 ++++++++++++ 6 files changed, 351 insertions(+), 48 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3d8fd3caa..8ef44d76b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ # CONTAINER_BUILD: 采用容器构建 # -FROM registry.cn-hangzhou.aliyuncs.com/142vip-infra/node:20.18.0-alpine AS build_base +FROM registry.cn-hangzhou.aliyuncs.com/142vip-infra/node:25.9.0-base AS build_base # 是否配置代理 ARG NEED_PROXY_BUILD=false diff --git "a/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\347\256\227\346\263\225\345\272\224\350\257\225\344\270\216\350\214\203\345\274\217\350\246\201\347\202\271.md" "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\347\256\227\346\263\225\345\272\224\350\257\225\344\270\216\350\214\203\345\274\217\350\246\201\347\202\271.md" index b94285c30..289afa3fe 100644 --- "a/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\347\256\227\346\263\225\345\272\224\350\257\225\344\270\216\350\214\203\345\274\217\350\246\201\347\202\271.md" +++ "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\347\256\227\346\263\225\345\272\224\350\257\225\344\270\216\350\214\203\345\274\217\350\246\201\347\202\271.md" @@ -24,7 +24,21 @@ permalink: /ruan-kao/soft-design/topics/pm-algorithm.html --- -## 三、算法范式 · 定性考频与复习要点 +## 三、DP / 分治 / 贪心 · 考场快判(摘要) + +完整 **概念、举例、复杂度表、决策流程图** → [算法设计填空 §〇](/ruan-kao/soft-design/applied/algo-fill.html)。 + +| 范式 | 10 秒识别 | 下午先写什么 | +|------|-----------|--------------| +| **DP** | 最优子结构 + **重叠子问题**;背包/切割/LCS | `dp` **含义** → 初值 → 转移 → **循环方向** | +| **分治** | 子问题 **独立**,**合并** 得解;假币/归并/快排 | `mid`、递归 **出口**、`merge`/`partition` | +| **贪心** | **局部最优** + 题意支持;活动/分数背包/霍夫曼 | **排序关键字** → 扫描 `if` → 累加器初值 | + +**一眼排除**:0-1 背包 ≠ 贪心;假币 ≠ DP;分数背包 ≠ 0-1 背包(DP)。 + +--- + +## 四、算法范式 · 定性考频与复习要点 > **高 / 中 / 低** 指在公开回忆卷与教辅中的常见程度,**非官方**。 @@ -45,14 +59,14 @@ Java 常叠加 **集合、`String`、`Comparator`** 等空,详见 [Java程序 --- -## 四、复习侧重(推测 · 仅供参考) +## 五、复习侧重(推测 · 仅供参考) 1. 仍以 **可读过程 + 少量关键空** 为主。 2. 载体多为栈、队列、哈希、二叉树、图(含网格 BFS)。 3. **Java 与 C 并行准备** 程序填空,以当年卷面为准。 4. 极冷门数论在设计师下午 **性价比低**。 -### 4.1 2017-2019 第四题样本带来的训练顺序 +### 5.1 2017-2019 第四题样本带来的训练顺序 | 范式 | 样本题型 | 优先训练的空 | |------|----------|--------------| @@ -64,7 +78,7 @@ Java 常叠加 **集合、`String`、`Comparator`** 等空,详见 [Java程序 --- -## 五、考场时间策略 +## 六、考场时间策略 | 阶段 | 建议 | |------|------| @@ -82,7 +96,7 @@ flowchart LR --- -## 六、维护建议 +## 七、维护建议 固定一套真题来源;每做一套在 [真题统计](/ruan-kao/soft-design/topics/paper-patterns.html#stats-algo) **增一行**——两个月后「个人考频」会清晰到不必依赖二手统计文。仓库不收录真题原文。 diff --git "a/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\350\256\276\350\256\241\346\250\241\345\274\217\345\272\224\350\257\225\350\246\201\347\202\271.md" "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\350\256\276\350\256\241\346\250\241\345\274\217\345\272\224\350\257\225\350\246\201\347\202\271.md" index a1079db8d..adb7621b5 100644 --- "a/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\350\256\276\350\256\241\346\250\241\345\274\217\345\272\224\350\257\225\350\246\201\347\202\271.md" +++ "b/docs/ruan-kao/soft-design/\344\270\223\351\242\230\347\252\201\347\240\264/\350\256\276\350\256\241\346\250\241\345\274\217\345\272\224\350\257\225\350\246\201\347\202\271.md" @@ -5,7 +5,7 @@ permalink: /ruan-kao/soft-design/topics/patterns-exam.html # 设计模式应试要点(下午高频) -> 下午常在 **UML 类图 / 场景描述** 中考 **GoF 模式识别与选型**。细节与例题见 **[UML与设计模式](/ruan-kao/soft-design/applied/uml-patterns.html)**;本文只保留 **阅卷友好 + 易混排除 + 速记表**,便于考前扫读。 +> 下午常在 **UML 类图 / 场景描述** 中考 **GoF 模式识别与选型**。**23 种模式分类、每模式举例、三类快判** 见 **[UML与设计模式](/ruan-kao/soft-design/applied/uml-patterns.html)** §1.3;本文保留 **阅卷检查表 + 易混排除 + 意图速扫**,便于考前扫读。 ## 一、下午拿分动作(检查表) @@ -44,39 +44,41 @@ permalink: /ruan-kao/soft-design/topics/patterns-exam.html --- -## 三、GoF 意图速扫(下午选项常见) +## 三、GoF 23 种意图速扫(下午选项常见) -| 创建型 | 一句话 | -|--------|--------| +完整 **举例 + 角色 + 题干关键词** → [UML与设计模式](/ruan-kao/soft-design/applied/uml-patterns.html) **§1.3**。 + +| 创建型(5) | 一句话 | +|-------------|--------| | Singleton | 全局唯一实例 | | Factory Method | 子类决定实例化哪一个产品类 | | Abstract Factory | 创建 **一族** 相关对象 | -| Prototype | 用克隆代替 new | | Builder | 分步构造复杂对象 | +| Prototype | 用克隆代替 new | -| 结构型 | 一句话 | -|--------|--------| +| 结构型(7) | 一句话 | +|-------------|--------| | Adapter | 把不兼容接口转成客户端期望 | -| Bridge | 抽象与实现分离扩展 | -| Composite | 树形部分-整体 | +| Bridge | 抽象与实现分离、两维扩展 | +| Composite | 树形部分-整体一致对待 | | Decorator | 包装对象动态加职责 | | Facade | 对外统一简单接口 | | Flyweight | 共享细粒度对象 | | Proxy | 为对象提供替身以控制访问 | -| 行为型 | 一句话 | -|--------|--------| +| 行为型(11) | 一句话 | +|--------------|--------| | Chain of Responsibility | 沿链传递请求直到被处理 | | Command | 请求封装为对象,可撤销/队列 | -| Interpreter | 文法解释(少考大题) | +| Interpreter | 文法解释(上午概念多) | | Iterator | 顺序访问聚合元素 | -| Mediator | 多对象间通过中介通信 | +| Mediator | 多对象经中介通信 | | Memento | 捕获状态以便恢复 | -| Observer | 一对多依赖,状态变通知观察者 | +| Observer | 一对多,主题变则通知 | | State | 状态对象改变行为 | | Strategy | 封装可互换算法 | | Template Method | 骨架固定、子类实现步骤 | -| Visitor | 在不改类结构下定义新操作 | +| Visitor | 不改类结构下定义新操作 | --- diff --git "a/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\225\260\346\215\256\347\273\223\346\236\204\344\270\216\347\256\227\346\263\225.md" "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\225\260\346\215\256\347\273\223\346\236\204\344\270\216\347\256\227\346\263\225.md" index 74de6934b..e8dedcaa4 100644 --- "a/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\225\260\346\215\256\347\273\223\346\236\204\344\270\216\347\256\227\346\263\225.md" +++ "b/docs/ruan-kao/soft-design/\345\237\272\347\241\200\347\237\245\350\257\206/\346\225\260\346\215\256\347\273\223\346\236\204\344\270\216\347\256\227\346\263\225.md" @@ -60,9 +60,19 @@ O(1) < O(\log n) < O(n) < O(n\log n) < O(n^2) < O(n^3) < O(2^n) < O(n!) | 分块查找 | 块间有序、块内可无序 | 索引查找 + 块内查找 | 常考“块间有序,块内无序” | | 哈希查找 | 哈希函数与冲突处理 | 接近 \(O(1)\) | 装填因子影响冲突 | -### 1.5 算法思想 +### 1.5 算法思想(DP / 分治 / 贪心) -- **分治、DP、贪心、回溯**:题干关键词「最优子结构+重叠子问题」→DP;「局部最优」→贪心;「解空间树剪枝」→回溯。 +| 范式 | 识别关键词 | 典型复杂度(记阶) | +|------|------------|-------------------| +| **动态规划** | 重叠子问题、最优子结构;背包/切割/LCS | 常 \(O(n^2)\)、\(O(nW)\)、\(O(mn)\) | +| **分治** | 独立子问题 + 合并;假币/归并/快排/二分 | 常 \(O(n\log n)\)、\(O(\log n)\) | +| **贪心** | 局部最优;活动安排、分数背包、霍夫曼 | 常 \(O(n\log n)\)(含排序) | + +- **分治 vs DP**:子问题 **是否重叠**——重叠用 **记表(DP)**,不重叠 **分治+合并**。 +- **贪心 vs DP**:0-1 背包用 **DP**;**分数**背包可 **贪心**(按单位价值)。 +- **回溯**:解空间搜索 + 剪枝(n 皇后、Hamilton),与上三者不同。 + +**举例、决策流程图、经典题复杂度全表** → [算法设计填空 §〇](/ruan-kao/soft-design/applied/algo-fill.html)。 ## 二、速记与背诵 diff --git "a/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/UML\344\270\216\350\256\276\350\256\241\346\250\241\345\274\217.md" "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/UML\344\270\216\350\256\276\350\256\241\346\250\241\345\274\217.md" index eb6af7c5c..8ab556596 100644 --- "a/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/UML\344\270\216\350\256\276\350\256\241\346\250\241\345\274\217.md" +++ "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/UML\344\270\216\350\256\276\350\256\241\346\250\241\345\274\217.md" @@ -16,21 +16,58 @@ permalink: /ruan-kao/soft-design/applied/uml-patterns.html | 箭头方向 | 基本用例 → 被包含用例 | 扩展用例 → 基本用例 | | 记忆 | **include = 硬包含** | **extend = 外挂扩展** | -### GoF 三类(结构记忆) +### GoF 三类:10 秒区分(软考常考) + +| 类型 | 核心问题 | 记一句 | 数量 | +|------|----------|--------|------| +| **创建型** | **怎么 new 出来** | 隐藏创建细节,让系统少依赖具体类 | **5** | +| **结构型** | **怎么拼在一起** | 类/对象组合成更大结构,接口仍好用 | **7** | +| **行为型** | **怎么分工协作** | 对象间通信、算法与职责怎么分配 | **11** | + +**考场快判口诀** + +- 题干强调 **唯一实例、分步构建、克隆、工厂/产品族** → 先想 **创建型**。 +- 题干强调 **接口转换、包装一层、统一入口、树形整体-部分、共享对象、替身** → 先想 **结构型**。 +- 题干强调 **算法可换、状态变行为变、通知订阅、请求封装、沿链传递、访问聚合** → 先想 **行为型**。 ```mermaid -flowchart TB - subgraph CR["创建型"] - c1[单例 / 工厂族 / 建造者 / 原型] +flowchart LR + subgraph CR["创建型 ×5"] + direction TB + S[Singleton] + FM[Factory Method] + AF[Abstract Factory] + B[Builder] + P[Prototype] end - subgraph ST["结构型"] - s1[适配 / 装饰 / 外观 / 代理 / 桥接 / 享元 / 组合] + subgraph ST["结构型 ×7"] + direction TB + Ad[Adapter] + Br[Bridge] + Co[Composite] + De[Decorator] + Fa[Facade] + Fl[Flyweight] + Pr[Proxy] end - subgraph BE["行为型"] - b1[策略 / 模板方法 / 观察者 / 状态 / 命令 / 责任链…] + subgraph BE["行为型 ×11"] + direction TB + Ch[Chain of Responsibility] + Cm[Command] + In[Interpreter] + It[Iterator] + Me[Mediator] + Mem[Memento] + Ob[Observer] + St[State] + Sr[Strategy] + TM[Template Method] + Vi[Visitor] end ``` +> **23 种** = GoF 经典全集(软考下午程序填空与 UML 题多考其中 **加粗** 模式)。速扫表见 [设计模式应试要点](/ruan-kao/soft-design/topics/patterns-exam.html)。 + ## 一、知识与应试(考点·难点·知识点合一) ### 1.1 类图与关系 @@ -55,23 +92,112 @@ flowchart TB - **顺序图**:生命线、同步/异步消息、`alt/opt/loop` 框。 - **状态图**:状态、事件、守卫;与活动图区别(状态 vs 控制流)。 -### 1.3 GoF 模式(下午高频) +### 1.3 GoF 23 种设计模式(分类 · 意图 · 举例 · 角色) + +下午题常见两种:**给类图/代码空填模式名与角色**;**给场景选模式**。下表按 **创建型 → 结构型 → 行为型** 排列;**粗体** 为近年卷面高频。 + +--- + +#### 一、创建型(5)——关心「对象的诞生」 + +| 模式 | 意图(背一句) | 生活/业务举例(帮助记忆) | 典型角色 / 卷面空位 | +|------|----------------|---------------------------|---------------------| +| **Singleton**
单例 | 保证类 **只有一个实例**,全局访问点 | 配置中心、线程池、日志管理器「全系统一份」 | `getInstance()`、私有构造 | +| **Factory Method**
工厂方法 | **子类决定** 实例化哪一个具体产品 | 文档应用:`WordDocument` / `PdfDocument` 由子类工厂创建 | `Creator`、`Product`、`createProduct()` | +| **Abstract Factory**
抽象工厂 | 创建 **一族相互关联** 的产品,且族可切换 | UI 主题:**Win 按钮+滚动条** vs **Mac 按钮+滚动条** 成套换肤 | `AbstractFactory`、`AbstractProductA/B` | +| **Builder**
建造者 | **分步构建** 复杂对象,同一过程不同表示 | 套餐:`Director` 按步骤组装汉堡+可乐;要「儿童餐/豪华餐」换 `Builder` | **`Builder`、`ConcreteBuilder`、`Director`、`Product`** | +| **Prototype**
原型 | 用 **克隆** 复制已有对象,少调 `new` | 简历模板复制后改姓名;图形编辑器「复制粘贴」图形 | `clone()`、`Prototype` | -| 模式 | 关键词 | -|------|--------| -| 工厂方法 | 子类决定实例化 | -| 抽象工厂 | 产品族 | -| 适配器 | 接口转换 | -| 装饰 | 动态叠加职责 | -| 外观 | 统一对外接口 | -| 代理 | 控制访问 | -| 策略 | 算法互换 | -| 模板方法 | 骨架固定、步骤可覆盖 | -| 观察者 | 通知订阅 | -| 状态 | 状态对象改变行为 | -| 命令 | 请求封装为对象 | +**创建型易混** + +| 对比 | 分辨 | +|------|------| +| 工厂方法 vs 抽象工厂 | 工厂方法:**一个产品等级** 由子类选具体类;抽象工厂:**多产品成族** 一起换 | +| 建造者 vs 抽象工厂 | 建造者:**同一构建流程、逐步装配**;抽象工厂:**一次性拿齐一族产品** | +| 单例 vs 静态类 | 单例可 **多态、延迟加载、可被继承**(题里常考「全局唯一」) | + +--- -- **〔真题〕**:给类图问模式名;或给场景选模式(「算法可替换」→策略等)。 +#### 二、结构型(7)——关心「类和对象的组合」 + +| 模式 | 意图(背一句) | 生活/业务举例 | 典型角色 / 卷面空位 | +|------|----------------|---------------|---------------------| +| **Adapter**
适配器 | 把 **不兼容接口** 转成客户端期望的接口 | 欧标插头 → 转接头 → 国标插座;旧系统 API 包一层给新系统调 | `Target`、`Adaptee`、`Adapter` | +| **Bridge**
桥接 | **抽象与实现分离**,两维度独立扩展 | 遥控器(抽象)+ 电视机/音响(实现);跨平台 **消息发送** × **加密算法** | **`Abstraction`、`Implementor`** | +| **Composite**
组合 | **树形** 结构,统一对待叶子与容器 | 文件夹/文件;菜单/菜单项;组织架构「部门-员工」 | `Component`、`Leaf`、`Composite` | +| **Decorator**
装饰 | **动态** 给对象叠加职责(包装) | 咖啡 + 加奶 + 加糖;`InputStream` 套 `Buffered` 再套 `GZIP` | `Component`、`Decorator`、`ConcreteDecorator` | +| **Facade**
外观 | 为子系统提供 **统一、简单** 的对外接口 | 开机键一键启动:CPU/内存/硬盘子系统对外只暴露 `computer.start()` | `Facade`、多个 `Subsystem` | +| **Flyweight**
享元 | **共享** 细粒度对象,用外在状态区分 | 围棋棋子:黑白各 **一个** 享元对象,位置存在外部;文字编辑器字符样式共享 | `FlyweightFactory`、`intrinsic/extrinsic state` | +| **Proxy**
代理 | 为对象提供 **替身**,控制访问 | 明星经纪人挡电话;懒加载大图;权限校验后再访问真实对象 | `Subject`、`RealSubject`、`Proxy` | + +**结构型易混(软考最爱考)** + +| 对比 | 分辨 | +|------|------| +| **适配器 vs 装饰 vs 代理** | 适配:**改接口**;装饰:**同接口加功能**;代理:**同接口控访问**(常伴延迟/权限) | +| **外观 vs 适配器** | 外观:**简化一堆子系统**,接口可全新;适配:**一对一转接口** | +| **桥接 vs 策略** | 桥接:**结构**上拆「抽象/实现」两继承体系;策略:**行为**上换算法对象 | +| **组合 vs 装饰** | 组合:**树形部分-整体**;装饰:**一层层包装同一接口** | + +--- + +#### 三、行为型(11)——关心「对象如何协作」 + +| 模式 | 意图(背一句) | 生活/业务举例 | 典型角色 / 卷面空位 | +|------|----------------|---------------|---------------------| +| **Chain of Responsibility**
责任链 | 请求沿 **处理者链** 传递,直到有人处理 | 请假:组长 → 经理 → 总监;过滤器链、异常处理链 | `Handler`、`handleRequest()`、`setSuccessor` | +| **Command**
命令 | 把 **请求封装成对象**,支持撤销/队列/日志 | 遥控器按键 = 命令对象;编辑器 **撤销/重做**、事务队列 | `Command`、`Receiver`、`Invoker` | +| **Interpreter**
解释器 | 为 **文法** 定义解释类(表达式树) | 简单计算器 `a+b`;正则、规则引擎(上午选择常考概念) | `AbstractExpression`、`Terminal/Nonterminal` | +| **Iterator**
迭代器 | **顺序访问** 聚合元素,不暴露内部结构 | `for-each` 遍历列表;多种遍历方式(正序/逆序) | `Iterator`、`Aggregate` | +| **Mediator**
中介者 | 多对象 **不直接引用**,经中介通信 | 聊天室:用户只连 **Mediator**,不两两直连;机场塔台调度飞机 | `Mediator`、`Colleague` | +| **Memento**
备忘录 | **保存/恢复** 对象内部状态,不破坏封装 | 游戏存档;编辑器 **快照** 回滚 | `Originator`、`Memento`、`Caretaker` | +| **Observer**
观察者 | **一对多**,主题变则通知观察者 | 公众号推送;MVC 中 Model 变 View 更新;股票行情订阅 | **`Subject`、`Observer`、`attach/notify/update`** | +| **State**
状态 | **状态对象** 改变则行为改变(像换类) | 订单:待支付/已发货/已完成;电梯运行/停止/维修 | **`Context`、`State`、`ConcreteState`** | +| **Strategy**
策略 | 封装 **可互换算法**,运行时选用 | 出行:步行/公交/打车 **策略** 可换;排序比较器 `Comparator` | **`Context`、`Strategy`、`ConcreteStrategy`** | +| **Template Method**
模板方法 | **骨架在父类固定**,子类实现部分步骤 | 泡茶/泡咖啡:烧水相同,「放茶叶/放咖啡」子类不同 | `AbstractClass`、`templateMethod()`、钩子方法 | +| **Visitor**
访问者 | **不改元素类**,在外部加新操作 | 对 AST 各节点做「类型检查/代码生成」;报表导出遍历不同部门节点 | `Visitor`、`visit(Element)`、`accept()` | + +**行为型易混(必背)** + +| 对比 | 分辨 | +|------|------| +| **策略 vs 状态** | 策略:客户端 **主动换** 算法;状态:随 **内部状态迁移** 自动换行为 | +| **策略 vs 模板方法** | 策略:**组合** 算法对象;模板:**继承** 覆写步骤 | +| **观察者 vs 中介者** | 观察者:**主题发布**,观察者订阅;中介者:**中心枢纽**,同事互不直连 | +| **命令 vs 策略** | 命令:封装 **一次操作/请求**(常带撤销);策略:封装 **算法族** | +| **状态 vs 策略** | 状态类图常像策略,但语境是 **状态机/生命周期** → 状态 | + +--- + +#### 1.3.1 按题型速查(上午选择 + 下午填空) + +| 题干关键词 | 优先模式 | +|------------|----------| +| 全局唯一、单实例 | Singleton | +| 子类决定创建哪种产品 | Factory Method | +| 成套换肤、产品族 | Abstract Factory | +| 分步组装、同样构建不同表示 | **Builder** | +| 克隆、复制已有对象 | Prototype | +| 旧接口、不兼容、转接 | Adapter | +| 两个维度独立变化 | **Bridge** | +| 树形、部分-整体一致对待 | Composite | +| 动态叠加功能、包装 | Decorator | +| 简化子系统、统一入口 | Facade | +| 大量重复对象、共享内部状态 | Flyweight | +| 延迟加载、权限、替身 | Proxy | +| 沿链传递、逐级审批 | Chain of Responsibility | +| 撤销、重做、请求对象化 | Command | +| 文法、表达式 | Interpreter | +| 遍历集合、不暴露内部 | Iterator | +| 多对象互聊、降低网状依赖 | Mediator | +| 存档、恢复快照 | Memento | +| 订阅通知、发布 | **Observer** | +| 订单状态、会员等级变行为 | **State** | +| 算法可替换、运行时切换 | **Strategy** | +| 固定流程、子类填步骤 | Template Method | +| 对结构加新操作、不改原类 | Visitor | + +- **〔真题〕**:给类图问模式名;或给场景选模式(「算法可替换」→ **Strategy**;「一对多通知」→ **Observer**)。程序填空常考 **Builder / Bridge / State / Strategy / Observer** 角色类名,见 [设计模式应试要点](/ruan-kao/soft-design/topics/patterns-exam.html)。 ### 1.4 设计原则 @@ -79,9 +205,31 @@ flowchart TB ## 二、速记与背诵 +### UML + - **include 必走,extend 看条件**。 -- **适配转接口,装饰包一层,外观挡复杂,代理管访问**。 -- **策略换算法,模板定骨架,观察者广播**。 + +### 三类总括 + +- **创建**:单例唯一,工厂造对象,抽象工厂造一族,建造者分步装,原型靠克隆。 +- **结构**:适配转接口,桥接拆两维,组合成树,装饰包一层,外观挡复杂,享元要共享,代理管访问。 +- **行为**:责任链传递,命令可撤销,解释器文法,迭代器遍历,中介者居中,备忘录存档,观察者广播,状态机换行为,策略换算法,模板定骨架,访问者加操作。 + +### 23 模式英文速记(对照卷面填空) + +| 创建型 | 结构型 | 行为型 | +|--------|--------|--------| +| Singleton | Adapter | Chain of Responsibility | +| Factory Method | Bridge | Command | +| Abstract Factory | Composite | Interpreter | +| Builder | Decorator | Iterator | +| Prototype | Facade | Mediator | +| | Flyweight | Memento | +| | Proxy | Observer | +| | | State | +| | | Strategy | +| | | Template Method | +| | | Visitor | ## 三、考场检查清单 diff --git "a/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\347\256\227\346\263\225\350\256\276\350\256\241\345\241\253\347\251\272.md" "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\347\256\227\346\263\225\350\256\276\350\256\241\345\241\253\347\251\272.md" index 790117757..eee9d0b6a 100644 --- "a/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\347\256\227\346\263\225\350\256\276\350\256\241\345\241\253\347\251\272.md" +++ "b/docs/ruan-kao/soft-design/\345\272\224\347\224\250\346\212\200\346\234\257/\347\256\227\346\263\225\350\256\276\350\256\241\345\241\253\347\251\272.md" @@ -8,6 +8,134 @@ permalink: /ruan-kao/soft-design/applied/algo-fill.html > **快拿分**:**变量名与上下文一致**;循环 **上界/下界** 与题给数组长度一致;DP **01 背包内层逆序**;递归 **基准情形**——阅卷按空给分,**猜结构合理的式子**优于留空。 > **配套**:[下午算法题考频与应试预测](/ruan-kao/soft-design/topics/pm-algorithm.html) · [Java程序填空](/ruan-kao/soft-design/applied/java-fill.html) +--- + +## 〇、动态规划 · 分治 · 贪心(概念、区别、复杂度) + +下午第四题(算法填空)与上午选择题常考 **范式识别 + 复杂度阶 + 填空位置**。下表先 **10 秒定类**,再按类背模板。 + +### 0.1 一句话概念 + +| 范式 | 核心思想 | 记一句 | +|------|----------|--------| +| **动态规划 DP** | 把大问题拆成 **重叠子问题**,**记住** 子问题最优解,自底向上(或记忆化)拼出全局最优 | **拆 + 重叠 + 记表** | +| **分治** | 把问题 **互不重叠** 地拆成规模更小的子问题,**分别求解再合并** | **拆 + 不重叠 + 合并** | +| **贪心** | 每步做 **当前看起来最好** 的选择,希望全局最优(需 **贪心选择性质**) | **每步局部最优,一般不回头** | + +### 0.2 三者区别(软考最爱考) + +| 维度 | 动态规划 | 分治 | 贪心 | +|------|----------|------|------| +| 子问题关系 | **重叠**(同一子问题算多次) | **独立**(子问题互不影响) | 往往 **无显式「子问题表」**,一步接一步 | +| 是否保证最优 | 在 **最优子结构 + 重叠** 成立时 **保证** | 合并正确则 **保证**(如归并排序) | **不一定**;题里常 **已暗示** 可贪心 | +| 典型实现 | `dp` 数组、填表顺序、转移方程 | 递归 + `mid` + `merge`/`combine` | **排序** + 一次扫描 / 选最大最小 | +| 下午填空特征 | `dp[i][j] = …`、初值、**循环方向** | `mid`、递归出口、左右区间 | `sort` 关键字、`if` 比较、累加器 | +| 与回溯对比 | 用表 **避免重复计算** | 子问题 **不必回溯** | **不回溯**;回溯是 **穷举+剪枝** | + +```mermaid +flowchart TD + Q[读题干] --> A{有重叠子问题
要记最优子解?} + A -->|是| DP[动态规划] + A -->|否| B{拆成独立子问题
再合并?} + B -->|是| DC[分治] + B -->|否| C{每步局部最优
且题意支持?} + C -->|是| GR[贪心] + C -->|否| BT[考虑回溯/暴力/其他] +``` + +### 0.3 考场 30 秒快判(题干信号) + +| 看到这些 → | 优先想 | +|------------|--------| +| 0-1 背包、钢条切割、最长公共子序列、编辑距离、路径数、「方案数/最大价值」且 **子结构重复** | **DP** | +| 假币称重、归并/快排、二分、大整数乘法分块、「分成两半再合并」 | **分治** | +| 活动安排、霍夫曼编码、**分数背包**、按截止时间/结束时间排序后贪心、最小生成树选边 | **贪心** | +| n 皇后、全排列、Hamilton 路径、「尝试+撤销」 | **回溯**(不是本节三范式,但常与之混) | + +**易混** + +- **0-1 背包** → **DP**(物品不能拆分);**分数背包** → **贪心**(可按比例取)。 +- **钢条切割 / 硬币凑金额(无限枚)** → 多为 **DP**;**硬币凑金额(面额可贪心,如 1,5,10)** 上午可能考 **贪心是否最优**。 +- **假币** → **分治**(三分或二分称重),不是 DP。 + +--- + +### 0.4 举例说明(帮助记忆) + +#### 动态规划 + +| 例题 | 记忆点 | 状态(写什么) | 典型复杂度 | +|------|--------|----------------|------------| +| **0-1 背包** | 每件物品 **最多选一次**;下午卷高频 | `dp[v]` 或 `dp[i][v]`:容量 `v` 下最大价值 | 时间 \(O(nW)\),空间 \(O(W)\) 滚动数组 | +| **钢条切割** | 一根钢条切几段使总价最大(2018 上样本) | `dp[i]`:长度为 `i` 的最大收益 | 时间 \(O(n^2)\),空间 \(O(n)\) | +| **最长公共子序列 LCS** | 两串公共子序列最长 | `dp[i][j]`:前缀 `i,j` 的 LCS 长度 | 时间 \(O(mn)\),空间 \(O(mn)\) 或滚动 \(O(\min(m,n))\) | +| **爬楼梯 / 路径数** | 到第 `i` 阶方案数 | `dp[i]=dp[i-1]+dp[i-2]` 或网格 `dp[i][j]` | 时间 \(O(n)\) 或 \(O(mn)\) | +| **硬币凑满(最少枚)** | 面额不限次数 | `dp[amount]`:凑 `amount` 最少币数 | 时间 \(O(n \cdot amount)\) | + +**DP 书写四步(下午填空按此顺序想)** + +1. **定义** `dp` 含义(一行注释也算分) +2. **初值**(`dp[0]=0`、第一行第一列等) +3. **转移**(`max/min/+` 来自哪几个下标) +4. **循环顺序**(01 背包:**容量 `v` 从大到小**) + +#### 分治 + +| 例题 | 记忆点 | 分什么 / 怎么合 | 典型复杂度 | +|------|--------|-----------------|------------| +| **假币问题** | 三秤或一秤找假币(2017 上) | 分成 **2 或 3 堆** 称重,缩小范围 | 称重次数 \(O(\log n)\) 量级 | +| **归并排序** | 先分后 **merge** 有序段 | `mid` 分左右,`merge` 合并 | 时间 \(O(n\log n)\),空间 \(O(n)\) | +| **快速排序** | `partition` 后递归左右 | `pivot` 划分 | 平均 \(O(n\log n)\),最坏 \(O(n^2)\);空间 \(O(\log n)\) 栈 | +| **二分查找** | 有序数组找目标 | 中点比较,缩一半 | 时间 \(O(\log n)\),空间 \(O(1)\) | +| **大整数乘法(概念)** | 拆成两半再组合 | Karatsuba 等 | 优于 \(O(n^2)\)(上午选择了解即可) | + +**分治填空常考空**:`mid = (lo + hi) / 2` 或 `lo + (hi-lo)/2`;**递归出口** `lo >= hi`;`merge` 时 **双指针** `i,j`。 + +#### 贪心 + +| 例题 | 记忆点 | 贪心策略 | 典型复杂度 | +|------|--------|----------|------------| +| **活动安排** | 最多参加几场不冲突活动 | 按 **结束时间** 排序,能选就选 | \(O(n\log n)\) 排序 + \(O(n)\) 扫描 | +| **霍夫曼编码** | WPL 最小 | 每次合并 **权值最小** 两棵树 | \(O(n\log n)\)(与上午哈夫曼一致) | +| **分数背包** | 物品可 **按比例** 取 | 按 **单位价值** 降序装填 | \(O(n\log n)\) | +| **Prim / Kruskal(概念)** | 最小生成树 | 选 **当前最小边**(满足不成环) | Kruskal 排序边 \(O(E\log E)\) | + +**贪心填空常考空**:**排序比较器** 关键字;`if ( … )` 里 **局部最优条件**;累加器 **初值**(0 或 1)。 + +--- + +### 0.5 时间 / 空间复杂度对照(常考经典题) + +> 记 **阶** 即可应对上午选择;下午填空若问循环层数,对照下表反推。 + +| 问题 | 范式 | 时间复杂度 | 空间复杂度 | 备注 | +|------|------|------------|------------|------| +| 0-1 背包 | DP | \(O(nW)\) | \(O(W)\) 滚动 / \(O(nW)\) 二维 | \(W\) 为容量上界 | +| 完全背包 | DP | \(O(nW)\) | \(O(W)\) | 内层容量常 **正序** | +| 钢条切割 | DP | \(O(n^2)\) | \(O(n)\) | | +| LCS | DP | \(O(mn)\) | \(O(mn)\) 或优化 | | +| 矩阵链乘 | DP | \(O(n^3)\) | \(O(n^2)\) | 区间 DP,按 **长度** 枚举 | +| 假币(三分) | 分治 | \(O(\log_3 n)\) 次称重 | \(O(1)\) | 每次缩到 1/3 | +| 归并排序 | 分治 | \(O(n\log n)\) | \(O(n)\) | 稳定 | +| 快速排序 | 分治 | 平均 \(O(n\log n)\),最坏 \(O(n^2)\) | \(O(\log n)\) 栈 | 不稳定 | +| 二分查找 | 分治 | \(O(\log n)\) | \(O(1)\) | | +| 活动安排 | 贪心 | \(O(n\log n)\) | \(O(1)\) | 排序主导 | +| 分数背包 | 贪心 | \(O(n\log n)\) | \(O(1)\) | | +| 霍夫曼树 | 贪心 | \(O(n\log n)\) | \(O(n)\) | 上午 WPL 题 | + +**主定理(分治递归式,上午偶考)** + +若 \(T(n)=aT(n/b)+f(n)\),\(a\ge1,b>1\):与 \(n^{\log_b a}\) 比较 \(f(n)\) 定阶。 +例:归并 \(a=2,b=2,f(n)=O(n)\) → \(T(n)=O(n\log n)\)。 + +### 0.6 速记口诀 + +- **DP**:重叠子问题,**定义转移初值序**;背包 **01 逆序、完全正序**。 +- **分治**:**分、治、合**;记 `mid` 与 **出口**。 +- **贪心**:**先排序再扫描**;问「是否最优」要警惕 **反例**(上午选择)。 + +--- + ## 一、知识与应试(考点·难点·知识点合一) ### 1.1 读题与定式 @@ -31,6 +159,7 @@ permalink: /ruan-kao/soft-design/applied/algo-fill.html ## 二、速记与背诵 +- **范式**:重叠子问题 → **DP**;独立子问题合并 → **分治**;局部最优排序扫描 → **贪心**(详见 **§〇**)。 - **背包 01**:`for i` 物品,`for v` 容量 **down to w[i]**。 - **区间 DP**:长度 `len` 从小到大枚举。 - **图 DFS**:`visited` 标记 + 邻接表遍历。