Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Gomaについて
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kyokomi
April 13, 2015
Programming
3.1k
4
Share
Gomaについて
ORマッパーとは一味ちがう!
kyokomi
April 13, 2015
More Decks by kyokomi
See All by kyokomi
goaを導入した話
kyokomi
0
2.6k
さくっとGAE/GoでAPIを作って本番環境にリリースする / gaego-api-init-release
kyokomi
0
4k
Go言語で作られたAPIのレガシーコードと戦った話 / Go Conference 2015 winter
kyokomi
4
4k
Go製の拡張可能なSlack bot
kyokomi
3
8.4k
go generate tips
kyokomi
4
3.5k
私がGo言語を選んだ理由
kyokomi
3
420
Gunosy APIチームGo開発フロー
kyokomi
7
6.3k
Other Decks in Programming
See All in Programming
事業会社でのセキュリティ長期インターンについて
masachikaura
0
230
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
5.6k
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
550
Migration to Signals, Signal Forms, Resource API, and NgRx Signal Store @Angular Days 03/2026 Munich
manfredsteyer
PRO
0
230
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
310
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
5
2.4k
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
310
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
210
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
120
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
230
Nuxt Server Components
wattanx
0
240
L’IA au service des devs : Anatomie d'un assistant de Code Review
toham
0
200
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
170
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
470
WCS-LA-2024
lcolladotor
0
510
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
170
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
120
Google's AI Overviews - The New Search
badams
0
960
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
We Have a Design System, Now What?
morganepeng
55
8.1k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
780
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