From c29f01ece2a3c368b1b1ef543ae0cac28433f702 Mon Sep 17 00:00:00 2001 From: zj3D Date: Wed, 21 May 2025 23:27:58 +0800 Subject: [PATCH] 052123 --- .../2 松耦合/3 进程独立}/restful/app.py | 0 .../2 松耦合/3 进程独立}/restful/client.py | 0 .../微服务}/client_app.py | 0 .../微服务}/counter_service.py | 0 .../微服务}/sorter_service.py | 0 .../微服务}/tokenizer_service.py | 0 ...程_不合并.py => 服务进程_不合并.py} | 0 ...务进程_分包.py => 服务进程_分包.py} | 1 + .../14 多计算单元/数据分包/1 mapreduce.py | 3 +++ ...在那一刻.py => 时间停止在那一刻.py} | 0 ...软件不能挂掉.py => 软件不能挂掉.py} | 0 ...可能的错误.py => 预判可能的错误.py} | 0 .../{5 对象属性 .py => 对象属性 .py} | 0 .../17 其它/{3 状态机 => 状态机}/81A.py | 0 .../{01 封装.ipynb => 01 三种封装.ipynb} | 10 +++++++++- ...性.ipynb => 02 非常规代码执行流.ipynb} | 14 ++++++++++---- D 走向工业级代码/03 设计模式.ipynb | 12 ++++++++++++ .../config/settings.yaml | 0 .../readme.MD | 0 .../src/core.py | 0 .../src/file_io.py | 0 .../tests/integration/test_pipeline.py | 0 .../tests/performance/test_benchmark.py | 0 .../tests/unit/test_tokenizer.py | 0 .../测试驱动开发.ipynb | 0 25 files changed, 35 insertions(+), 5 deletions(-) rename A 动机与模式/{14 多计算单元/数据共享/4 网络 => 13 工程化考虑/2 松耦合/3 进程独立}/restful/app.py (100%) rename A 动机与模式/{14 多计算单元/数据共享/4 网络 => 13 工程化考虑/2 松耦合/3 进程独立}/restful/client.py (100%) rename A 动机与模式/13 工程化考虑/2 松耦合/{3 微服务 => 3 进程独立/微服务}/client_app.py (100%) rename A 动机与模式/13 工程化考虑/2 松耦合/{3 微服务 => 3 进程独立/微服务}/counter_service.py (100%) rename A 动机与模式/13 工程化考虑/2 松耦合/{3 微服务 => 3 进程独立/微服务}/sorter_service.py (100%) rename A 动机与模式/13 工程化考虑/2 松耦合/{3 微服务 => 3 进程独立/微服务}/tokenizer_service.py (100%) rename A 动机与模式/14 多计算单元/数据共享/2 本地服务/{2 服务进程_不合并.py => 服务进程_不合并.py} (100%) rename A 动机与模式/14 多计算单元/数据共享/2 本地服务/{2 服务进程_分包.py => 服务进程_分包.py} (99%) rename A 动机与模式/16 异常/{2 时间停止在那一刻.py => 时间停止在那一刻.py} (100%) rename A 动机与模式/16 异常/{1 软件不能挂掉.py => 软件不能挂掉.py} (100%) rename A 动机与模式/16 异常/{3 预判可能的错误.py => 预判可能的错误.py} (100%) rename A 动机与模式/17 其它/{5 对象属性 .py => 对象属性 .py} (100%) rename A 动机与模式/17 其它/{3 状态机 => 状态机}/81A.py (100%) rename D 走向工业级代码/{01 封装.ipynb => 01 三种封装.ipynb} (99%) rename D 走向工业级代码/{02 利用语言特性.ipynb => 02 非常规代码执行流.ipynb} (97%) rename D 走向工业级代码/{测试驱动的开发 => 04 测试驱动的开发}/config/settings.yaml (100%) rename D 走向工业级代码/{测试驱动的开发 => 04 测试驱动的开发}/readme.MD (100%) rename D 走向工业级代码/{测试驱动的开发 => 04 测试驱动的开发}/src/core.py (100%) rename D 走向工业级代码/{测试驱动的开发 => 04 测试驱动的开发}/src/file_io.py (100%) rename D 走向工业级代码/{测试驱动的开发 => 04 测试驱动的开发}/tests/integration/test_pipeline.py (100%) rename D 走向工业级代码/{测试驱动的开发 => 04 测试驱动的开发}/tests/performance/test_benchmark.py (100%) rename D 走向工业级代码/{测试驱动的开发 => 04 测试驱动的开发}/tests/unit/test_tokenizer.py (100%) rename D 走向工业级代码/{测试驱动的开发 => 04 测试驱动的开发}/测试驱动开发.ipynb (100%) diff --git a/A 动机与模式/14 多计算单元/数据共享/4 网络/restful/app.py b/A 动机与模式/13 工程化考虑/2 松耦合/3 进程独立/restful/app.py similarity index 100% rename from A 动机与模式/14 多计算单元/数据共享/4 网络/restful/app.py rename to A 动机与模式/13 工程化考虑/2 松耦合/3 进程独立/restful/app.py diff --git a/A 动机与模式/14 多计算单元/数据共享/4 网络/restful/client.py b/A 动机与模式/13 工程化考虑/2 松耦合/3 进程独立/restful/client.py similarity index 100% rename from A 动机与模式/14 多计算单元/数据共享/4 网络/restful/client.py rename to A 动机与模式/13 工程化考虑/2 松耦合/3 进程独立/restful/client.py diff --git a/A 动机与模式/13 工程化考虑/2 松耦合/3 微服务/client_app.py b/A 动机与模式/13 工程化考虑/2 松耦合/3 进程独立/微服务/client_app.py similarity index 100% rename from A 动机与模式/13 工程化考虑/2 松耦合/3 微服务/client_app.py rename to A 动机与模式/13 工程化考虑/2 松耦合/3 进程独立/微服务/client_app.py diff --git a/A 动机与模式/13 工程化考虑/2 松耦合/3 微服务/counter_service.py b/A 动机与模式/13 工程化考虑/2 松耦合/3 进程独立/微服务/counter_service.py similarity index 100% rename from A 动机与模式/13 工程化考虑/2 松耦合/3 微服务/counter_service.py rename to A 动机与模式/13 工程化考虑/2 松耦合/3 进程独立/微服务/counter_service.py diff --git a/A 动机与模式/13 工程化考虑/2 松耦合/3 微服务/sorter_service.py b/A 动机与模式/13 工程化考虑/2 松耦合/3 进程独立/微服务/sorter_service.py similarity index 100% rename from A 动机与模式/13 工程化考虑/2 松耦合/3 微服务/sorter_service.py rename to A 动机与模式/13 工程化考虑/2 松耦合/3 进程独立/微服务/sorter_service.py diff --git a/A 动机与模式/13 工程化考虑/2 松耦合/3 微服务/tokenizer_service.py b/A 动机与模式/13 工程化考虑/2 松耦合/3 进程独立/微服务/tokenizer_service.py similarity index 100% rename from A 动机与模式/13 工程化考虑/2 松耦合/3 微服务/tokenizer_service.py rename to A 动机与模式/13 工程化考虑/2 松耦合/3 进程独立/微服务/tokenizer_service.py diff --git a/A 动机与模式/14 多计算单元/数据共享/2 本地服务/2 服务进程_不合并.py b/A 动机与模式/14 多计算单元/数据共享/2 本地服务/服务进程_不合并.py similarity index 100% rename from A 动机与模式/14 多计算单元/数据共享/2 本地服务/2 服务进程_不合并.py rename to A 动机与模式/14 多计算单元/数据共享/2 本地服务/服务进程_不合并.py diff --git a/A 动机与模式/14 多计算单元/数据共享/2 本地服务/2 服务进程_分包.py b/A 动机与模式/14 多计算单元/数据共享/2 本地服务/服务进程_分包.py similarity index 99% rename from A 动机与模式/14 多计算单元/数据共享/2 本地服务/2 服务进程_分包.py rename to A 动机与模式/14 多计算单元/数据共享/2 本地服务/服务进程_分包.py index 4d50495..319ab95 100644 --- a/A 动机与模式/14 多计算单元/数据共享/2 本地服务/2 服务进程_分包.py +++ b/A 动机与模式/14 多计算单元/数据共享/2 本地服务/服务进程_分包.py @@ -38,5 +38,6 @@ def main(): word_freqs = Counter(word_count).most_common(10) print_word_freqs(word_freqs) + if __name__ == '__main__': main() \ No newline at end of file diff --git a/A 动机与模式/14 多计算单元/数据分包/1 mapreduce.py b/A 动机与模式/14 多计算单元/数据分包/1 mapreduce.py index a0dcd22..af42d81 100644 --- a/A 动机与模式/14 多计算单元/数据分包/1 mapreduce.py +++ b/A 动机与模式/14 多计算单元/数据分包/1 mapreduce.py @@ -31,3 +31,6 @@ def main(): if __name__ == '__main__': main() +''' +简单的利用函数式风格 +''' diff --git a/A 动机与模式/16 异常/2 时间停止在那一刻.py b/A 动机与模式/16 异常/时间停止在那一刻.py similarity index 100% rename from A 动机与模式/16 异常/2 时间停止在那一刻.py rename to A 动机与模式/16 异常/时间停止在那一刻.py diff --git a/A 动机与模式/16 异常/1 软件不能挂掉.py b/A 动机与模式/16 异常/软件不能挂掉.py similarity index 100% rename from A 动机与模式/16 异常/1 软件不能挂掉.py rename to A 动机与模式/16 异常/软件不能挂掉.py diff --git a/A 动机与模式/16 异常/3 预判可能的错误.py b/A 动机与模式/16 异常/预判可能的错误.py similarity index 100% rename from A 动机与模式/16 异常/3 预判可能的错误.py rename to A 动机与模式/16 异常/预判可能的错误.py diff --git a/A 动机与模式/17 其它/5 对象属性 .py b/A 动机与模式/17 其它/对象属性 .py similarity index 100% rename from A 动机与模式/17 其它/5 对象属性 .py rename to A 动机与模式/17 其它/对象属性 .py diff --git a/A 动机与模式/17 其它/3 状态机/81A.py b/A 动机与模式/17 其它/状态机/81A.py similarity index 100% rename from A 动机与模式/17 其它/3 状态机/81A.py rename to A 动机与模式/17 其它/状态机/81A.py diff --git a/D 走向工业级代码/01 封装.ipynb b/D 走向工业级代码/01 三种封装.ipynb similarity index 99% rename from D 走向工业级代码/01 封装.ipynb rename to D 走向工业级代码/01 三种封装.ipynb index f1e30bf..4df7e4e 100644 --- a/D 走向工业级代码/01 封装.ipynb +++ b/D 走向工业级代码/01 三种封装.ipynb @@ -1,11 +1,19 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "f5d8e56d", + "metadata": {}, + "source": [ + "# 降低认知负荷" + ] + }, { "cell_type": "markdown", "id": "b9a9a366-7fd3-422b-b3bc-b0bc00374da6", "metadata": {}, "source": [ - "# 目标\n", + "## 目标\n", "- 理解封装方法(函数、类、模块)在代码组织中的作用。\n", "\n", "封装方法:\n", diff --git a/D 走向工业级代码/02 利用语言特性.ipynb b/D 走向工业级代码/02 非常规代码执行流.ipynb similarity index 97% rename from D 走向工业级代码/02 利用语言特性.ipynb rename to D 走向工业级代码/02 非常规代码执行流.ipynb index 5398df7..e4bdbb0 100644 --- a/D 走向工业级代码/02 利用语言特性.ipynb +++ b/D 走向工业级代码/02 非常规代码执行流.ipynb @@ -1,5 +1,13 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "8a36de81", + "metadata": {}, + "source": [ + "# 更优雅的执行流" + ] + }, { "cell_type": "markdown", "id": "86405617-889a-40c2-a895-7b51fb14b65d", @@ -7,7 +15,7 @@ "source": [ "# 目标\n", "\n", - "- 在词频统计案例中引入装饰器和函数式编程 。\n", + "- 代码执行流在面向过程模式中包括顺序、选择、循环、函数,引入面向对象后,有了各种魔术方法的特殊执行时机。此外装饰器、生成器和函数风格编程 又规定了一些特定的代码执行流 。\n", "- 分析这些特性和模式如何进一步优化代码质量(可读性、可维护性、可扩展性、复用性)。\n", "- 探讨高级特性在案例中的适用性与局限性。" ] @@ -280,10 +288,8 @@ "\n", "实践练习:\n", "- 添加日志装饰器,记录每次文件处理的详细信息。\n", - "- 使用 functools.reduce 重写 get_top_words,尝试不同排序逻辑。\n", - "\n", - "扩展任务:\n", "- 添加缓存装饰器,避免重复分词相同文件。\n", + "- 使用 functools.reduce 重写 get_top_words,尝试不同排序逻辑。\n", "- 实现函数式管道,将文件读取、分词、统计串联为单一流。" ] } diff --git a/D 走向工业级代码/03 设计模式.ipynb b/D 走向工业级代码/03 设计模式.ipynb index 1a6f3a9..e54e670 100644 --- a/D 走向工业级代码/03 设计模式.ipynb +++ b/D 走向工业级代码/03 设计模式.ipynb @@ -1,5 +1,17 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "1e804515", + "metadata": { + "vscode": { + "languageId": "raw" + } + }, + "source": [ + "# 按最佳实践写代码" + ] + }, { "cell_type": "raw", "id": "eccfe49f-de35-4241-90e3-a7095940b61a", diff --git a/D 走向工业级代码/测试驱动的开发/config/settings.yaml b/D 走向工业级代码/04 测试驱动的开发/config/settings.yaml similarity index 100% rename from D 走向工业级代码/测试驱动的开发/config/settings.yaml rename to D 走向工业级代码/04 测试驱动的开发/config/settings.yaml diff --git a/D 走向工业级代码/测试驱动的开发/readme.MD b/D 走向工业级代码/04 测试驱动的开发/readme.MD similarity index 100% rename from D 走向工业级代码/测试驱动的开发/readme.MD rename to D 走向工业级代码/04 测试驱动的开发/readme.MD diff --git a/D 走向工业级代码/测试驱动的开发/src/core.py b/D 走向工业级代码/04 测试驱动的开发/src/core.py similarity index 100% rename from D 走向工业级代码/测试驱动的开发/src/core.py rename to D 走向工业级代码/04 测试驱动的开发/src/core.py diff --git a/D 走向工业级代码/测试驱动的开发/src/file_io.py b/D 走向工业级代码/04 测试驱动的开发/src/file_io.py similarity index 100% rename from D 走向工业级代码/测试驱动的开发/src/file_io.py rename to D 走向工业级代码/04 测试驱动的开发/src/file_io.py diff --git a/D 走向工业级代码/测试驱动的开发/tests/integration/test_pipeline.py b/D 走向工业级代码/04 测试驱动的开发/tests/integration/test_pipeline.py similarity index 100% rename from D 走向工业级代码/测试驱动的开发/tests/integration/test_pipeline.py rename to D 走向工业级代码/04 测试驱动的开发/tests/integration/test_pipeline.py diff --git a/D 走向工业级代码/测试驱动的开发/tests/performance/test_benchmark.py b/D 走向工业级代码/04 测试驱动的开发/tests/performance/test_benchmark.py similarity index 100% rename from D 走向工业级代码/测试驱动的开发/tests/performance/test_benchmark.py rename to D 走向工业级代码/04 测试驱动的开发/tests/performance/test_benchmark.py diff --git a/D 走向工业级代码/测试驱动的开发/tests/unit/test_tokenizer.py b/D 走向工业级代码/04 测试驱动的开发/tests/unit/test_tokenizer.py similarity index 100% rename from D 走向工业级代码/测试驱动的开发/tests/unit/test_tokenizer.py rename to D 走向工业级代码/04 测试驱动的开发/tests/unit/test_tokenizer.py diff --git a/D 走向工业级代码/测试驱动的开发/测试驱动开发.ipynb b/D 走向工业级代码/04 测试驱动的开发/测试驱动开发.ipynb similarity index 100% rename from D 走向工业级代码/测试驱动的开发/测试驱动开发.ipynb rename to D 走向工业级代码/04 测试驱动的开发/测试驱动开发.ipynb