tech_memo / Go


tech_memo

Goのhttp.Handlerやhttp.HandlerFunc?をちゃんと理解する

Go module の Dependency 問題

pprof

Web UI

コードに埋め込む版


HttpServer?

CLI

Dockerレジストリ操作(genuinetools/reg)

インストール

Windows

  • Chocolatetyでインストール
    choco install golang
  • アップデート
    choco upgrade golang
  • 環境変数Pathに、以下を追加する。
    %GOPATH%\bin

Go module

ghq + peco

Windows

Ubuntu

  • 参考
  • ghqインストール
    go get github.com/x-motemen/ghq
    • /.gitconfigに以下のように記載で、ghq get でgoモジュールのインストール先を指定可能になる

      [ghq]
         root = /home/m-nawata/dev/go/src
  • pecoインストール
    go get github.com/peco/peco/cmd/peco
  • .zshrc
    function peco-src () {
      local selected_dir=$(ghq list -p | peco --query "$LBUFFER")
      if [ -n "$selected_dir" ]; then
        BUFFER="cd ${selected_dir}"
        zle accept-line
      fi
      zle clear-screen
    }
    zle -N peco-src
    bindkey '^]' peco-src
    • bindkey '^]'は、ctrl+vして、]を押す。ターミナル上では、ctrl+]で実行

VSCode設定


コードフォーマットツール

ファイル読込

  • bufio.NewScanner?を使うと1行ずつ読込ができて楽
    import (
    	"bufio"
    	"fmt"
    	"os"
    )
    
    func useBufioScanner(fileName string) {
        fp, err := os.Open(fileName)
        if err != nil {
            panic(err)
        }
        defer fp.Close()
    
        scanner := bufio.NewScanner(fp)
        for scanner.Scan() {
            fmt.Println(scanner.Text())
        }
    }

termeter (ターミナルで簡単にグラフを描くツール)