SlideShare a Scribd company logo
Go初心者向け
ハンズオン
コマンドラインツールを作ろう
2015/10/31(土)
@Go初心者向けハンズオン
The Go gopher was designed by Renee French.
The gopher stickers was made by Takuya Ueda.
Licensed under the Creative Commons 3.0
Attributions license.
アジェンダ
● 自己紹介
● ハンズオンについて
● ドキュメントとPlayground
● 型・メソッド・インタフェース
● もう一歩先へ
自己紹介
KLab株式会社
KLabGames事業本部 エンジニア
上田拓也
twitter: @tenntenn
■ 好きな言語
Go, JavaScript, Lua
■ 業務
モバイルオンラインゲームの開発(クライアントサイド)
ハンズオンについて
このハンズオンの目的
■ 日本でのGo普及
● Goが流行れば仕事が増える
● きっとGoで仕事できる
■ Go Conferenceへ
● セッションの内容についていけるように
● なんとなく参加 → 勉強したいから参加
○ ドタキャン率を下げれたら嬉しい
● 発表者になってほしい
今日作るもの
■ リポジトリ
● https://github.
com/tenntenn/gohandson/tree/master/imgconv/ja
■ コマンドラインツール
● ターミナルで動くプログラム
● 画像を変換するツール
# 50%に縮小して、JPEGにする
$ imgconv -resize 50% a.png b.jpg
学べること
■ このハンズオンで学べること
● go getやGOPATHについて
● コマンドライン引数の取り方
● ファイルの扱い方
● 画像ファイルの扱い方
● flagパッケージの使い方
● 埋込み
● 画像処理の仕方
● golang.org/x/以下のパッケージについて
● テンプレートエンジンの使い方
● ディレクトリを再帰的に処理する方法
学べないこと
■ このハンズオンで学べないこと
● Goの開発環境のインストール方法
● IDEやエディタの設定
● 基本的な文法
● ゴールーチンとチャネル
● net/httpパッケージ
ドキュメントとPlayground
ドキュメント
■ パッケージドキュメント
● https://golang.org/pkg
● 標準パッケージの使い方が書いてある
■ FAQ
● https://golang.org/doc/faq
● なぜGoに◯◯がないのか?など
■ 言語仕様
● https://golang.org/ref/spec
公式ドキュメントを読もう!!
Playground
■ Go Playground
● http://play.golang.org/
● Web上でGoを実行できる
● Share機能で、SNSで共有したり質問する
型・メソッド・インタフェース
typeを使った型の作成
■ シンプルで強力な type
// 組み込み型に名前をつける
type Int int
// 他のパッケージの型に名前をつける
type MyWriter io.Writer
// 型リテラルに名前をつける
type Person struct {
Name string
}
typeで名前が付けれるもの
■ 組み込み型
int、float64、string など
■ 型リテラル
構造体、インタフェース、
マップ、スライス、チャネル、関数 など
■ 名前付きの型
パッケージの内外で作った型
別の型として再定義できる
typeを使った型の作成
■ typeで作った型はレシーバにできる
type Hex int
func (h Hex) String() string {
return fmt.Sprintf(“%x”, int(h))
}
// 100をHex型として代入
var hex Hex = 100
// Stringメソッドを呼び出す
fmt.Println(hex.String())
intとHexは別の型として扱われる
レシーバにできるもの
■ 名前のついた型
typeで定義したもの
■ パッケージ内の型のみ
外部のパッケージの型はtypeで再定義する
■ ポインタも含む
レシーバに変更を与えたい場合
レシーバも引数と同じ扱い
構造体以外もメソッドを持てる
インタフェース
■ 明示的に実装しなくてよい
// interface型の型リテラルにStringerという名前をつける
type Stringer interface {
// メソッドリストを書く
String() string
}
type Hex int
// メソッドリストが一致してれば実装してることになる
func (h Hex) String() string {
return fmt.Sprintf(“%x”, int(h))
}
型とメソッドとインタフェース
■ 既存の型にもインタフェースを実装
● 後づけで実装させる
● メソッドリストさえ一致してればよい
■ 構造体以外も実装可能
● typeで宣言すればメソッドが設けられる
● メソッドリストさえ一致してればよい
io.Writerとio.Reader
■ 1つのメソッドしか持たない
● io.Writer: Writeメソッド
● io.Reader: Readメソッド
■ 標準パッケージで多く使われている
● fmt, net, bytes, encoding, bufio, os ...
● ファイルやネットワークのコネクション
● 抽象度の高いインタフェース
埋込み
■ 構造体に匿名フィールドとして値を埋め込む
type Hoge struct {
N int
}
// Fuga型にHoge型を埋め込む
type Fuga struct {
Hoge // 名前のないフィールドになる
}
埋込み
■ 埋め込んだ値に移譲(継承ではない)
f := Fuga{Hoge{N:100}}
// Hoge型のフィールドにアクセスできる
fmt.Println(f.N)
// 型名を指定してアクセスできる
fmt.Println(f.Hoge.N)
type Hoge struct {N int}
type Fuga struct {Hoge}
埋込みの特徴
■ 型リテラルでなければ埋め込められる
● typeで定義したものや組み込み型
● インタフェースも埋め込められる
■ インタフェースの実装
埋め込んだ値のメソッドもカウント
// Stringerを実装
type Hex int
func (h Hex) String() string {
return fmt.Sprintf(“%x”, int(h))
}
// Hex2もStringerを実装
type Hex2 struct {Hex}
type Stringer interface {
String() string
}
インタフェースと埋め込み
■ 既存のインタフェースの振る舞いを変える
type Hoge interface{M();N()}
type fuga struct {Hoge}
func (f fuga) M() {
fmt.Println(“Hi”)
f.Hoge.M() // 元のメソッドを呼ぶ
}
func HiHoge(h Hoge) Hoge {
return fuga{h} // 構造体作る
}
Mの振る舞いを変える
もう一歩先へ
ハンズオンが終わったら
■ 改造してみよう
● テストを書いてみよう
● 回転させてみよう
● 画像形式を増やそう
● gifアニメーションを作ろう
● 画像変換サーバにしよう
ハンズオンを開こう
■ ハンズオンを開催してほしい
● 資料はすでにある!
○ これからも増やしていきます
● 脱初心者で次の初心者を助けよう
● 教えるということは良い学びになる
● 身近なところでいいので
○ 会社、大学、コミュニティ
何か作って発表しよう
■ Go Conferenceに参加しよう
http://eventdots.jp/event/573121
Go初心者向けハンズオン コマンドラインツールを作ろう

