LoginSignup
1
0

More than 1 year has passed since last update.

golang インターフェースからコードの自動生成

Posted at

調べているうちにそもそもVSCodeにこの拡張機能があったのでやめたが、その作業記録として。

Work

.gitignoreの導入

OS

macOS

IDE

VSCode

Language

Go

VSCodeの設定

Official

spell checker

自動フォーマット(no extension)

フォーマッタ

基本的には対象のファイル拡張子名で検索すればよしなにやってくれる奴らが出てくる。
ただ、それらがない時に関してはPrettierをインストールして設定する必要があると思われる。
Go拡張にデフォルトで入っている。

IntelliSense(自動補完機能)

基本的には対象のファイル拡張子名で検索すればよしなにやってくれる奴らが出てくる。
Go拡張にデフォルトで入っている。

Lint

基本的には対象のファイル拡張子名で検索すればよしなにやってくれる奴らが出てくる。
Go拡張にデフォルトで入っている。

Debug

Go拡張にデフォルトで入っている。

ブラケットのカラーライズ(Bracket Pair Colorizerが非推奨となっていたため載せてます)

docker

リモートコンテナ上で作業するメリット、デメリットはツールの制限。これはメリットにもデメリットにもなる。

VSCode 設定関連

ビルドツール

Make

circle ci

github

Dependabot

Template

prepare template for issue and pull request.

Produce

下調べ

使用ライブラリ・作成フローなど

リファレンス

静的解析をはじめよう - Gopherをさがせ!
型チェックでインターフェースを実装しているか調べよう

メモ

大きく分けてやることは3つ

  1. 構文解析
  2. コードの生成
  3. コードの出力(整形などもこのフェーズ)

ライブラリの動作検証

go/ast

概要

抽象構木の作成をする。

go/types

概要

astは構文技を作るだけで肩情報までは取得してくれない。
それをしてくれるのがtypes。

jennifer

失敗、反省

  • コミット絡みはちゃんと確認してからする。(メッセージ内容、変更内容の確認。今まではそこんとこは適当だったのとpushした後に修正するのはめんどい)
  • goenvは使わないで良い。goが後方互換を意識して作っているし。そもそもgoenvの開発自体の頻度が低いし、goenv作者本人もそんなに使わないと明言しているとのこと。

感想

qiitaではリンクを直に貼ると何のリンクなのか編集していてわからなくなるし場所も取るのでタイトルをちゃんとつけたほうがいいなと思った。
初めてツールとかをちゃんと設定してやったのでそのあたりの勉強になった。

最後に

Go generate interface stubs
That's all !!!

1
0
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
1
0