3

Snap を使用して Web アプリケーションを作成する予定です。

しかし、スナップコアに固執することは、スナップレットとレンズを使用するよりもはるかに簡単です.

snap init barebonesLens に頼らずに、開発を開始し、Heist テンプレート、HDBC データベースの永続性などを手動で追加することは、長期的には保守可能ですか? Snap コア チームは、実際にスナップ コアに加えて Snaplets の使用をどの程度強く推奨していますか?

4

2 に答える 2

2

ocharles が言ったように、スナップレットを使用しなくても、スナップコアで大規模な Web アプリを構築できます。ただし、スナップレットは、実際のアプリでの経験から直接開発されました。私たちは、常に同じボイラープレートをたくさん書くことになることに気付きました。ほとんどすべての十分に複雑なアプリケーションでは、通常、少なくともリーダーおよび/または状態モナドが必要であることがわかりました。実際、スナップ コア + ヘイストのみを使用している場合でも、HeistState を使用するすべての場所で HeistState を渡す必要があるため、それが必要になる可能性が高くなります。

したがって、snap と snap-core のどちらを選択するかは、C とアセンブリ言語を選択するのとほぼ同じだと言えます。C には "for" や "while" などの複雑な概念があると主張する人もいるかもしれませんが、アセンブリ言語は jmp の単純な概念だけではるかに簡単です。しかし、最終的には、「for」と「while」は私たちが常に使用するパターンを具現化するため、C が認知オーバーヘッドに見合うだけの価値があるように思われることは誰もが知っています。

ただし、独自のスナップレットを作成しなくても、大規模な Web アプリケーションを構築できる可能性は十分にあります。現在、多くの一般的なタスクを処理する便利なスナップレットが多数あり、実際に独自のスタンドアロン スナップレットを作成しなくてもそれらのいずれかを使用できます。独自のスナップレットを作成する唯一の利点は、それを複数の Web アプリケーションで使用する場合、または他のユーザーが利益を得られるように公開する場合です。

于 2012-12-03T18:17:35.357 に答える
1

もちろん可能ですが、お勧めしません。Snaplets は、基本的に無料で、多くの配管を提供します。HDBC のサポートなどをハンドロールする場合は、おそらく独自のモナドと のインスタンスが必要になるでしょうMonadSnap。そもそもこれは、単にスナップレットを使用するよりも複雑であることは間違いありません。

固執することはまったく簡単ではないと思います。アプリケーションに不可欠ではないものを作成する必要があるため、より複雑なコードsnap-core作成することになると私は主張します。

これは、作業中のプロジェクト用に基本的なスナップレットをセットアップする非常に単純な例です。わずか 40 行のコードですスナップコアについて知っていることはすべてスナップレットに適用されます (ハンドラーは のインスタンスであるためMonadSnap)。

いいえ、スナップレットを使用する必要はありませんが、個人的に強くお勧めします。

于 2012-12-01T18:33:25.513 に答える