バックエンド

golangのElasticsearchライブラリについて調べてみた

はじめに 多くのアプリケーションには検索機能が実装されておりますが、検索のライブラリといえばElasticsearchがファーストチョイスに挙げられると思います。 今回はgolangにおけるElasticsearchライブラリについて調べてみました。 主要なElasticsearchラ…

Go言語のテストの種類と使い分け方

はじめに Go言語ではテストに関する機能が備わったtestingというパッケージが標準で用意されております。 今回はGo言語でテストを書く方法のうち、「テーブル駆動テスト」と「サブテスト方式」という2つの方法について見ていきます。この2つの方法を上手に使…

開発効率を高めるt.Parallelの活用方法

1. はじめに Golangのテストについてまだまだ理解が浅いと感じたため、調べたことをメモしていきます。 テストは実行に時間がかかるとストレスを感じることもあるんですが、そんな悩みを解決してくれるのが、Golangのt.Parallelです。 本記事では、t.Paralle…

gRPCとは?Connect GOで効率的なマイクロサービスを構築しよう

普段はマイクロサービスの構成で自社プロダクトを開発しています。マイクロサービスを構築する上で、サービス間通信は重要な要素の一つです。そこで登場するのが、gRPCです。gRPCの概要と、Goで gRPCサーバーを構築するためのライブラリ「Connect GO」につい…

protoc-gen-validateを使ったバリデーション入門

はじめに 今回は、私が現場で使っているprotoc-gen-validate(PGV)についてまとめてみました。 復習がてらまとめていきます。 PGVは.protoファイルにバリデーションルールを定義するだけで、各言語のバリデーションコードを自動生成できちゃう優れもの。 PGV…

改めてMongo DBに入門してみる (第1回)

本業でMongo DBを使い始めてしばらく経ちましたが、なんの気なしに触っていたため改めて基礎をおさらいしておこうと思い立ちました。 数回に分けて投稿する予定です。 初回はそもそのNoSQLってなんなの?ってところからコレクション・ドキュメントについての…

AWS SESの概要と一斉送信についてのメモ

SESの概要 AWSが提供するメールサービス。SESを使用すると、開発者や企業は大量のメールを簡単に送信できる。主な特徴は以下。 スケーラビリティ:SESは自動的にスケーリングするため、少数のメールから大量のメールまで対応可能。 信頼性:AWSのインフラス…

Zapとzerologの比較:Go言語のロギングライブラリの選択肢

今回は、Go言語でアプリケーション開発をする際に欠かせない「ログ出力(ロギング)」について、書いていきたいと思います。 ログ出力は、アプリケーションの動作を把握したり、問題の特定と解決に役立つ超重要な機能です。 で、Go言語にはたくさんのロギン…