Skip to content

Instantly share code, notes, and snippets.

View utamori's full-sized avatar
🏠
Working from home

mori yuta utamori

🏠
Working from home
View GitHub Profile

モデルのバインディングとバリデーション

リクエストボディを型にバインドするには、モデルバインディングを使用します。現在、JSON、XML、YAML、標準フォーム値のバインディングをサポートしています。 (foo=bar&boo=baz).

Ginはバリデーションにgo-playground/validator/v10を使用しています。構造体タグの使い方については、こちらのドキュメントを参照してください。

バインドしたいすべてのフィールドに対応するバインディングタグを設定する必要があることに注意してください。たとえばJSONからバインドする場合はjson:"fieldname"タグを設定します。

また、GinではMustとShouldの2種類のバインディングを用意しています。

Order 9
Area remote
TOCTitle Attach to Container
PageTitle Attach to a running container using Visual Studio Code Remote Development
ContentId ed14ef07-f44c-4675-b95b-cb5faffc7abb
MetaDescription Attach to a running container using Visual Studio Code Remote Development
DateApproved 7/9/2020

実行中のコンテナーに接続する

Go1.13からのエラー処理

Damien Neil and Jonathan Amsterdam 17 October 2019

イントロ

Goのエラーを値として扱う方法は、過去10年以上にわたって役立ってきました。 標準ライブラリのerrorsのサポートは最小限で、メッセージのみを含むエラーを生成するerrors.New関数とfmt.Errorf関数だけでした。また、Goに組み込まれたerrorインターフェイスにより、Goプログラマは必要な情報を追加することができます。必要なのは、Errorメソッドを実装した型だけです。

GoとReactとDockerとでの開発

元記事

Makefileの作成

Goで単体テストをすばやく作成する方法

How I write my unit tests in Go quickly - DEV Community 👩‍💻👨‍💻の和訳

私たちは皆、ユニットテストが大好きです。しかし、ユニットテストは魔法のように現れるものではなく、誰かが書かなければならないため、私たちは皆、ユニットテストを嫌います。そして、書くことになると、最も単純なケースをカバーするのに膨大な時間がかかることがよくあります。

しかし、私は痛みなしでそれを行うための私の方法を見つけました(大丈夫、より少ない痛みで)。そして、私は簡単な図解ガイドのようにあなたとそれを共有します。

レイヤーを分ける

package yours
import (
"testing"
"github.com/stretchr/testify/mock"
)
/*
テストオブジェクト
@utamori
utamori / Dockerfile
Last active July 20, 2020 07:13
CloudRunのサンプル
# ビルドアーティファクトを作成するために、公式のGolangイメージを使用する
# これは Debian をベースにしており、GOPATH を/goに設定します。
# https://hub.docker.com/_/golang
FROM golang:1.13 as builder
# appディレクトリを作成して移動します。
WORKDIR /app
# go modulesを使用してアプリケーションの依存関係を取得します。
# コンテナのビルドでダウンロードした依存関係を再利用できるようにします。

Getting started

始める前に、データベースのフォワード/アップとリバース/ダウンの移行の概念を理解しておく必要があります。

アプリケーションのデータベースを設定します。お使いのデータベースドライバがサポートされていることを確認してくださいこちら

マイグレーションファイルの作成

migrate CLIを使用して、マイグレーションファイルを作成します。以下に例を示します。

package main
import (
"fmt"
"math/big"
"strings"
"github.com/google/uuid"
)
type config struct {
Database struct {
Host string
Port string
User string
Password string
}
}
func Configure() {