ίυδЀύ • Ͳ Go ͡ • Perl Monger ͢ Golang ΨতΗΞ͜ͼ䦒Ϝϫ͵;ͩΣ • Go ΄承՛䯭ͽΌ Perl ;΄ፘ晅ᅩ • Go ͽ๋ṛ΄ Web API Ψ֢ͼΕΞ͜Ѻ • Go ͽ͚͚ے仂ϓφϕΨ䨗ͥʹѺ • ͚͚ఽͮϠϸϖͭͼϷϷЄφͯΡʹѺ • Δ;Η
϶αϣ϶Ϸ΄ᓕቘොဩ͢ΖͰ͚ (3) • go get ͽ΅ version ΨਧͭͼݐͯΡͩ;͢ͽ͚ͣ • ͳΘͳΘ version ᓕቘͫͼ͚ΡϯυϲЄϸ͚͢ѺѺ • Go 1.12 ͽفΡ go mod ΞΠ semver Ψֵ͜Ξ͜Ρ΄ ͽϮЀϓͫͼ͚Ρ϶αϣ϶Ϸ΅ၺ᭐ͭͼ͚ͼ΅͚Ρ
WebίϤϷξЄτϴЀΨ䨗ͥ;ͣ΄϶αϣ ϶Ϸ΄ᓕቘ (2) • ୮ᶎ΅ glide / dep / go mod Ψֵ͚ړͧͼ͚ͥᥝ͘͢Ρ;ΥΡ • glide / dep ΅ֵΥͼ͚ΡϤϺυδμϕ͢ग̵़ͥΑΒΑΒ๗இ᭗Π㵕 ͥ΄ͽ㪥Π䟵͞ΡϯώϦЄτϴЀ֗͢ͳ͜ • vgo ΅ go mod ;ͭͼ Go ݐΠ旿Δ͵΄ͽͼᜉ͚ • Go 1.12 ͡Ο΅ go mod Ψֵͼ͚ͥͩ;Ρ΅Ͱ • 匍ࣁ΄ Go 1.11 ͽ΅ $GO111MODULE =on ͭͼͥ͠;͠手ͭͽͣΡ
ηЄςϷЀνϑЄϸ͚͢ (1) • Go ΅ηЄςϷЀνϑЄϸ΄䷥ਧᇇ΄Ξ͜Θ΄͚͢ • ΔͫΟय़ࣈ͡ΟতΗΡͩ;Ρ • go xxx πϫЀϖΨ;ͥ͡ͺ͡ Makefile Ψ;ͥ͡䨗ͥͩ;Ρ • Ϡϸϖ͢ͳͩΔͽ櫞͚ͭͥ΄ͽ̵ͳΩࢯΟ͚;͚͞ΆࢯΟ͚͢… • ϷϷЄφ䦒 tag ͵Π̵Ϡϸϖͭ͵ϝαϗϷ version ईΗ旿ΩͶΠͿਧࣳ ΄㳌ቘ΅ generate ͭ͵͚ཿ • ;ͥ go mod ΞΠ϶αϣ϶Ϸ΄ϝЄυϴЀᓕቘ͢᯿ᥝͼ͚ͥ
linter ͺ͚ͼ • go ΅ᶉጱᥴຉ͢ go ᛔ֛ͽΚΠΚ͚ͯ͵Η̵linter Θ꧌䋚ͭͼ͚Δͯ • 䰤伛πϫЀϖ;ͭͼ͘Ρ go vet ΚςЄϖϞЄϓΰ΄ go lint ΅๋֗ᴴֵ͜;͚͚ͽ ͭΝ͜ • go vet ΅πЀϞαϸε϶Є΅Ο͚ͧͿϮϯϷϷЄμͿͫΔͬΔ㺔氂 Πͳ͜πЄϖΨර͞ͼͥΔͯ • go lint ΅ΞΠΞ͚πЄϔΰЀνφόαϸΨ suggest ͭͼͥΔͯ • ͫΟͣΗ奞͡ώδϐμΨᤈ͚͵͚䁰ݳ΅ https://github.com/dominikh/go-tools Ψ手ͯͩ;ΘͽͣΔͯ
Web API Ψ䨗͚ͼ͚ͥ (1) • RESTful Γ͚ JSON Ψᬬͯ API Ψ䨗͚ͼ͚ͥ • TwitterΓ͚ͷΝ;ͭ͵ϮϐψЄυΨಭᑤͽͣΡ API Ψ戔懯ͭΔͯ • POST /users • GET /users/{user_id} • POST /messages • GET /messages/{message_id} • Ε͵͚ఽͮ
MySQL Ψֵ͵ϓφϕ (1) • github.com/lestrrat-go/test-mysqld Ψͺ͜͡ • ΕΩय़অͣ Test::mysqld ΄ go ϪЄϓΰЀν ͽͯ • test ΄͵ΉਠقμϷЄЀ MySQL ΨᒈͷӤͨͼͥΡΚ ͺ • ΘͷΣΩ MySQL ΄ᒈͷӤͨ䦒樌͢͡͡Ρ΄΅ͧΟ͚