Go言語で使われやすいthird party package

プログラミング学習帳 プログラミング

初めに

Go言語は基本的に標準パッケージのみで完結できる。ゆえにthird partyのpackageなど使わずとも事足りるが、使った方が直感的な操作ができたりコード量の短縮に役立つ。今回はGo言語で使われやすいthird party packageを紹介する。中には筆者自身が未だ使ったことがないものもあり、これから使おうと思っている自分自身の備忘録でもある。導入した後には使用感について後述したいと思う。

third party package①

  • GORM(gorm.io/gorm):Go言語用のORM(Object-Relational-Mapping)フレームワーク。オブジェクト指向プログラムとRDBをつなぐ役割をしてくれる。ORMを使うことでより直感的にRDBの操作ができる。GORM-QiitaGormでMysqlをシンプルに操作する
  • GORM DB(gorm.io/driver/mysql):GORMは公式にMySQL、SQLite、SQL Server、PostgreSQLをサポートしている。mysql部分をpostgresなどに変えればimportできる。GORM 公式。公式ドキュメントでデータベースとの接続コードなどある。
  • fiber(github.com/gofiber/fiber/v2):Express.jsの影響を強く受けたGoのフレームワーク。net/http packageの様にHTTP Request等の処理ができる。Go最速のHTTPエンジンであるFasthttpで作られている。
  • Godotenv(github.com/joho/godotenv):envファイルから環境変数を読み込むことができるライブラリ。.envでファイルを用意して読み込んで使う。envファイルを扱う

third party package②

  • gorilla/mux(github.com/gorilla/mux):ルーティング(画面遷移)機能。gorillaシリーズはGoでもかなり有名なシリーズ。
  • Go SQL Driver(github.com/go-sql-driver/mysql):SQL Packageは、SQLライクなデータベースにアクセスするための汎用的なパッケージ。
  • go-sqlite3(github.com/mattn/go-sqlite3):sqlite3を起動してDB読み込み/書き込みをする。
  • goquery(github.com/PuerkitoBio/goquery):データを手軽に取得したりできる。スクレイピングに使われやすい。
  • toml(github.com/BurntSushi/toml):設定をコードから一部分離する。パスワードなど機密性の高い情報をコードベースから完全に分離するため。バージョン管理システムにチェックインされない設定ファイル。今後設定が増えることを考慮して環境ごとにファイルを分ける。設定情報をTOML・環境変数に格納する

third party package③

  • Gin(github.com/gin-gonic/gin):webフレームワーク。REST APIを実装しやすい。
  • echo:Goの軽量フレームワーク。簡単にルーティングやサーバ実行、ロギング、CORS設定などをすることができます。Goライブラリ
  • logrus:logの外部パッケージ。Go標準パッケージのlogはシンプル過ぎるので、ログレベルなど使いたい時に便利です。→zap。logの外部パッケージでlogrusより高速。
  • fasthttp:go言語でHTTP通信を行うためのライブラリ。標準のnet/httpより速い。
  • gomockとmockgen:mock生成ライブラリ。簡単にモックを作成できるので、テストを実装する時などに便利。
  • wire:依存性の注入(DI: Dependency Injection)に利用する。
  • realize:Goはコンパイル言語なので変更が即反映されない。go runしなおす手間を解消する。ただしgo.modを使っているとワークアラウンドをあてないと動作しない。
  • lris:複数人での編集に使われやすい。
  • Revel:コードを入力すると自動的にコンパイルが可能。
  • Beego:webサイトの高速化に用いられやすい。APIやバックエンド開発。開発元は中国。
  • go-react-builderplate(github.com/ueokande/go-react-builderplate/repository)モノリスアプリケーションを作る

コメント

タイトルとURLをコピーしました