3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MIXI DEVELOPERSAdvent Calendar 2023

Day 4

Golangの開発生産性を上げるVSCodeスニペットランキング

Last updated at Posted at 2023-12-04

本投稿はMIXI DEVELOPERS Advent Calendar 2023 4日目の記事です。

この記事では、Golang用のVSCodeユーザースニペットの中で自分が特に役に立っていると思うものをランキング形式で発表します!

前提:

VSCode ユーザースニペットとは

コードとキーを予め登録することでキー入力するだけで設定したコードが簡単に呼び出せる機能です。
キーボードソフトの辞書機能に似ていて、特定のキーワード入力で予め設定されたコードが挿入されると考えていただけるとわかりやすいと思います。

VSCode ユーザースニペット 登録方法

⌘ + Shift + P で検索フィールドを展開し、snippets を入力すると候補にあがってくるのでクリックします。

image.png

以下のような画面が出てくるので go.json をクリック。
存在しない場合は New Snippets のところから go を選択して作成
image.png

形式はjsonで保存されます。

今回紹介するスニペットのダイジェストGIF
vscode-snnippet.mov.gif

おすすめランキング

本題のおすすめスニペットです。
ランキング形式で3位まで紹介しています。

1位: エラーチェックスニペット

ie

vscode-snnippet-2.mov.sb-362552bf-NaQ3db.gif

このスニペットは Go で頻出のエラーハンドリングのコードを展開します。

    "if err != nil": {
        "prefix": "ie",
        "body": [
            "if err != nil {",
            "\t$1",
            "}"
        ]
    },

2位: fmt スニペット

fff
vscode-fff.mov.gif

このスニペットはデバッグ時に変数の内容を簡単にコンソールに出力できます。地味だけどよく使うスニペットです。
好みに応じて %#v の前にわかりやすい区切り文字、例えば ======= というような文字を入れても良いと思います。

	"Print to console": {
		"prefix": "fff",
			"body": [
				"fmt.Printf(\"%#v\\n\", $1)"
			],
		},

3位: context.Context スニペット

c

vscode-3.mov.gif

Go で多い引数
書くと地味に長いのでこちらも重宝しています

    "context.Context": {
        "prefix": "c",
            "body": [
                "ctx context.Context,$1"
            ],
        },

番外編

番外編では使用頻度はそれほど高くないけれど使いどころで便利であるスニペットを紹介します!

errors.Is

    "errors.Is": {
        "prefix": "erris",
            "body": [
                "errors.Is(err, $1)"
            ],
        },

たまに使うエラー評価ですが、使用頻度と元のコードの書きやすさを考慮して、このランキングからは漏れました。

assert/require 系

   "Testify Assert Nil": {
        "prefix": "anil",
        "body": [
        "assert.Nil(t, ${1:actual})", 
        "$0"
        ]
    },
    "Testify Assert Equal": {
        "prefix": "aeq",
        "body": [
        "assert.Equal(t, ${1:expected}, ${2:actual})",
        "$0"
        ]
    },
    "Testify Assert No Error": {
        "prefix": "anerr",
        "body": [
        "assert.NoError(t, ${1:err})",
        "$0"
        ]
    },
    "Testify Require Nil": {
        "prefix": "reqnil",
        "body": [
        "require.Nil(t, ${1:actual})", 
        "$0"
        ]
    },
    "Testify Require Equal": {
        "prefix": "reqeq",
        "body": [
        "require.Equal(t, ${1:expected}, ${2:actual})",
        "$0"
        ]
    },
    "Testify Require No Error": {
        "prefix": "reqnerr",
        "body": [
        "require.NoError(t, ${1:err})",
        "$0"
        ]
    },

このスニペットはTestify ライブラリで処理の評価をするときに展開します。
Testify を使っているのであれば非常に強力なスニペットだと思います。しかしTestify という条件付きのため惜しくもランキング漏れとしました。

まとめ

今回は個人的な経験から推しのスニペットを数点紹介しました
みなさんもスニペットを活用して着実に開発効率上げていきましょう!
もしおすすめのスニペットがあればコメントで教えてください!

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?