diff --git a/13 多计算单元/数据共享/1 队列.py b/13 多计算单元/数据共享/1 内存/1 队列.py similarity index 100% rename from 13 多计算单元/数据共享/1 队列.py rename to 13 多计算单元/数据共享/1 内存/1 队列.py diff --git a/13 多计算单元/数据共享/2 服务进程_不合并.py b/13 多计算单元/数据共享/2 本地服务/2 服务进程_不合并.py similarity index 100% rename from 13 多计算单元/数据共享/2 服务进程_不合并.py rename to 13 多计算单元/数据共享/2 本地服务/2 服务进程_不合并.py diff --git a/13 多计算单元/数据共享/2 服务进程_分包.py b/13 多计算单元/数据共享/2 本地服务/2 服务进程_分包.py similarity index 100% rename from 13 多计算单元/数据共享/2 服务进程_分包.py rename to 13 多计算单元/数据共享/2 本地服务/2 服务进程_分包.py diff --git a/13 多计算单元/数据共享/4 数据库/ORM/DataQuery.py b/13 多计算单元/数据共享/3 数据库/ORM/DataQuery.py similarity index 100% rename from 13 多计算单元/数据共享/4 数据库/ORM/DataQuery.py rename to 13 多计算单元/数据共享/3 数据库/ORM/DataQuery.py diff --git a/13 多计算单元/数据共享/4 数据库/ORM/createDb.py b/13 多计算单元/数据共享/3 数据库/ORM/createDb.py similarity index 100% rename from 13 多计算单元/数据共享/4 数据库/ORM/createDb.py rename to 13 多计算单元/数据共享/3 数据库/ORM/createDb.py diff --git a/13 多计算单元/数据共享/4 数据库/ORM/processData.py b/13 多计算单元/数据共享/3 数据库/ORM/processData.py similarity index 100% rename from 13 多计算单元/数据共享/4 数据库/ORM/processData.py rename to 13 多计算单元/数据共享/3 数据库/ORM/processData.py diff --git a/13 多计算单元/数据共享/4 数据库/tf.db b/13 多计算单元/数据共享/3 数据库/tf.db similarity index 100% rename from 13 多计算单元/数据共享/4 数据库/tf.db rename to 13 多计算单元/数据共享/3 数据库/tf.db diff --git a/13 多计算单元/数据共享/4 数据库/数据库.py b/13 多计算单元/数据共享/3 数据库/数据库.py similarity index 100% rename from 13 多计算单元/数据共享/4 数据库/数据库.py rename to 13 多计算单元/数据共享/3 数据库/数据库.py diff --git a/15 工程化/1 松耦合/4 restful/app.py b/13 多计算单元/数据共享/4 网络/restful/app.py similarity index 100% rename from 15 工程化/1 松耦合/4 restful/app.py rename to 13 多计算单元/数据共享/4 网络/restful/app.py diff --git a/15 工程化/1 松耦合/4 restful/client.py b/13 多计算单元/数据共享/4 网络/restful/client.py similarity index 100% rename from 15 工程化/1 松耦合/4 restful/client.py rename to 13 多计算单元/数据共享/4 网络/restful/client.py diff --git a/15 工程化/1 松耦合/1 观察者/1 观察者.py b/15 工程化/1 松耦合/1 观察者/1 观察者.py index c360af9..b343db3 100644 --- a/15 工程化/1 松耦合/1 观察者/1 观察者.py +++ b/15 工程化/1 松耦合/1 观察者/1 观察者.py @@ -53,7 +53,7 @@ def main(testfilepath, top_n = 10 ): wordlist = re_split( read_file(testfilepath) ) for word in wordlist: if word not in stopwords: - subject.notify(word) # 触发 + subject.notify(word) # 通知 # 打印最高的N个词频 top_words = observer.word_count.most_common(top_n) diff --git a/15 工程化/1 松耦合/1 观察者/3 注册回调.py b/15 工程化/1 松耦合/1 观察者/3 注册回调.py index b5854cf..00d723d 100644 --- a/15 工程化/1 松耦合/1 观察者/3 注册回调.py +++ b/15 工程化/1 松耦合/1 观察者/3 注册回调.py @@ -1,3 +1,4 @@ +################ 待整理 ''' 注册者 = 观察者 diff --git a/15 工程化/1 松耦合/1 观察者/4 订阅发布.py b/15 工程化/1 松耦合/1 观察者/4 订阅发布.py index 5e6da70..d2bed7f 100644 --- a/15 工程化/1 松耦合/1 观察者/4 订阅发布.py +++ b/15 工程化/1 松耦合/1 观察者/4 订阅发布.py @@ -1,3 +1,5 @@ +################ 待整理 + from cppy.cp_util import * ''' 订阅者 = 注册者 = 观察者 diff --git a/15 工程化/1 松耦合/2 消息链/1 只有消息接口.py b/15 工程化/1 松耦合/2 消息链/1 只有消息接口.py index a020795..7f609c2 100644 --- a/15 工程化/1 松耦合/2 消息链/1 只有消息接口.py +++ b/15 工程化/1 松耦合/2 消息链/1 只有消息接口.py @@ -1,3 +1,4 @@ +################ 待整理 ''' 应用场景针对各个组件的 notify 方法发指令来驱动所有工作 这是一个示例性质的原型,具体分布式环境下需要调整 diff --git a/15 工程化/1 松耦合/2 消息链/2 调用链py b/15 工程化/1 松耦合/2 消息链/2 调用链.py similarity index 78% rename from 15 工程化/1 松耦合/2 消息链/2 调用链py rename to 15 工程化/1 松耦合/2 消息链/2 调用链.py index 8190bc6..75946f3 100644 --- a/15 工程化/1 松耦合/2 消息链/2 调用链py +++ b/15 工程化/1 松耦合/2 消息链/2 调用链.py @@ -3,8 +3,8 @@ from cppy.cp_util import * # 这个例子没有实际意义,是用来帮助理解其他例子 # 主程序只需要启动第一个动作,后面的顺序逻辑写到各个函数里面了 -def readfile(path_to_file, func): - data = read_file(path_to_file) +def readfile(file_path, func): + data = read_file(file_path) func(data, frequencies) def extractwords(str_data,func): @@ -17,7 +17,7 @@ def frequencies(word_list, func): def sort(wf, func): func(sort_dict(wf), None) -def printall(word_freqs, func): +def printall(word_freqs, _ ): print_word_freqs(word_freqs) if __name__ == "__main__": diff --git a/15 工程化/1 松耦合/2 消息链/4 消息队列.py b/15 工程化/1 松耦合/2 消息链/4 消息队列.py index 13719fd..84e8c47 100644 --- a/15 工程化/1 松耦合/2 消息链/4 消息队列.py +++ b/15 工程化/1 松耦合/2 消息链/4 消息队列.py @@ -1,3 +1,4 @@ +################ 待整理 ''' 多线程各个模块比较乱的但是协作序贯的完成了数据处理 各个组件完全不能互操作,仅依靠队列发消息进行协作 @@ -10,15 +11,15 @@ from threading import Thread from queue import Queue from cppy.cp_util import * -class ActiveWFObject(Thread): +class ThreadObject(Thread): def __init__(self): super().__init__() self.queue = Queue() - self._stopMe = False + self._over = False self.start() def run(self): - while not self._stopMe: + while not self._over: message = self.queue.get() self._dispatch(message) if message[0] == 'over': @@ -27,8 +28,7 @@ class ActiveWFObject(Thread): def send(receiver, message): receiver.queue.put(message) -class DataStorageManager(ActiveWFObject): - """ Models the contents of the file """ +class TxtManager(ThreadObject): _data = '' def _dispatch(self, message): @@ -36,8 +36,7 @@ class DataStorageManager(ActiveWFObject): self._init(message[1:]) elif message[0] == 'send_word_freqs': self._process_words(message[1:]) - else: - # forward + else: send(self._stop_word_manager, message) def _init(self, message): @@ -50,8 +49,8 @@ class DataStorageManager(ActiveWFObject): send(self._stop_word_manager, ['filter', w]) send(self._stop_word_manager, ['topWord', recipient]) -class StopWordManager(ActiveWFObject): - """ Models the stop word filter """ + +class FilterManager(ThreadObject): _stop_words = [] def _dispatch(self, message): @@ -59,8 +58,7 @@ class StopWordManager(ActiveWFObject): self._init(message[1:]) elif message[0] == 'filter': return self._filter(message[1:]) - else: - # forward + else: send(self._word_freqs_manager, message) def _init(self, message): @@ -72,8 +70,7 @@ class StopWordManager(ActiveWFObject): if word not in self._stop_words: send(self._word_freqs_manager, ['word', word]) -class WordFrequencyManager(ActiveWFObject): - """ Keeps the word frequency data """ +class WFManager(ThreadObject): _word_freqs = {} def _dispatch(self, message): @@ -91,8 +88,7 @@ class WordFrequencyManager(ActiveWFObject): freqs_sorted = sort_dict ( self._word_freqs ) send(recipient, ['topWord', freqs_sorted]) -class MyController(ActiveWFObject): - +class MyController(ThreadObject): def _dispatch(self, message): if message[0] == 'run': self._run(message[1:]) @@ -109,13 +105,13 @@ class MyController(ActiveWFObject): word_freqs, = message print_word_freqs( word_freqs) send(self._storage_manager, ['over']) - self._stopMe = True + self._over = True if __name__ == '__main__': - word_freq_manager = WordFrequencyManager() - stop_word_manager = StopWordManager() - storage_manager = DataStorageManager() + word_freq_manager = WFManager() + stop_word_manager = FilterManager() + storage_manager = TxtManager() wfcontroller = MyController() send(storage_manager, ['init', testfilepath, stop_word_manager]) diff --git a/15 工程化/1 松耦合/5 插件/config.ini b/15 工程化/1 松耦合/4 插件/config.ini similarity index 100% rename from 15 工程化/1 松耦合/5 插件/config.ini rename to 15 工程化/1 松耦合/4 插件/config.ini diff --git a/15 工程化/1 松耦合/5 插件/plugin.py b/15 工程化/1 松耦合/4 插件/plugin.py similarity index 100% rename from 15 工程化/1 松耦合/5 插件/plugin.py rename to 15 工程化/1 松耦合/4 插件/plugin.py diff --git a/15 工程化/1 松耦合/5 插件/plugins-src/buildingPyc.py b/15 工程化/1 松耦合/4 插件/plugins-src/buildingPyc.py similarity index 100% rename from 15 工程化/1 松耦合/5 插件/plugins-src/buildingPyc.py rename to 15 工程化/1 松耦合/4 插件/plugins-src/buildingPyc.py diff --git a/15 工程化/1 松耦合/5 插件/plugins-src/f1.py b/15 工程化/1 松耦合/4 插件/plugins-src/f1.py similarity index 100% rename from 15 工程化/1 松耦合/5 插件/plugins-src/f1.py rename to 15 工程化/1 松耦合/4 插件/plugins-src/f1.py diff --git a/15 工程化/1 松耦合/5 插件/plugins-src/f2.py b/15 工程化/1 松耦合/4 插件/plugins-src/f2.py similarity index 100% rename from 15 工程化/1 松耦合/5 插件/plugins-src/f2.py rename to 15 工程化/1 松耦合/4 插件/plugins-src/f2.py diff --git a/15 工程化/1 松耦合/5 插件/plugins/f1.pyc b/15 工程化/1 松耦合/4 插件/plugins/f1.pyc similarity index 100% rename from 15 工程化/1 松耦合/5 插件/plugins/f1.pyc rename to 15 工程化/1 松耦合/4 插件/plugins/f1.pyc diff --git a/15 工程化/1 松耦合/5 插件/plugins/f2.pyc b/15 工程化/1 松耦合/4 插件/plugins/f2.pyc similarity index 100% rename from 15 工程化/1 松耦合/5 插件/plugins/f2.pyc rename to 15 工程化/1 松耦合/4 插件/plugins/f2.pyc diff --git a/15 工程化/类属性 .py b/15 工程化/4 类属性 .py similarity index 100% rename from 15 工程化/类属性 .py rename to 15 工程化/4 类属性 .py diff --git a/16 其它/函数缓存.py b/16 其它/1 复用/函数调用复用.py similarity index 100% rename from 16 其它/函数缓存.py rename to 16 其它/1 复用/函数调用复用.py diff --git a/16 其它/享元.py b/16 其它/1 复用/对象复用.py similarity index 100% rename from 16 其它/享元.py rename to 16 其它/1 复用/对象复用.py diff --git a/16 其它/异常/1 软件不能挂掉.py b/16 其它/2 异常/1 软件不能挂掉.py similarity index 100% rename from 16 其它/异常/1 软件不能挂掉.py rename to 16 其它/2 异常/1 软件不能挂掉.py diff --git a/16 其它/异常/2 时间停止在那一刻.py b/16 其它/2 异常/2 时间停止在那一刻.py similarity index 100% rename from 16 其它/异常/2 时间停止在那一刻.py rename to 16 其它/2 异常/2 时间停止在那一刻.py diff --git a/16 其它/异常/3 所有错误的应对.py b/16 其它/2 异常/3 所有错误的应对.py similarity index 100% rename from 16 其它/异常/3 所有错误的应对.py rename to 16 其它/2 异常/3 所有错误的应对.py diff --git a/16 其它/状态机/81A.py b/16 其它/3 状态机/81A.py similarity index 100% rename from 16 其它/状态机/81A.py rename to 16 其它/3 状态机/81A.py