初めに
Go言語は基本的に標準パッケージのみで完結できる。ゆえにthird partyのpackageなど使わずとも事足りるが、使った方が直感的な操作ができたりコード量の短縮に役立つ。今回はGo言語で使われやすいthird party packageを紹介する。中には筆者自身が未だ使ったことがないものもあり、これから使おうと思っている自分自身の備忘録でもある。導入した後には使用感について後述したいと思う。
third party package①
- GORM(gorm.io/gorm):Go言語用のORM(Object-Relational-Mapping)フレームワーク。オブジェクト指向プログラムとRDBをつなぐ役割をしてくれる。ORMを使うことでより直感的にRDBの操作ができる。GORM-Qiita。Gormで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)モノリスアプリケーションを作る。
コメント