2

私は関数型プログラミングとリアクティブなアプローチに感染しました。インスピレーションとアイデアを得るために、私はHaskell素晴らしい Rick Hickey の記事を使用しています。Python の世界では、 RxPy機能的なライブラリを自分で見つけました。今では何千行もの命令コードがあり、これを機能させたいと考えています。すべてを単純化すると、データベース用のゲッターとセッターのインターフェイスと、ステート マシンのように機能するカーネルができます。擬似コードでの表示は次のとおりです。

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 よりも大きな、ア​​イデアから実践への次の移行先についてアドバイスが必要です。また、非常に大規模なプロジェクトのソース コードへのリンクも非常に役立ちます。命令型コードを関数型コードに移植する実際の経験を持ち、応答してくれたすべての人に感謝します。はい、コードを移植するのではなく、ゼロから書き直すということは理解しています。繰り返しになりますが、データの処理やデータの変更が行われる、多数のビジネス ロジックを含むプロジェクトの例が必要です。とにかくありがとうございました。

4

1 に答える 1