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
dgw generating Go struct from potgresql table d...
Search
Akira Chiku
July 03, 2017
Programming
1.8k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
dgw generating Go struct from potgresql table definition
Akira Chiku
July 03, 2017
More Decks by Akira Chiku
See All by Akira Chiku
Goの標準ライブラリで扱うフォントと画像
achiku
1
2.4k
gocon-2018-how-we-go-test-with-rdbms.pdf
achiku
6
6k
詳解 BTC Payment
achiku
3
3.7k
Async, Persistent, Fast, and Stable "Enought" Queue/Worker Using Go and PostgreSQL
achiku
5
9.1k
非同期Jobの設計と実装
achiku
0
400
How We Built Testable HTTP API Server
achiku
6
8k
PyCon JP 2014 Python + Hive on AWS EMRで貧者のログ集計
achiku
0
4k
Other Decks in Programming
See All in Programming
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
450
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
210
最近”作らせてる” ローカルAIアプリの話
akit37
0
420
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
140
Simple Storage Service(S3) is not simple
iwatsukayura
0
230
Java 27新機能 / Java 27 new features
kishida
2
210
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.5k
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
360
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
SREの越境 / SRE Collaboration
y0hgi
2
300
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
450
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
140
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
Are puppies a ranking factor?
jonoalderson
2
4k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Evolving SEO for Evolving Search Engines
ryanjones
0
310
Designing Powerful Visuals for Engaging Learning
tmiket
1
600
New Earth Scene 8
popppiees
4
2.7k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
620
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
540
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
470
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
350
Transcript
EHX (FOFSBUJOH(PTUSVDU GSPN1PTUHSF42- HPMBOHUPLZP+VM "LJSB$IJLV
NF /BNF"LJSB$IJLV 5XJUUFS!@BDIJLV (JU)VC!BDIJLV (PPHMF4FBSDI"LJSB$IJLV'JSF
BHFOEB Ø #BDLHSPVOE Ø 8IBU Ø 8IZ Ø )PX
CBDLHSPVOE
CBDLHSPVOE QSPEVDU Ø QSPEVDU Ø "QQCBTFEJOTUBOU BOESFMPBEBCMFWJSUVBMQMBTUJD 7*4"QSFQBJEDBSEGPSFWFSZPOF
Ø J04 "OESPJE Ø IUUQTWBOEMFKQ
CBDLHSPVOE QSPEVDUTJ[F Ø TJ[F BTPG+VM Ø
PGFOEQPJOUT JOUFSOBM"1* Ø PGFYUFSOBMTFSWJDFT Ø OPUJODMVEJOH4FOUSZ/FX3FMJD4UBUVT1BHFJP Ø PGUBCMFT 1PTUHSF42- Ø PGMJOFT (PDPEFXJUIPVUWFOEPSEJS Ø 5PUBM Ø 8JUIPVUUFTUDPEF
XIBU
EHX Ø IUUQTHJUIVCDPNBDIJLVEHX Ø *UHFOFSBUFT(PTUSVDU BOETJNQMF5BCMF3PX%BUB(BUFXBZ GVODUJPOTNFUIPETGSPN1PTUHSF42-UBCMFEFOJUJPOT Ø 5BCMF3PX%BUB(BUFXBZ
Ø 1SJNJUJWFGPSNPGNBQQJOHCFUXFFO(PBOE3%#.4 UBCMFBOESPX OPUMJLF"DUJWF3FDPSE%BUB.BQQFS Ø IUUQTNBSUJOGPXMFSDPNFBB$BUBMPHUBCMF%BUB(BUFXBZIUNM Ø IUUQTNBSUJOGPXMFSDPNFBB$BUBMPHSPX%BUB(BUFXBZIUNM Ø VTFS@BDDPVOUUBCMF6TFS"DDPVOUTUSVDU Ø AUZQF6TFS"DDPVOUTUSVDUAXJUIA*%A A&NBJMA A-BTU/BNFA BOEA'JSTU/BNFABUUSJCVUFT Ø A6TFS"DDPVOU$SFBUF 2VFSZFS ANFUIPEUPJOTFSU SFDPSE Ø A(FU6TFS"DDPVOU#Z1L QLJOU AGVODUJPOUPTFMFDU SFDPSECZQL
&YBNQMF CREATE TABLE user_account ( id bigserial primary key
, email text not null unique , last_name text not null , first_name text not null );
// UserAccount represents public.user_account type UserAccount struct { ID
int64 // id Email string // email LastName string // last_name FirstName string // first_name } // Create inserts the UserAccount to the database. func (r *UserAccount) Create(db Queryer) error { err := db.QueryRow( `INSERT INTO user_account (email, last_name, first_name) VALUES ($1, $2, $3) RETURNING id`, &r.Email, &r.LastName, &r.FirstName).Scan(&r.ID) if err != nil { return errors.Wrap(err, "failed to insert user_account") } return nil } // GetUserAccountByPk select the UserAccount from the database. func GetUserAccountByPk(db Queryer, pk0 int64) (*UserAccount, error) { var r UserAccount err := db.QueryRow( `SELECT id, email, last_name, first_name FROM user_account WHERE id = $1`, pk0).Scan(&r.ID, &r.Email, &r.LastName, &r.FirstName) if err != nil { return nil, errors.Wrap(err, "failed to select user_account") } return &r, nil }
4JNJMBSBQQSPBDI Ø YP Ø IUUQTHJUIVCDPNLORYP Ø 4VQQPSUJOH1PTUHSF42-.Z42-0SBDMF.442-4FSWFS 42-JUF Ø
EHXJTIFBWJMZJOTQJSFECZYP Ø TRMCPJMFS Ø IUUQTHJUIVCDPNWBUUMFTRMCPJMFS Ø 4VQQPSUJOH1PTUHSF42-.Z42-.442-4FSWFS Ø 3BJMTTUZMF EBUBCBTFSTU03.
'FBUVSF Ø EHXDBOQSPQFSMZEFUFDUDPNQPTJUFQSJNBSZLFZT BOEBVUP HFOFSBUJOHDPMVNOT Ø SFUVOJOHBVUPHFOFSBUFEAVVJEA
ACJHTFSJBMA FUD Ø EHXIBTDPOHVSBCMFUZQFNBQQJOHCFUXFFO1PTUSHF42-BOE (P Ø EHXQSPWJEFTDVTUPNUFNQMBUFGFBUVSF Ø EFWFMPQFSTDBOVTFUIFJSPXOUFNQMBUFGPSTUSVDU NFUIPE BOEGVODUJPO
/PU'FBUVSF Ø EHXEPFTOUDBSFBCPVUSFMBUJPOT Ø POMZTUSVDUXJUIA$SFBUFANFUIPE BOEGVODUJPOXIJDI TFMFDUTSPXCZ1,BSFHFOFSBUFE
Ø *UTUBZTCFJOHNJOJNBMUBCMFSPXEBUBHBUFXBZ Ø EHXPOMZTVQQPSUT1PTUHSF42- Ø XFBSFDVSSFOUMZOPUVTJOHPUIFS3%#.4PUIFSUIBO 1PTUHSF42-
XIZ
"CJUPGIJTUPSZ Ø 8FSTUTUBSUFECVJMEJOHUIFQSPEVDUXJUIIBOEDSBGUFESBX42- Ø CBDLJO (PCBTFE DPEFSTU03.MJCSBSJFTBSFCJUTIBLZ Ø SFFDUJPOTFWFSZXIFSF
HFOFSBUFE42-OPUBMXBZFDJFOU Ø TJODF*DBNFGSPN%KBOHP03. 42-"MDIFNZXPSME *LOPX 03.JTHSFBUJONBOZXBZT Ø CVU*UIPVHIUNBZCFDPEFSTU03.JTOPUGPS(PBUUIBU NPNFOU Ø TUBSUFEXSJUJOHSBX42-GPSPVSQSPEVDU Ø NPRBEB BOE*GFMUQSFUUZDPOEFOUXSJUJOHDPNQMFY42- Ø IPXFWFS JUXBTFYUSFNFMZSFQFUJUJWF CPSJOH BOEFSSPSQSPOFUP DSFBUFTJNQMF42- Ø QSPCMFNXBTOPUDPNQMFY42- CVUSBUIFSTJNQMF BOETNBMM42- XJUIMPUTPGDPMVNOT Ø BUUIFTBNFUJNF XFBQQSFDJBUFEIPX03.IBWFCFFOTBWJOHPVS UJNF
%FOFQSPCMFN Ø %FOFQSPCMFNXIJDIXFTIPVMETPMWF Ø NBOVBMMZXSJUJOHJOTFSUSPXTFMFDUCZQL42-BSFFWJM Ø DPMT BSHT BOEQMBDFIPMEFSTIBWFUPCFFYBDUMZJOPSEFS
Ø UIFNPTUGSFRVFOUQBUUFSO JOPVSQSPEVDU JODMVEJOH UFTUEBUBQSFQBSBUJPO Ø TJODFPVSQSPEVDUEPFTOUZFUSFBMMZIBWFBOBMZUJDTGFBUVSF XJUIDPNQMFYEBUBNBOJQVMBUJPO Ø %FOFQSPCMFNTXIJDIXFMFBWFVOTPMWFE Ø XSJUJOH42-XJUINVMUJQMFKPJOT DBTFFYQSFTTJPO BOEDPNQMFY QSFEJDBUFT Ø PGBMM42-JOPVSQSPEVDU Ø UIJTJTXIFSFSBX42-SPDLT Ø EZOBNJD42-DPOTUSVDUJPOEFQFOEJOHPOVTFSJOQVU Ø NBZCFXFTIPVMEVTFRVFSZCVJMEFS CVUOPUZFUJNQMFNFOUFE XIJDINFBOTOPUUIBUOFDFTTBSZBUUIFNPNFOU
IPX
IPX Ø IUUQTHJUIVCDPNBDIJLVEHX Ø 6TFGVMJGZPVVTFXJUIHPHFOFSBUFDPNNBOE
%FNP
2"
2" 8FBSFIJSJOH