Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OSSで楽に作るGo言語クライアントツール

732 views

Published on

Go言語の入門に最適です。

Published in: Engineering
  • Be the first to comment

OSSで楽に作るGo言語クライアントツール

  1. 1. github.com/codegangsta/cli OSSで楽に作るGo言語クライアントツール makoto tano - @makotano 著作権表記 / Go言語のキャラクターGopherの原著作者はRenée Frenchさんです。
  2. 2. Makoto Tano Golang Engineer @ @makotano 「はじめの一歩」が好きでボクシングやってます
  3. 3. Go言語楽しいです! • Syntaxがシンプル、だから気軽に書ける • コンパイルするから動作速い • 型があるから安心して書ける 簡単に試して、
 「ちょっとだけなら書けますよ! 」
 に最適な言語。(と思ってマス)
  4. 4. Hello World以上に勉強するには! アプリをがっちり書く必要なんてない!
 コマンドラインツールを作りましょう!
  5. 5. コマンドラインツールで気にすること 1. {command} = コマンド本体 • • • • • • 2. {command} -R = コマンドオプション • • • • • • • • • 3. {command} args.. = パラメータ • • • • • 4. {command} help = コマンドヘルプ • • • • • • • ・・・いっぱいやることアルネ。
  6. 6. OSSで解決できます! github.com/codegangsta/cli  先ほどの4要素を標準パッケージで書くのは大変。
 しかし、このOSSを使えば整理して書けます。 しかも、コマンドラインツールを作る時のテンプレートも作りました! https://gist.github.com/MakoTano/624fe3fdea914b262e2c
  7. 7. テンプレートの解説
 1. コマンド本体 app.Commands = []cli.Command{ { Name: "hello", Aliases: []string{"h"}, Usage: "show Hello World", Action: func(c *cli.Context) { }, }, } コマンド名 ショートカット コマンドヘルプ ここにコマンド内容を書く
 (勉強のしどころです!)
  8. 8. テンプレートの解説
 2. コマンドオプション app.Flags = []cli.Flag{ cli.BoolFlag{ Name: "dryrun, d", }, } オプションはFlagと呼びます ロング/ショートネーム “Value”を足すとデフォルト値が指定可能
  9. 9. テンプレートの解説
 3. パラメータ var paramFirst = "" if len(c.Args()) > 0 { paramFirst = c.Args()[0] } c.Args() で配列が[]stringで返る .First(), .Tail() などでも取得可能
  10. 10. テンプレートの解説
 4. コマンドヘルプ mako ~/dev/gopath1.5.2/src/sample $ go run main.go NAME: sample_client - github.com/codegangsta/cli のテンプレートです USAGE: main [global options] command [command options] [arguments...] VERSION: 0.0.1 COMMANDS: hello, h hello world を表示します help, h Shows a list of commands or help for one command GLOBAL OPTIONS: --dryrun, -d --help, -h show help --version, -v print the version なんと既にできちゃってます! イヤッフー!
  11. 11. 用意したgistテンプレートの時点でここまで動きます # Setup mako ~/dev/gopath1.5.2/src/sample $ go get github.com/codegangsta/cli # Execute
 mako ~/dev/gopath1.5.2/src/sample $ vi main.go # テンプレをコピペ mako ~/dev/gopath1.5.2/src/sample $ go run main.go —dryrun hello Tom 開始 this is dry-run
 Hello world! Tom
 終了
  12. 12. おわり • GoのSyntax勉強は「シュッと golang に入門する話」 が個人的には好きです。
 http://sixeight.hatenablog.com/entry/2015/03/16/032222 • 数時間とるだけで、Gopherになれるチャンス! 逃す • • わけにはいかないですね!
 • • • • • • • • (そこまでのことかって話もありますが) • Go言語イベントやってるから遊びにきてね!
 http://eure.connpass.com/

×