More Related Content

What's hot

Blender で作ったアニメーションを Unreal Engine 4 で利用する
Blender で作ったアニメーションを Unreal Engine 4 で利用するBlender で作ったアニメーションを Unreal Engine 4 で利用する
Blender で作ったアニメーションを Unreal Engine 4 で利用する
rarihoma
 
SORACOM Conference "Discovery" 2018 | F1. SORACOMで自動化するデバイスのキッティング、配備、運用
SORACOM Conference "Discovery" 2018 | F1. SORACOMで自動化するデバイスのキッティング、配備、運用SORACOM Conference "Discovery" 2018 | F1. SORACOMで自動化するデバイスのキッティング、配備、運用
SORACOM Conference "Discovery" 2018 | F1. SORACOMで自動化するデバイスのキッティング、配備、運用
SORACOM,INC
 
エンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さん
エンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さんエンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さん
エンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さん
Rakuten Group, Inc.
 
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
SORACOM,INC
 
メルカリ_サービス説明資料
メルカリ_サービス説明資料メルカリ_サービス説明資料
メルカリ_サービス説明資料Find Job Startup
 
これから Houdini 始める
これから Houdini 始めるこれから Houdini 始める
これから Houdini 始める
Ken Taki
 
Facebookビジネス提案書p
Facebookビジネス提案書pFacebookビジネス提案書p
Facebookビジネス提案書p
株式会社アイディーバンク
 
Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋
智啓 出川
 
WindowsにおけるUIスレッドの基礎
WindowsにおけるUIスレッドの基礎WindowsにおけるUIスレッドの基礎
WindowsにおけるUIスレッドの基礎
ssuser349357
 
