Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ずっとRubyをやっていたエンジニアがGoに入門して挫折して再挑戦した話

 ずっとRubyをやっていたエンジニアがGoに入門して挫折して再挑戦した話

35b58828e4e24c579c35529061711dfd?s=128

Kenta Suzuki

June 05, 2017
Tweet

Transcript

  1. ͣͬͱRubyΛ΍͍ͬͯͨ ΤϯδχΞ͕Goʹೖ໳͠ ͯ࠳ંͯ͠࠶௅ઓͨ͠࿩ 2017/6/5 GoݴޠLTେձʂ ʮ࠷ۙɺGoݴޠ࢝Ί·ͨ͠ʯͷձ @suzan2go

  2. ࣗݾ঺հ • גࣜձࣾΫϥ΢υϫʔΫε • ླ໦݈ଠ (Twitter / GitHub @suzan2go) •

    ࢓ࣄͰ͸Ruby / JavaScriptΛॻ͍͍ͯΔΞϓϦ έʔγϣϯΤϯδχΞ • 4݄͔ΒझຯͰGoݴޠΛͪΌΜͱ৮Γ࢝Ί·ͨ͠
  3. None
  4. ॻ͍ͯ·ͤΜ ผਓͰ͢

  5. ࠓ೔ͷ࿩ RubyΛ΍͍ͬͯͨ ΤϯδχΞ͕GoΛ࢝Ίͯ Կʹ࠳ંͯ͠ Ͳ͏࠶௅ઓͯ͠͏·͍ͬͨ͘ ͔

  6. Goݴޠͱͷग़ձ͍

  7. Goݴޠͱͷग़ձ͍(2016೥4݄)

  8. Goݴޠͱͷग़ձ͍ • ಉ྅͕ͪΐͬͱ৮͍ͬͯͨͷͰ໊લ͘Β͍͸஌ͬ ͍ͯͨ • GAE / Goͷ૊Έ߹Θͤੌ͍ʂʂ • ͪΐ͏Ͳ৽نࣄۀͷ্ཱͪ͛ʹؔΘ͍ͬͯͯͲΜ

    ͳߏ੒Ͱ࡞Δͷ͔ߟ͍͑ͯͨ • ͜Ε͔Β͸Go͕དྷͦ͏ͩʂʂͳΜ͔࡞ͬͯΈΑʂ
  9. ࠳ંɾɾɾ

  10. ഊҼ • GoݴޠͰRubyͷΑ͏ͳΦϒδΣΫτࢦ޲Λ ΍Ζ͏ͱͯ͠͠·ͬͨ • GoݴޠͰRubyͷΑ͏ʹָʹॻ͘ํ๏͕ͳ͍ ͔୳͠ٻΊͯ͠·ͬͨ

  11. GoݴޠͰRubyͷΑ͏ͳΦϒδΣ Ϋτࢦ޲Λ΍Ζ͏ͱͯ͠͠·ͬͨ Ҿ༻ : GoͷΞϯνύλʔϯ http://golang.rdy.jp/2016/07/26/antiptn/

  12. GoݴޠͰRubyͷΑ͏ʹָʹॻ͘ ํ๏͕ͳ͍͔୳͠ٻΊͯ͠·ͬͨ • Go͸ےྗ͕…ͱ͍͏΍ͭʁ • λΠϓ਺ΛݮΒ͢Α͏ͳ͜ͱΛؤுΖ͏ͱ͢Δͱେମ͸ ·ͬͨ • ౰࣌͸ɺʮ͜Εઈର΋ͬͱָͳॻ͖ํ͋ΔͩΖʔ͆ʯͱԿ ͔ॻ͘౓ʹ୳͠ճͬͯ͠·ͬͨ…

    • ݁ՌɺGoͩͱ͜͏ॻ͔͘͠ͳ͍ɺΈ͍ͨͳͱ͜Ζʹམͪ ண͍ͯɺ·ͬͨ͘ΞϓϦέʔγϣϯͷ։ൃਐ·ͳ͔ͬͨ
  13. ͦͯ͠Ұ೥͘Βཱ͍ͬͨ ࠓ೥ͷ4݄ ཧ༝͸๨Ε͚ͨͲ Goݴޠ࠶௅ઓ

  14. GitHubͰGoݴޠͷΞϓϦέʔ γϣϯΛ৭ʑݟͯΈΔ https://github.com/shohhei1126/bbs-go

  15. Goݴޠͷઃܭʹ͍ͭͯͷهࣄΛ ৭ʑಡΜͰΈΔ http://www.alexedwards.net/blog/organising-database-access

  16. Goݴޠͷઃܭʹ͍ͭͯͷهࣄΛ ৭ʑಡΜͰΈΔ http://deeeet.com/writing/2016/10/25/go-interface-testing/

  17. GoʹैͬͯݟΔͱ ָ͘͠ͳͬͯ͘Δ

  18. ͜Μͳͱ͜Ζָ͕͍͠Ͱ͢Go • golintͰॻ͖ํΛڧ੍͞ΕΔͷͰ໎Θͳͯ͘ྑ͍(vs Ruby) • ܕ͕͋Δͷʹ(ΤσΟλͷαϙʔτ͕͋Δͷ͕͜Μͳʹ࠷ߴͱ͸)ɺ͔ͭίϯύΠϧ͕ ૣ͍ • σϑΝΫτͳWAFͱ͔͕·ͩͳ͍෼ɺ৭ʑࣗ෼Ͱߟ͑ͳͯ͘͸͍͚ͳ͍ͷָ͕͍͠ (DBΞΫηεͲ͏͢ΔɺͲ͏͍͏ߏ଄ମ࡞Δ

    etc) • GoDocੌ͍ɻখ͍͞ϓϩδΣΫτͰ΋GoDocʹ৘ใ͕͋Δࣄ͕ଟ͍(golintͰίϝ ϯτͳ͍ͱౖΒΕΔ͔Βʁ) • ۪௚ʹॻ͘͜ͱ͕ٻΊΒΕΔ(ؾ͕͢Δ)ͷͰɺ΍Γ͍ͨ͜ͱʹϑΥʔΧεͨ͠ίʔυ ʹͳΔ(ݸਓͷײ૝Ͱ͢)
  19. ͜ΜͳΜ࡞ͬͯ·͢(झຯ)ᶃ • Ոఉ಺೔هΞϓϦͷόοΫΤϯυAPI(·ͩࣗ෼ͷՈఉ಺ݶఆ ެ։)
 ࢖͍ͬͯΔύοέʔδ͸labstack/echoɺjinzhu/gormͳͲ

  20. ͜ΜͳΜ࡞ͬͯ·͢(࢓ࣄ)ᶄ • GitHubͷ͓૟আ͢Δ΍ͭ(ࠓͷͱ͜ΖReleasesΛফ͚ͩ͢…)
 ࢖༻ύοέʔδ spf13/cobraɺgoogle/go-github ͳͲͳͲ


  21. ·ͱΊ • GoʹೖΕ͹Goʹै͑ • ʮΦϒδΣΫτࢦ޲ݴޠʯͱ͸৭ʑҧ͏ͱ͜Ζ΋ଟ͍͜ͱΛೝΊΑ͏ • ָΛ͢Δ(୹͘ॻ͚Δ)Α͏ͳॻ͖ํΛؤு͕ͬͯ͢͞ΑΓɺ۪௚ʹॻ ͍͍ͯ͘΄͏͕݁Ռతʹ͸Α͍ίʔυʹͳΔؾ͕͢Δ(ݸਓͷײ૝Ͱ ͢) •

    ઌਓͷॻ͍ͨίʔυɾ஌ݟΛ୔ࢁࢀߟʹ͠Α͏ • GoʹैͬͯΈΔͱGoॻ͘ͷָ͘͠ͳͬͯ͘Δʂ
  22. ࠓޙͷల๬ •΋ͬͱ࢓ࣄͰ΋ Goݴޠ࢖ͬͯ
 ͍͖͍ͨ