web-technical-blog

web開発に関する技術メモ

goのglideを使用してみた

  • GOPATHは以下に設定 /User/xxxx/go/

  • glideを使うときはGOPTAHに注意!

  • GOPATH/src配下にプロジェクトがないと動かない!!

  • パッケージ構成は以下のようにした

myproject
├── glide.lock
├── glide.yaml
├── main.go
└── vendor
    └── github.com
        └── go-easylog
            └── el
                ├── README.md
                ├── logger.go
                ├── logger_test.go
                ├── rotator.go
                └── rotator_test.go
  • glide initで初期化
$ glide init
  • glide getでパッケージの追加
$ glide get github.com/go-easylog/el

$ cat glide.yaml
package: myproject
import:
- package: github.com/go-easylog/el

$ cat glide.lock
hash: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
updated: 2017-11-30T17:38:28.956562+09:00
imports:
- name: github.com/go-easylog/el
  version: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
testImports:
  • vendor配下が作成していない場合は以下のコマンドでインストール
glide install

Windows7 64bit版でGo言語のクロスコンパイルを試す

環境

C:\lib\src\awesomeProject>go version
go version go1.8.3 windows/amd64
C:\lib\src\awesomeProject>go env
set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\lib
set GORACE=
set GOROOT=C:\Go
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
・・・省略・・・

Goでクロスコンパイル

set GOOS=linux
set GOARCH=amd64
go build -o hello hello.go

VSCのmarkdownでPDFを印刷する際のメモ

<div style="page-break-before:always"></div>

CentOS7にPostgreSQLをインストールする&COPYコマンドについて

ameblo.jp

COPYコマンドは以下の通りファイル経由はスーパーユーザーである必要がある

ERROR:  ファイル経由のCOPY FROM、COPY TOを行うにはスーパーユーザでなければなりません
HINT:  標準入出力経由のCOPYは誰でも実行可能です。またpsqlの\\copyも誰でも実行できます

以下のように「\」コマンドを付与しないとエラーになるので注意

\COPY dl_passbook FROM '/home/ope/xxx.csv' WITH CSV;

GoビギナーズLT大会! 「最近、Go言語始めました」の会 #4

GoビギナーズLT大会! 「最近、Go言語始めました」の会 #4

ハッシュタグ:#golangjp

開催日:2017.10.24(火) 19:00 〜21:00

会場:株式会社メルカリ

URL:https://go-beginners.connpass.com/event/64866/


イベント概要

  • Go言語入門者のLT大会&懇親会
  • 最近Goにハマってきた方、これからGo言語を深めていこうという方
  • 「Go言語のここがよかった」「ここが好きになった」「ここがひっかかりやすい」など、Go言語を始めるにあたっての知識を共有する

よく聞かれる3つの質問

  • 1.GOPATHはどこに設定したらいい?
  • 2.エディタは何を使う?
  • 3.パッケージ管理とか何を使う?

1.GOPATHはどこに設定したらいい?

Go1.8からは$HOME/goを使うように最初から設定されている

$ go env GOPATH
/Users/121799/go
  • 明示的に設定した方がわかりやすい
$ export GOPATH=$HOME/go
$ echo $GOPATH
/Users/121799/go

2.パッケージ管理には何を使う

今はglideが主流みたい

  • npm,gemみたいな動き
  • glideを使うときはGOPTAHに注意! GOPATH/src配下にプロジェクトがないと動かない

公式ツール、dep

  • Go1.8以降で使用できる
  • まだ開発途上。今後大きな変更があるかも

GOPATH/src配下で作業するのが嫌だったらdirenvを使うといい


「Glide」のメリット

1.YAMLで書ける

  • シンプルで強力なYAML記法
  • Glideは、依存関係の定義ファイルをYAMLで記述
  • GodepなどはJSONが採用されている
  • RubyのGemfileにインスパイアされたGomの「Gomfile」フォーマットなどもある

    2.必要最低限の機能がシンプルにまとまっている

  • Glideは必要最低限の機能だけをごくシンプルに提供している

    参考URL


3.エディタは何を使う?

Vim

  • vim-goが強力
  • 著名なGopherが使用している

GoGland

  • GoのためのIDE。現在EAP(β版)
  • メソッドジャンプが強力

Visual Studio Code


3.エディタは何を使う?

保存時に自動でimport,fmtする設定はMust

  • メソッドジャンプ、デバッガー、自動補完を求めるなら、GoGlandかVisual Studio Code
    • vim-goは自動補完の設定は大変...

番外:Goの何がそんなに好きなんですか

低レイヤーを学べるところ

答えがあるので戦争が起きにくいところ

  • コーディングルール、フォーマット

Goコミュニティは優しい


資料

reveal.jsでPDFにする方法

markdown記法で書くときは以下のようにする

<div class="reveal">
    <div class="slides">
        <section data-markdown>
            ## Markdown support1
            Write content using inline or external Markdown.
            Instructions and more info available in the [readme](https://github.com/hakimel/reveal.js#markdown).    
        </section>
        <section data-markdown>
            ## Markdown support2
            
            Write content using inline or external Markdown.
            Instructions and more info available in the [readme](https://github.com/hakimel/reveal.js#markdown).
        </section>
    </div>
</div>

URLにprint-pdfを付与する

  • 以下のような感じにする

    • file:///Users/xxxx/Desktop/reveal.js-master/index.html?print-pdf
  • 印刷プレビュー

    • command + p
    • 余白:なし
    • オプション:「背景のグラフィック」にチェックする