タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

golangとプログラミングに関するglass-_-onionのブックマーク (3)

  • Goでミドルウェアとインターセプターのテストをする方法

    はじめに この記事では HTTP のミドルウェアと gRPC のインターセプターのユニットテストの方法について紹介します。 HTTPミドルウェアのテスト gRPCインターセプターのテスト HTTP のミドルウェアや gRPC のインターセプターといえば Web サービスの共通処理の実装が集中する場所です。共通処理であるが故に開発初期に作り込んで後から手を入れることが少ないという特性があります。あまり手を入れることがないからといってユニットテストを省いてしまうと、あとから機能追加したり、バグを発見したりしたときに慌てることになります。共通処理が集まるコードはいざという時に備えてしっかりユニットテストをしてあげましょう。 HTTPミドルウェアのテスト まずは HTTP ミドルウェアのテスト方法を見てみます。 テスト対象のミドルウェア 以下の HTTP ミドルウェアのコードをテストします。コンテ

    Goでミドルウェアとインターセプターのテストをする方法
    glass-_-onion
    glass-_-onion 2021/01/16
    記事を書きました。
  • GCPで理想の構造化ログを出力する方法

    はじめに この記事では、GCP のマネージドサービス(Google App Engine[1]/Cloud Run/Cloud Functions/GKE)から Cloud Logging に良い感じの構造化ログ(理想の構造化ログ)を出力する方法について紹介します。 良い感じのログの例 前提条件 この記事で紹介する構造化ログの実装は基的に以下の仕様にそって実装しています。重要な仕様なので興味のある方は一度読んでみることをおすすめします。 構造化ペイロードの特殊フィールド 用語の解説 編に入る前に、この記事で使われるログ出力まわりの用語をまとめておきます。以下の用語については前置きなく使いますのでよろしくお願いします。 構造化ログ[2] プレインテキストではなく、JSON等のデータ形式で出力されたログのこと GCPのCloud Logging(旧Stackdriver Logging)で

    GCPで理想の構造化ログを出力する方法
    glass-_-onion
    glass-_-onion 2020/12/25
    記事を書きました。初zenn投稿です。
  • Time型をJSONに変換するとtime.Locationの情報が欠落する場合の対処法 - A Day In The Life

    Time 型のフィールドを含む構造体を JSON にエンコード、JSON からデコードすると特定条件下で Time 型オブジェクトの time.Location の情報が失われることがあります。 以下のプログラムを見てください。 package main import ( "fmt" "time" "encoding/json" ) type Hoge struct { Name string CreatedAt time.Time } func main() { time.Local = time.UTC // Hoge構造体を生成する h1 := Hoge{ Name: "aaa", CreatedAt: time.Unix(1593077427, 0), } // Jsonsに変換 j, _ := json.Marshal(h1) // Jsonから復元する h2 := Hoge{}

    Time型をJSONに変換するとtime.Locationの情報が欠落する場合の対処法 - A Day In The Life
    glass-_-onion
    glass-_-onion 2020/07/13
    ローカル時間をUTCにするとreflect.DeepEqualが常にfalse判定されちゃう時の対処法を書きました
  • 1