2 番目の質問に答えるために、フレームワーク (例: revel) とツールキット (例: gorilla) のような単純なものを使用する場合の長所と短所を次に示します。
一般に、フレームワークを使用する利点は次のとおりです。
- テンプレート化、json や xml などの指定された形式でのデータの生成、クエリのエスケープなど、重要な Web 関連のサブタスクを処理するための多くのサブパッケージを提供します。
- 定型的なhttp処理を処理します
- (うまくいけば)文字列のエスケープなどのベストプラクティスを実施します
- リクエストを処理する方法に一貫した設計パターンを適用することで、複雑さを管理するのに役立ちます
フレームワークを使用することの短所:
- つまり、フレームワークを利用する前に、フレームワークの一般的な哲学を受け入れ、コアコンセプトを理解する必要があります。多くのフレームワークでは、これはかなりの精神的オーバーヘッドになる可能性があります
- 抽象化の余分なレイヤー。つまり、実際に起こっていることから別のステップが取り除かれ、何か問題が発生した場合に理解してデバッグする必要があることを意味します。
- フレームワークの標準的なユースケースではないことを行うのは、もろくて難しい場合があります
- 将来の保守性: ほとんどのフレームワークは、極端に長い寿命を持つ傾向はありません。Django と Rails は長い間使用されてきましたが、それらの前に巨大なフレームワークの墓場がありました。後知恵は20/20ですが、最初から正しい馬を選ぶのは難しい.
おすすめ
事前に電話するのは難しいです。問題の詳細に大きく依存しますが、Goの場合は、より単純なオプションを選択してください。他の言語のフレームワークの付加価値の多くは、重要なタスクを処理する便利なサブパッケージが含まれているという事実ですが、Go には既にこれらの多くが標準ライブラリ (encoding/json、net/http、net など) に含まれています。 /url、テキスト/テンプレート)。私は、Gorilla ツールキットと go 標準ライブラリだけを使用して、かなり洗練された Web アプリを構築しました。これは驚くほど優れており、最も優れている点は、コードが何をするのかを非常に簡単に理解できることです。サードパーティのフレームワークの膨大な About ページを最初に読む必要があります。
他の人が Gorilla をどのように使用しているかを知りたい場合は、実際の使用例を見てみるとよいでしょう。それを人々がより洗練されたフレームワークを使用する方法と比較して、より良い方を選択してください。