AI時代の要件定義
AI時代の要件定義AI時代の要件定義
AI時代の要件定義
Zenji Kanzaki
 
elixirを使ったゲームサーバ
elixirを使ったゲームサーバelixirを使ったゲームサーバ
elixirを使ったゲームサーバ
Hidetaka Kojo
 
「情報」を「書く」ということ(仮) #RedmineJapan
 「情報」を「書く」ということ(仮)  #RedmineJapan 「情報」を「書く」ということ(仮)  #RedmineJapan
「情報」を「書く」ということ(仮) #RedmineJapan
Kazuhito Miura
 
ディレクターとして取り組むHCD業務の実際
ディレクターとして取り組むHCD業務の実際ディレクターとして取り組むHCD業務の実際
ディレクターとして取り組むHCD業務の実際
寛 水野
 
GitHubで雑誌・書籍を作る
GitHubで雑誌・書籍を作るGitHubで雑誌・書籍を作る
GitHubで雑誌・書籍を作るNaonori Inao
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
Tetsuyuki Kobayashi
 
Example of exiting legacy system
Example of exiting legacy systemExample of exiting legacy system
Example of exiting legacy system
TakamchiTanaka
 
物語自動生成
物語自動生成物語自動生成
物語自動生成
Youichiro Miyake
 
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
JOYZO
 
ゲームAI製作のためのワークショップ(III)
ゲームAI製作のためのワークショップ(III)ゲームAI製作のためのワークショップ(III)
ゲームAI製作のためのワークショップ(III)
Youichiro Miyake
 
工学系大学4年生のための論文の読み方
工学系大学4年生のための論文の読み方工学系大学4年生のための論文の読み方
工学系大学4年生のための論文の読み方
ychtanaka
 

What's hot (20)

Blender で作ったアニメーションを Unreal Engine 4 で利用する
Blender で作ったアニメーションを Unreal Engine 4 で利用するBlender で作ったアニメーションを Unreal Engine 4 で利用する
Blender で作ったアニメーションを Unreal Engine 4 で利用する
 
SORACOM Conference "Discovery" 2018 | F1. SORACOMで自動化するデバイスのキッティング、配備、運用
SORACOM Conference "Discovery" 2018 | F1. SORACOMで自動化するデバイスのキッティング、配備、運用SORACOM Conference "Discovery" 2018 | F1. SORACOMで自動化するデバイスのキッティング、配備、運用
SORACOM Conference "Discovery" 2018 | F1. SORACOMで自動化するデバイスのキッティング、配備、運用
 
エンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さん
エンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さんエンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さん
エンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さん
 
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
 
メルカリ_サービス説明資料
メルカリ_サービス説明資料メルカリ_サービス説明資料
メルカリ_サービス説明資料
 
これから Houdini 始める
これから Houdini 始めるこれから Houdini 始める
これから Houdini 始める
 
Facebookビジネス提案書p
Facebookビジネス提案書pFacebookビジネス提案書p
Facebookビジネス提案書p
 
Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋
 
WindowsにおけるUIスレッドの基礎
WindowsにおけるUIスレッドの基礎WindowsにおけるUIスレッドの基礎
WindowsにおけるUIスレッドの基礎
 
AI時代の要件定義
AI時代の要件定義AI時代の要件定義
AI時代の要件定義
 
elixirを使ったゲームサーバ
elixirを使ったゲームサーバelixirを使ったゲームサーバ
elixirを使ったゲームサーバ
 
「情報」を「書く」ということ(仮) #RedmineJapan
 「情報」を「書く」ということ(仮)  #RedmineJapan 「情報」を「書く」ということ(仮)  #RedmineJapan
「情報」を「書く」ということ(仮) #RedmineJapan
 
ディレクターとして取り組むHCD業務の実際
ディレクターとして取り組むHCD業務の実際ディレクターとして取り組むHCD業務の実際
ディレクターとして取り組むHCD業務の実際
 
GitHubで雑誌・書籍を作る
GitHubで雑誌・書籍を作るGitHubで雑誌・書籍を作る
GitHubで雑誌・書籍を作る
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
 
