ホームページ > バックエンド開発 > Golang > Laravel to Go: 私の旅とファイバー API ボイラープレートの作成

Laravel to Go: 私の旅とファイバー API ボイラープレートの作成

Susan Sarandon
リリース: 2024-12-29 11:02:11
オリジナル
891 人が閲覧しました

Laravel to Go: My Journey and the Creation of a Fiber API Boilerplate

Laravel に没頭して 4 年以上を費やした後、私は MVC (Model-View-Controller) アーキテクチャに非常に慣れてきました。そのシンプルさと構造により、作業が楽しくなり、Laravel の思慮深く整理されたフォルダーにより、開発者は順調に作業を進めることができます。コードを配置する場所が常にわかり、データベース接続、Redis、キュー、移行、ORM などの広範な組み込みツールにより、セットアップがシームレスになります。環境を少し調整するだけで、アプリを使用できるようになります。

私にとって、Laravel の MVC アプローチは依然として最も堅牢なものの 1 つです。 モデル はデータを定義し、ビュー はユーザーに表示される内容を決定し、コントローラー はビジネス ロジックを管理します。シンプルでありながら構造化されており、Laravel はデフォルトでこのセットアップを提供するため、開発用の優れたフレームワークとなっています。

しかし、私のキャリアが進み、さまざまな業界やビジネスで働くにつれて、特に複雑なアプリケーションの場合、Laravel の MVC アプローチが必ずしも十分ではないことに気づきました。


Laravel の MVC を複雑さのために拡張する

MVC は単純なアプリケーションには最適ですが、ロジックがより複雑になると不十分になる可能性があります。たとえば、API に Laravel を使用する場合、View レイヤーが使用されないことがよくあります。一方、すべてのロジックをコントローラーに組み込むと、すぐにファイルが肥大化して保守が困難になる可能性があります。

これに対処するために、Service 層と Repository 層を導入して Laravel の MVC 構造を拡張し、次のようなフローを作成しました。

コントローラー → サービス → リポジトリ → モデル

  • コントローラー: 検証を処理し、アプリケーション フローを指示します。
  • サービス: 再利用可能な機能に分割されたビジネス ロジックを管理します。
  • リポジトリ: データベースの相互作用を管理します。
  • モデル: データ構造を定義します。

この階層化されたアプローチにより、コードの保守性と拡張性が向上します。時間が経つにつれて、私はこの構造に非常に慣れ、他のプロジェクトでもそれを採用するのが自然だと感じました。


Go への参入: 全く新しい挑戦

Go (Golang) を使い始めたとき、未知の領域に足を踏み入れたように感じました。 Go は PHP とはまったく異なり、固有のフォルダー構造がありません。また、Laravel はオブジェクト指向言語ではないため、Laravel で知ったことを単純に再現することはできません。

いくつかの試行錯誤の後、私は慣れ親しんだもの、つまり CSRM の概念 (コントローラー、サービス、リポジトリ、モデル) に固執することにしました。創造的な思考が必要でしたが、私はこの構造を Go に適応させました。さらに、開発を簡素化できるフレームワークを検討しました。 GinFiber を試しましたが、最終的には速度、最新の機能、アクティブなコミュニティにより Fiber を選択しました。


My Fiber API の誕生 ボイラープレート

Go と Fiber を 2 年以上使用した後、API 開発を合理化するための定型文を作成することにしました。これは私だけのためではありませんでした。他の人もプロジェクトを迅速にセットアップできるようにしたいと考えていました。

結果: Fiber API ボイラープレート

この定型文は API 専用であるため、ビューのレンダリングやテンプレート エンジンなどの機能は含まれていません。フォルダー構造は以下からインスピレーションを得ています:

  • Golang プロジェクトのレイアウト標準
  • Ayoub Zulfiqar のプロジェクト レイアウトの要点

私はまた、ORM、データベース接続、Redis、キュー、認証など、Laravel から多くのアイデアを借用しました。 Laravel ほど包括的ではありませんが、一般的な API を構築するには十分です。


ボイラープレートの特徴

現在定型文が提供しているものは次のとおりです:

  1. 認証: すぐに使用できる簡素化されたユーザー管理。
  2. エラー報告: Sentry と統合されました。
  3. アプリケーション監視: New Relic を使用してリアルタイムの分析情報を取得します。
  4. ホットリロード: 開発を迅速化するための Air が含まれています。
  5. 静的コード チェック: GolangCI-Lint を使用します。
  6. API ドキュメント: Swag を介した組み込みの Swagger サポート。
  7. 依存関係の挿入: Google Wire を利用しています。
  8. デプロイ: シームレスなデプロイメントのための Docker と Supervisor が付属しています。

リポジトリには、各フォルダーと機能を説明するサンプル コードと詳細な README も含まれています。


未来に向けた構築

ボイラープレートはすでに機能していますが、移行、イベント リスナー、コマンドなどのツールを追加してさらに拡張する計画があります。これは、ユーザーとともに成長するように設計された進化するプロジェクトです。

定型文を自由に調べて使用してください。好きなツールを追加したり、不要なツールを削除したりして、自由にカスタマイズしてください。提案や機能リクエストがある場合は、問題を作成するか、プル リクエストを送信してください。


始めましょう

Fiber API ボイラープレート をチェックして、試してみてください。私と同じように、あなたの Go API 開発の道のりを簡素化するのに役立つことを願っています。一緒に素晴らしいものを作りましょう!

以上がLaravel to Go: 私の旅とファイバー API ボイラープレートの作成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート