Laravel に没頭して 4 年以上を費やした後、私は MVC (Model-View-Controller) アーキテクチャに非常に慣れてきました。そのシンプルさと構造により、作業が楽しくなり、Laravel の思慮深く整理されたフォルダーにより、開発者は順調に作業を進めることができます。コードを配置する場所が常にわかり、データベース接続、Redis、キュー、移行、ORM などの広範な組み込みツールにより、セットアップがシームレスになります。環境を少し調整するだけで、アプリを使用できるようになります。
私にとって、Laravel の MVC アプローチは依然として最も堅牢なものの 1 つです。 モデル はデータを定義し、ビュー はユーザーに表示される内容を決定し、コントローラー はビジネス ロジックを管理します。シンプルでありながら構造化されており、Laravel はデフォルトでこのセットアップを提供するため、開発用の優れたフレームワークとなっています。
しかし、私のキャリアが進み、さまざまな業界やビジネスで働くにつれて、特に複雑なアプリケーションの場合、Laravel の MVC アプローチが必ずしも十分ではないことに気づきました。
MVC は単純なアプリケーションには最適ですが、ロジックがより複雑になると不十分になる可能性があります。たとえば、API に Laravel を使用する場合、View レイヤーが使用されないことがよくあります。一方、すべてのロジックをコントローラーに組み込むと、すぐにファイルが肥大化して保守が困難になる可能性があります。
これに対処するために、Service 層と Repository 層を導入して Laravel の MVC 構造を拡張し、次のようなフローを作成しました。
コントローラー → サービス → リポジトリ → モデル
この階層化されたアプローチにより、コードの保守性と拡張性が向上します。時間が経つにつれて、私はこの構造に非常に慣れ、他のプロジェクトでもそれを採用するのが自然だと感じました。
Go (Golang) を使い始めたとき、未知の領域に足を踏み入れたように感じました。 Go は PHP とはまったく異なり、固有のフォルダー構造がありません。また、Laravel はオブジェクト指向言語ではないため、Laravel で知ったことを単純に再現することはできません。
いくつかの試行錯誤の後、私は慣れ親しんだもの、つまり CSRM の概念 (コントローラー、サービス、リポジトリ、モデル) に固執することにしました。創造的な思考が必要でしたが、私はこの構造を Go に適応させました。さらに、開発を簡素化できるフレームワークを検討しました。 Gin と Fiber を試しましたが、最終的には速度、最新の機能、アクティブなコミュニティにより Fiber を選択しました。
Go と Fiber を 2 年以上使用した後、API 開発を合理化するための定型文を作成することにしました。これは私だけのためではありませんでした。他の人もプロジェクトを迅速にセットアップできるようにしたいと考えていました。
結果: Fiber API ボイラープレート。
この定型文は API 専用であるため、ビューのレンダリングやテンプレート エンジンなどの機能は含まれていません。フォルダー構造は以下からインスピレーションを得ています:
私はまた、ORM、データベース接続、Redis、キュー、認証など、Laravel から多くのアイデアを借用しました。 Laravel ほど包括的ではありませんが、一般的な API を構築するには十分です。
現在定型文が提供しているものは次のとおりです:
リポジトリには、各フォルダーと機能を説明するサンプル コードと詳細な README も含まれています。
ボイラープレートはすでに機能していますが、移行、イベント リスナー、コマンドなどのツールを追加してさらに拡張する計画があります。これは、ユーザーとともに成長するように設計された進化するプロジェクトです。
定型文を自由に調べて使用してください。好きなツールを追加したり、不要なツールを削除したりして、自由にカスタマイズしてください。提案や機能リクエストがある場合は、問題を作成するか、プル リクエストを送信してください。
Fiber API ボイラープレート をチェックして、試してみてください。私と同じように、あなたの Go API 開発の道のりを簡素化するのに役立つことを願っています。一緒に素晴らしいものを作りましょう!
以上がLaravel to Go: 私の旅とファイバー API ボイラープレートの作成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。