$30 off During Our Annual Pro Sale. View Details »

Goでwebアプリ作っている話

polidog
August 26, 2017

 Goでwebアプリ作っている話

shizuoka.go #12の資料です

polidog

August 26, 2017
Tweet

More Decks by polidog

Other Decks in Technology

Transcript

  1. GoͰwebΞϓϦ࡞ͬ
    ͍ͯΔ࿩
    @polidog
    shizuoka.go #12

    View Slide

  2. ࣗݾ঺հ
    • @polidog
    • tavii.com Inc.
    • PHPer, Symfony Japan User Group
    • Gotanda.goͷओ࠵ऀͰ͢

    View Slide

  3. http://gotrip.jp

    View Slide

  4. WordPress

    View Slide

  5. GoͰ࡞Γ௚͢

    View Slide

  6. ࠓ೔࿩͢͜ͱ
    • GoΛ࠾༻ͨ͠ཧ༝
    • Goݴޠͷֶͼํ
    • ࢖ͬͯΔϥΠϒϥϦʹ͍ͭͯ
    • ೰ΜͰΔͷͱ͜Ζ

    View Slide

  7. ͳͥGoΛ࢖͓͏ͱࢥͬͨͷ
    ͔ʁ

    View Slide

  8. GoΛ࠾༻ͨ͠ཧ༝
    • ଎ͦ͏(αʔόඅ͍҆ͨ͘͠)
    • Gotanda.goͷओ࠵ऀͳͷʹGo͕·ͱ΋ʹॻ͚
    ͳ͍
    • PHP͡Όͳ͍ύϥμΠϜΛֶͼ͍ͨ
    • GoϒʔϜ͋Δؾ͕͢Δ

    View Slide

  9. http://tech.mercari.com/entry/2017/07/13/103000

    View Slide

  10. View Slide

  11. Goݴޠͷֶͼํ

    View Slide

  12. ֶͼํ
    • Tour of Go
    • ຊΛಡΉ
    • ͱʹ͔͘ҰͭԿ͔࡞ͬͯΈΔ

    View Slide

  13. https://github.com/
    polidog/go-itunes

    View Slide

  14. View Slide

  15. GoͳਓPR͕΋Β͑Δ

    View Slide

  16. https://github.com/polidog/go-itunes/pull/1

    View Slide

  17. https://github.com/
    polidog/go-nowplaying

    View Slide

  18. View Slide

  19. webΞϓϦͷͨΊͷࢿྉΛಡΉ
    • GoݴޠʹΑΔWebΞϓϦέʔγϣϯ։ൃ
    • https://astaxie.gitbooks.io/build-web-
    application-with-golang/content/ja/

    View Slide

  20. ࢖͍ͬͯΔϥΠϒϥϦʹ͍ͭ
    ͯ

    View Slide

  21. ϑϨʔϜϫʔΫͷબ୒

    View Slide

  22. ϑϨʔϜϫʔΫ
    • Revel
    • martini
    • goji
    • echo
    • gin
    • chi

    View Slide

  23. ͍ͬͺ͍͋ΔͶ

    View Slide

  24. View Slide

  25. View Slide

  26. View Slide

  27. chiΑͦ͞͏

    View Slide

  28. chiͷಛ௃
    • ͍ܰ
    • ଎͍
    • net/httpͷޓ׵ੑ͋Δ
    • ֎෦ͷύοέʔδʹґଘ͠ͳ͍

    View Slide

  29. Regex url parameters

    View Slide

  30. View Slide

  31. Database(ORM)

    View Slide

  32. ৭ʑύοέʔδ͸͋ΔΑͶ
    • gorm
    • gorp
    • dbr
    • xorm
    • sqlx

    View Slide

  33. http://
    pospome.hatenablog.com/
    entry/2017/02/18/172307

    View Slide

  34. gorm͕ྑͦ͞͏

    View Slide

  35. http://jinzhu.me/gorm/models.html#model-
    definition

    View Slide

  36. http://jinzhu.me/gorm/associations.html

    View Slide

  37. http://jinzhu.me/gorm/crud.html#preloading-
    eager-loading

    View Slide

  38. https://github.com/jinzhu/
    gorm/issues/246

    View Slide

  39. Memcache

    View Slide

  40. https://github.com/
    bradfitz/gomemcache

    View Slide

  41. ଞʹબ୒ࢶ͕ͳ͔ͬͨ

    View Slide

  42. StructΛmecachedʹ
    อଘ͍ͨ͠

    View Slide

  43. StructΛγϦΞϥΠζͯ͠
    Ωϟογϡ͢Δ

    View Slide

  44. http://twinbird-
    htn.hatenablog.com/entry/
    2017/01/01/181058

    View Slide

  45. ύοέʔδ؅ཧ

    View Slide

  46. ଞͷݴޠͩͱ
    • npm
    • gem
    • composer
    …etc

    View Slide

  47. GoͰ͸ʁ

    View Slide

  48. https://github.com/golang/
    go/wiki/
    PackageManagementTools

    View Slide

  49. ͍Ζ͍Ζ͋ΔͶ

    View Slide

  50. ެ͔ࣜͩΒdep࢖͓͏ʂ

    View Slide

  51. dep init

    View Slide

  52. ύοέʔδͷ௥Ճ

    View Slide

  53. dep ensure -add ύοέʔδ

    View Slide

  54. ʊਓਓਓਓਓਓਓਓਓʊ
    ʼɹpre-alpha stateɹʻ
    ʉY^Y^Y^Y^Y^Y^Y^Yʉ

    View Slide

  55. ೰ΜͰ͍Δͱ͜Ζ

    View Slide

  56. σΟϨΫτϦߏ଄

    View Slide

  57. ΠϯελϯεͷҾ͖ճ͠

    View Slide

  58. Contextͷ࢖͍ํ

    View Slide

  59. ࠷ޙʹ

    View Slide

  60. GoΛ΋ͬͱॻ͚ΔΑ͏ʹͳΓ
    ͍ͨ

    View Slide

  61. Gotrip͸ྑ͍αʔϏεͳͷ
    Ͱɺྑ͍ίʔυͰαʔϏεΛ
    ੒௕͍ͤͨ͞

    View Slide

  62. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·͠
    ͨɻ

    View Slide