Example of exiting legacy system
Example of exiting legacy systemExample of exiting legacy system
Example of exiting legacy system
 
物語自動生成
物語自動生成物語自動生成
物語自動生成
 
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
 
ゲームAI製作のためのワークショップ(III)
ゲームAI製作のためのワークショップ(III)ゲームAI製作のためのワークショップ(III)
ゲームAI製作のためのワークショップ(III)
 
工学系大学4年生のための論文の読み方
工学系大学4年生のための論文の読み方工学系大学4年生のための論文の読み方
工学系大学4年生のための論文の読み方
 

Similar to Go初心者向けハンズオン コマンドラインツールを作ろう

Google Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめGoogle Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめ
Takuya Ueda
 
粗探しをしてGoのコントリビューターになる方法
粗探しをしてGoのコントリビューターになる方法粗探しをしてGoのコントリビューターになる方法
粗探しをしてGoのコントリビューターになる方法
Takuya Ueda
 
Cloud Functionsの紹介
Cloud Functionsの紹介Cloud Functionsの紹介
Cloud Functionsの紹介
Takuya Ueda
 
Cloud functionsの紹介
Cloud functionsの紹介Cloud functionsの紹介
Cloud functionsの紹介
Takuya Ueda
 
ゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみたゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみた
秀和 福永
 
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみようGoでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
Takuya Ueda
 
Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろうGoだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろう
Takuya Ueda
 
goパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現するgoパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現する
Takuya Ueda
 
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作るGoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
京大 マイコンクラブ
 
エンジニアになり1ヶ月が経って!
エンジニアになり1ヶ月が経って!エンジニアになり1ヶ月が経って!
エンジニアになり1ヶ月が経って!
ssuserccd9f1
 
エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法
Takuya Ueda
 
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Takuya Ueda
 
Go conference 2021 autumn
Go conference 2021 autumnGo conference 2021 autumn
Go conference 2021 autumn
masahiko ito
 
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
Takayuki Shimizukawa
 
WebAssembly with Go
WebAssembly with GoWebAssembly with Go
WebAssembly with Go
Takuya Ueda
 
Goで始める言語処理系実装入門
Goで始める言語処理系実装入門Goで始める言語処理系実装入門
Goで始める言語処理系実装入門
虎の穴 開発室
 
Don't need docker
Don't need dockerDon't need docker
Don't need docker
Go Yamada
 
気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会Yu Shibatsuji
 
The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBasekyon mm
 
そうだ、Goを始めよう
そうだ、Goを始めようそうだ、Goを始めよう
そうだ、Goを始めよう
Takuya Ueda
 

Similar to Go初心者向けハンズオン コマンドラインツールを作ろう (20)

Google Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめGoogle Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめ
 
粗探しをしてGoのコントリビューターになる方法
粗探しをしてGoのコントリビューターになる方法粗探しをしてGoのコントリビューターになる方法
粗探しをしてGoのコントリビューターになる方法
 
Cloud Functionsの紹介
Cloud Functionsの紹介Cloud Functionsの紹介
Cloud Functionsの紹介
 
Cloud functionsの紹介
Cloud functionsの紹介Cloud functionsの紹介
Cloud functionsの紹介
 
ゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみたゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみた
 
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみようGoでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
 
Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろうGoだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろう
 
goパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現するgoパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現する
 
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作るGoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
 
エンジニアになり1ヶ月が経って!
エンジニアになり1ヶ月が経って!エンジニアになり1ヶ月が経って!
エンジニアになり1ヶ月が経って!
 
エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法
 
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
 
Go conference 2021 autumn
Go conference 2021 autumnGo conference 2021 autumn
Go conference 2021 autumn
 
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
 
WebAssembly with Go
WebAssembly with GoWebAssembly with Go
WebAssembly with Go
 
Goで始める言語処理系実装入門
Goで始める言語処理系実装入門Goで始める言語処理系実装入門
Goで始める言語処理系実装入門
 
Don't need docker
Don't need dockerDon't need docker
Don't need docker
 
気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会
 
The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBase
 
そうだ、Goを始めよう
そうだ、Goを始めようそうだ、Goを始めよう
そうだ、Goを始めよう
 

