0

私はhttp://www.infoq.com/interviews/trelford-functionalを読んでいて、OOの代替アプローチを理解しようとしていました。

QここGOTOConで機能アーキテクチャについて話をしているようですが、それは何ですか?すべてのアーキテクチャはオブジェクト指向だと思いましたか?

まあ、そうではありません。言語とプラットフォームの選択が、あなたの考え方に影響を与えるという考えを強調したいと思います。関数型言語またはアーキテクチャを選択することが、システムに実際にどのように役立つか。

小売アプリケーションを作成するという簡単な例をとると、オブジェクトとミューテーションについて考えると、アイテムのバスケットを作成するときに、アイテムを追加すると数量が増えると思います。誰かがアイテムを返すか、アイテムをキャンセルします、あなたは量を減らすでしょう、あなたはそれを間違っているでしょう。

小売システムでは、不正を検出できるように実際に行われたことを追跡する必要があります。これはシステムの重要な要素の1つです。したがって、実際には毎回新しい値を追加し、変更することはありません。

したがって、私たちが日常的に使用する最も基本的なシステムの1つから、機能的な不変のスタイルは、実際には必要なアーキテクチャに近いものになります。

買い物かごアプリでより機能的なスタイルを採用する場合、問題についてどのように考えますか?たとえば、買い物かごオブジェクトをまだ持っていて、その内容を変更するのではなく、新しいものを作成しますか?

多くのthx

4

1 に答える 1

2

不変条件がバスケットのものをモデル化したのはコンテナデータ構造です(たとえば、バッグのようなデータ型)。コンテナは永続的であるため、古いバージョンに透過的にロールバックできます(ユーザーがアクションを元に戻したり、後でアクセスするために保存したりできるようにするため)。

バスケットを破壊的に更新しないことで、ロールバック、元に戻す、永続性を無料で利用できます。

より豊富なデータ型を使用することにより、簿記が少なくなり、バグが発生する可能性が低くなります。

于 2012-07-31T18:17:19.513 に答える