我被函数式编程和反应式方法感染了。对于灵感和想法,我使用Haskell和一篇很棒的 Rick Hickey 文章。在 python 世界中,我为自己找到了RxPy和funcy库。现在我有数千行命令式代码,我想让它们发挥作用。如果一切都被简化了,我就有了一个用于数据库的 getter 和 setter 接口,以及一个像状态机一样工作的内核。这是它在伪代码上的样子:
class State(object):
def __init__(id):
self.data = database_interface.get_state(id)
self.status = data['status']
def process(self):
if self.status == 'init':
self.handle_init()
elif self.status == 'request_data':
self.handle_request_data()
elif self.status == 'idle':
self.handle_idle()
# etc...
...
def on_new_message(msg):
id = msg['id']
state = State(id)
state.process()
我有很多if
和for
我的状态处理程序中的命令式业务逻辑。我真的很尴尬如何从当前模型转向反应性和功能性。这里一切都非常简单,但是有过类似经历的人会理解我的。我需要关于下一步的建议,从想法到实践,不仅仅是简单的实用程序或功能风格的琐碎 REST api。此外,我将通过链接到真正大型项目的源代码获得很大帮助,只要我能得到想法。感谢所有回复的人,他们在将命令式代码移植到函数式代码中获得了真实的体验。是的,我知道它不会移植代码,而是从头开始重写。同样,我需要具有大量业务逻辑的项目示例,其中涉及数据和数据突变。无论如何,谢谢你。