More from Takuya Ueda

Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −
Takuya Ueda
 
GAE/Goとsyncパッケージ
GAE/GoとsyncパッケージGAE/Goとsyncパッケージ
GAE/Goとsyncパッケージ
Takuya Ueda
 
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
Takuya Ueda
 
マスター・オブ・goパッケージ
マスター・オブ・goパッケージマスター・オブ・goパッケージ
マスター・オブ・goパッケージ
Takuya Ueda
 
メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新
Takuya Ueda
 
Go1.8 for Google App Engine
Go1.8 for Google App EngineGo1.8 for Google App Engine
Go1.8 for Google App Engine
Takuya Ueda
 
Go Friday 傑作選
Go Friday 傑作選Go Friday 傑作選
Go Friday 傑作選
Takuya Ueda
 
GoによるiOSアプリの開発
GoによるiOSアプリの開発GoによるiOSアプリの開発
GoによるiOSアプリの開発
Takuya Ueda
 
Static Analysis in Go
Static Analysis in GoStatic Analysis in Go
Static Analysis in Go
Takuya Ueda
 
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
 
エキスパートGo
エキスパートGoエキスパートGo
エキスパートGo
Takuya Ueda
 
Go静的解析ハンズオン
Go静的解析ハンズオンGo静的解析ハンズオン
Go静的解析ハンズオン
Takuya Ueda
 
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
Takuya Ueda
 
Gopher Fest 2017参加レポート
Gopher Fest 2017参加レポートGopher Fest 2017参加レポート
Gopher Fest 2017参加レポート
Takuya Ueda
 
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
Takuya Ueda
 
Namespace API を用いたマルチテナント型 Web アプリの実践
Namespace API を用いたマルチテナント型 Web アプリの実践Namespace API を用いたマルチテナント型 Web アプリの実践
Namespace API を用いたマルチテナント型 Web アプリの実践
Takuya Ueda
 
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingMobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse Binding
Takuya Ueda
 
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
Takuya Ueda
 
GAE/GoでWebアプリ開発入門
GAE/GoでWebアプリ開発入門GAE/GoでWebアプリ開発入門
GAE/GoでWebアプリ開発入門
Takuya Ueda
 

More from Takuya Ueda (20)

Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −
 
GAE/Goとsyncパッケージ
GAE/GoとsyncパッケージGAE/Goとsyncパッケージ
GAE/Goとsyncパッケージ
 
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
 
マスター・オブ・goパッケージ
マスター・オブ・goパッケージマスター・オブ・goパッケージ
マスター・オブ・goパッケージ
 
メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新
 
Go1.8 for Google App Engine
Go1.8 for Google App EngineGo1.8 for Google App Engine
Go1.8 for Google App Engine
 
Go Friday 傑作選
Go Friday 傑作選Go Friday 傑作選
Go Friday 傑作選
 
GoによるiOSアプリの開発
GoによるiOSアプリの開発GoによるiOSアプリの開発
GoによるiOSアプリの開発
 
Static Analysis in Go
Static Analysis in GoStatic Analysis in Go
Static Analysis in Go
 
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
 
エキスパートGo
エキスパートGoエキスパートGo
エキスパートGo
 
Go静的解析ハンズオン
Go静的解析ハンズオンGo静的解析ハンズオン
Go静的解析ハンズオン
 
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
 
Gopher Fest 2017参加レポート
Gopher Fest 2017参加レポートGopher Fest 2017参加レポート
Gopher Fest 2017参加レポート
 
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
 
Namespace API を用いたマルチテナント型 Web アプリの実践
Namespace API を用いたマルチテナント型 Web アプリの実践Namespace API を用いたマルチテナント型 Web アプリの実践
Namespace API を用いたマルチテナント型 Web アプリの実践
 
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingMobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse Binding
 
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
 
GAE/GoでWebアプリ開発入門
GAE/GoでWebアプリ開発入門GAE/GoでWebアプリ開発入門
GAE/GoでWebアプリ開発入門
 

Recently uploaded

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 

Recently uploaded (16)

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 

Go初心者向けハンズオン コマンドラインツールを作ろう