WEB+DB PRESS Vol.82|技術評論社

記事は非常にわかりやすく、A Tour of Go の途中で挫折した私でも大丈夫でした。GOとCは結構似ているので、C経験者にもオススメです。

GOは必要最小限の機能しか用意されていない点が好きです。最近Rubyの高機能さにゲップが出るので。 ちょっとGOで何か作ってみようかな。

そういえば一度この記事のコードも試したのですよね。良い復習になりました。
「今日から始める Go言語 と appengine」というテーマで社内勉強会をしました|feedforce Engineers’ blog

Emacsの開発環境は「Goプログラミングの環境構築 - Emacs JP 」を参考にgo-mode, go-autocomplete, go-eldocを入れたところ、非常に快適になりました。機能としてはIDEと遜色ないんじゃないかな?

  • C-c C-aでパッケージのimport文を簡単に追加できる。補完も効く
  • importしたパッケージに含まれる関数名の動的補完
  • 補完した関数の型情報をミニバッファに表示
  • M-.でfmt.Println等の組み込み関数の定義元にジャンプ
  • ファイルの保存時に、自動的にgofmtコマンドで整形

加えて、open-junk-fileで書き捨てのファイルを作ってコードを書き、quickrunで即時実行する感じで進めていきました(意外にボリュームがあり、時間はかかりましたが..)。

init.elはこんな設定にしました。タブ幅はEmacsデフォルトの8だと見づらいので4に変更。

(with-eval-after-load "go-mode"
  (require 'go-autocomplete)

  (defun go-mode-hook-func ()
    (setq tab-width 4)
    (go-eldoc-setup))
  (add-hook 'go-mode-hook 'go-mode-hook-func)

  (define-key go-mode-map (kbd "M-.") 'godef-jump)
  (define-key go-mode-map (kbd "M-,") 'pop-tag-mark))

(add-hook 'before-save-hook 'gofmt-before-save)

GO++

WEB+DB PRESS Vol.82 amazon.co.jp