Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Gomaについて
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kyokomi
April 13, 2015
Programming
3.2k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Gomaについて
ORマッパーとは一味ちがう!
kyokomi
April 13, 2015
More Decks by kyokomi
See All by kyokomi
goaを導入した話
kyokomi
0
2.7k
さくっとGAE/GoでAPIを作って本番環境にリリースする / gaego-api-init-release
kyokomi
0
4.1k
Go言語で作られたAPIのレガシーコードと戦った話 / Go Conference 2015 winter
kyokomi
4
4k
Go製の拡張可能なSlack bot
kyokomi
3
8.5k
go generate tips
kyokomi
4
3.6k
私がGo言語を選んだ理由
kyokomi
3
420
Gunosy APIチームGo開発フロー
kyokomi
7
6.4k
Other Decks in Programming
See All in Programming
phperだってパンチカードでコーディングしたい
o0h
PRO
0
270
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
370
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
370
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
580
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
220
The Rails Doctrine Decade
koic
2
550
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
320
すこし踏み込む CancellationToken
htkym
2
1.7k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
610
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
110
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
A Tale of Four Properties
chriscoyier
163
24k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
480
The untapped power of vector embeddings
frankvandijk
2
1.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
700
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
730
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
590
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
540
Transcript
ORϚούʔͱҰຯ͕ͪ͏ Gomaʢމຑʣʹ͍ͭͯ @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 1
ࣗݾհ • Twi%er:)@k_yokomi)ʢ͖ΐ͜Έʣ※1 • GunosyͷAPIνʔϜͰGoΤϯδχΞ ͬͯ·͢ • Cocos2d<xͰήʔϜ࡞ͬͨΓͯ͠·͢ • Gunosy.goͷओ࠵ͱ͔ͬͯ·͢
• ΤλʔͳΒͳ͍։ൃΛࢦͯ͠·͢ ※1"ΞΠίϯ݄ඣͷᘡᘚ͞ΜͰ͢ɻ @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 2
࣍ • Gomaʢމຑʣʹ͍ͭͯ • ֓ཁʢ༻ҙɺग़ྗɺ͍ํʣ • ಛʢଞͱͷҧ͍ͱ͔ʣ • ࣮ͷߏ •
σϞ • ࠓޙʹ͍ͭͯ @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 3
Gomaʢމຑʣʹ͍ͭͯ @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 4
Gomaʢމຑʣͷ֓ཁ GomaʢމຑʣͱɺJavaͷdomaʹΠϯεύΠΞ͞Εͯ࡞ΓॳΊ ͨDatabaseΞΫηεϑϨʔϜϫʔΫͰ͢ɻ ໊લͦͷ໊ͷ௨ΓdomaͷGo൛ͱ͍͏༝དྷͰމຑͱҰؔ ͋Γ·ͤΜɻ DBͷςʔϒϧߏΛݩʹGoͷίʔυʢstructجຊతͳCRUDૢ ࡞ʣͱsqlϑΝΠϧΛgenerate͠·͢ɻ h"ps:/ /github.com/kyokomi/goma @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ
5
Gomaʢމຑʣʹඞཁͳͷ • ίʔυੜݩͱͳΔDBςʔϒϧ • DBͷଓใ • config.json$or$ίϚϯυҾՄ • gomaͷΠϯετʔϧ •
go get gopkg.in/kyokomi/ goma.v1/gen/goma • ※ৄࡉGitHubͷREADME.md @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 6
@k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 7
config.json config.jsonΛ༻ҙ͠·͢ɻTOMLͱ͔yamlͱ͔ͷαϙʔτશવՄ ೳͰ͢ɻ PullReqeust͓ͪͯ͠·͢ɻ { "driver": "mysql", "user": "admin", "password":
"password", "host": "localhost", "port": 3306, "db": "test" } @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 8
gomaͷ࣮ߦ $"goma"gen)config"))path"config.json @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 9
go#generateͰOK package main import ( "fmt" ) //go:generate goma gen-config
--path config.json func main() { fmt.Println("Hello goma!") } @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 10
$"go"generate @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 11
ग़ྗ • dao:"select,update,insert,delete࣮ • en'ty:"structͷίʔυ,Scan()࣮ • sql:"dao͔Βݺͼग़͢sqlϑΝΠϧ • config.json:"࣮ߦ݁ՌͰ্ॻ͖͠·͢ ※جຊతʹ্هͷग़ྗฤू͠ͳ͍ํ
Ͱ͢ʢ্ॻ͖͞Ε·͢ʣ @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 12
͍ํ @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 13
@k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 14
Gomaʢމຑʣͷಛ1 • sqlϑΝΠϧΛͦͷ··͑Δɾฤूɾ࣮ߦͰ͖Δ • sqlΛΘ͔Δਓ͕ײతʹϝιουΛݺͼग़ͤΔ • JOINจGROUPBY۟ͳͲΛͬͨΧελϜsqlՃՄೳ • ۪ʹίʔυΛgenerateͯ͠ΔͨΊɺΑ͋͘ΔORϚούʔͷຐ ๏Έ͍ͨͳίʔυແ҆͘৺͢Δ
@k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 15
Gomaʢމຑʣͷಛ2 • ςʔϒϧఆٛͷมߋ͕ଟͯ͘࠶generate͢ΕOK • ERਤ͘͠DBΛਖ਼ͱ͢ΔϓϩδΣΫτ͖ • En.tyϕʔεͰΓͱΓ͢Δʹɺrows.Scan(&a,9&b)Έ͍ͨͳ ͷΛॻ͔ͳ͍͍ͯ͘ • sql.DBͱsql.TxΛҾʹ࣮ͯ͠ߦ͢ΔͨΊɺԶʑ*goma.DB͡
Όͳͯ҆͘৺͢Δ @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 16
Ͱbuild࣌sqlϑΝΠϧͲ͏͢Δʁ @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 17
go#bindataʹରԠͯ͠ΔͷͰ҆৺ ͜Μͳײ͡ʹ࣮ߦ͢Δͱ͍͍ײ͡Ͱ͢ɻ $ go-bindata -o dao/asset_gen.go -pkg dao sql/... ※2
※2"go%bindata:"ࢦఆσΟϨΫτϦϑΝΠϧΛόΠφϦσʔλͱͯ࣋ͭ͠GoͷίʔυΛgenerate͢ΔϥΠϒϥϦ @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 18
asset_gen.go @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 19
Gomaʢމຑʣͷ࣮ߏ @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 20
໘ന͍ͷɺORϚούʔͬͯΔͱ͜Ζ • codegangsta/cli:/͜Εແ͠Ͱcliπʔϧॻ͘ͷਏ͍※3 • go1xorm/xorm:/DB͔ΒTableߏใΛऔಘ/※4 • benbjohnson/ego:/erb෩ʹॻ͚ΔtemplateΤϯδϯʢඪ४ػೳ ͰɺόΠφϦʹຒΊࠐΊΔʣ※5 ※5"h$ps:/ /github.com/benbjohnson/ego
※4"h$ps:/ /github.com/go2xorm/xorm ※3"h$ps:/ /github.com/codegangsta/cli @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 21
※ͪͳΈʹੜͨ͠ίʔυʹɺ ઌ΄ͲͷϥΠϒϥϦؚ·Ε·ͤΜͷͰ ҆͝৺͍ͩ͘͞!!! @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 22
ࠓޙʹ͍ͭͯ • CircleCI্ͰςετͰ͖ΔڥΛͭ͘Δʢcircle.yamlʣ • =>/mysqlͬͯΔޙpostgres͚ͩ • jsonҎ֎ͷઃఆϑΝΠϧʹରԠ͢Δ • ߴԽʢࠓશવؾʹͯ͠ͳ͍ɻϕϯνϚʔΫ͢Βͯ͠ͳ͍ʣ •
ۀͰ࠾༻ͯ͠ࣄྫΛग़͢/ @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 23
͓ΘΓ @k_yokomi,)2015/04/13)ʮGunosy.go#12)GolangNotH=pNightʯ 24