「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > GO:LARAVEL:私の旅とファイバーAPIボイラープレートの作成

GO:LARAVEL:私の旅とファイバーAPIボイラープレートの作成

2025-03-12に投稿されました
ブラウズ:376

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

4年以上をlaravelに没頭した後、MVC(Model-View-Controller)アーキテクチャに非常に精通しています。そのシンプルさと構造は、一緒に仕事をするのを喜びにし、Laravelの思慮深く組織化されたフォルダーは、開発者が順調に進むのに役立ちます。コードをどこに配置するかを常に知っています。また、database接続、redis、キュー、移行、ORMなどの広範なビルトインツールは、セットアップをシームレスに作成します。環境に数回微調整するだけで、アプリは準備ができています。

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

しかし、私のキャリアが進歩し、私が業界や企業全体で働いていたので、特に複雑なアプリケーションにとっては、LaravelのMVCアプローチが常に十分であるとは限らないことに気付きました。


LaravelのMVCを複雑に拡張します

MVCは単純なアプリケーションのために輝いていますが、論理がより複雑になると不足する可能性があります。たとえば、laravelをAPIに使用する場合、ビューレイヤーはしばしば使用されません。一方、すべてのロジックをコントローラーに入れると、維持が困難なファイルが膨らんだ可能性があります。

これに対処するために、 service および repository レイヤーを導入して、LaravelのMVC構造を拡張し、次のようなフローを作成しました。

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

  • コントローラー:検証を処理し、アプリケーションフローを指示します。
  • service :再利用可能な関数に分割されたビジネスロジックを管理します。
  • repository :データベースの相互作用を管理します。
  • モデル:データ構造を定義します。
この階層化されたアプローチにより、コードがより保守可能でスケーラブルになります。時間が経つにつれて、私はこの構造に非常に慣れてきたので、他のプロジェクトでそれを採用するのは自然だと感じました。


Entergo:まったく新しい挑戦

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

いくつかの試行錯誤の後、私は自分がよく知っていることに固執することにしました:

csrm コンセプト(コントローラー、サービス、リポジトリ、モデル)。創造的な思考が必要だったとしても、私はこの構造を行くように適応させました。さらに、開発を簡素化できるフレームワークを調査しました。 gin and fiber を試してみました。


私の繊維APIボイラープレートの誕生

Goと繊維で2年以上作業した後、私はAPI開発を合理化するためにボイラープレートを作成することにしました。これは私だけのものではありませんでした。他の人がプロジェクトをすばやくセットアップするのを助けたいと思っていました。

結果:

ファイバーAPIボイラープレート

このボイラープレートはAPI専用であるため、ビューレンダリングやテンプレートエンジンなどの機能は含まれていません。フォルダー構造は、

からインスピレーションを受けます

    Golangプロジェクトレイアウト標準
  • Ayoub Zulfiqarのプロジェクトレイアウト要点
また、ORM、データベース接続、Redis、キュー、認証など、Laravelから多くのアイデアを借りました。 Laravelほど包括的ではありませんが、一般的なAPIを構築するのに十分です。


ボイラープレートの特徴

これがボイラープレートが現在提供しているものです:

  1. 認証:箱から出して単純化されたユーザー管理。
  2. エラー報告:セントリーと統合されています。
  3. アプリケーション監視:リアルタイムの洞察に新しい遺物を使用します。
  4. hot reload :より速い開発のための空気を含む。
  5. 静的コードチェック:golangci-lintを使用します。
  6. APIドキュメント:SWAGによる組み込みのSwaggerサポート。
  7. 依存関係インジェクション:Googleワイヤーを搭載しています。
  8. deployment :シームレスな展開のためにDockerとスーパーバイザーが付属しています。
リポジトリには、例コードと詳細な

readme も含まれており、各フォルダーと機能をガイドします。


未来のための建物

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

ボイラープレートを探索して使用することを歓迎します。お気軽にカスタマイズしてください。必要なツールをお好みのツールを削除するか、削除してください。提案または機能リクエストがある場合は、問題を作成するか、プルリクエストを送信してください。


始めましょう

ファイバーAPIボイラープレートをチェックして、スピンしてください。それが私と同じようにあなたのGO API開発の旅を簡素化するのに役立つことを願っています。一緒に素晴らしいものを作りましょう!

リリースステートメント この記事は、https://dev.to/granitebps/laravel-to-go-my-journey-and-the-creation of-a-fiber-api-boilerplate-2pll?1に再現されています。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3