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

Go のライブラリやっていき 💪 #go #golang / Let's creating a original library by Go

Go のライブラリやっていき 💪 #go #golang / Let's creating a original library by Go

Gopher 道場 1st grad ceremony LT

Osamu TONOMORI

May 16, 2018
Tweet

More Decks by Osamu TONOMORI

Other Decks in Programming

Transcript

  1. Go
    のライブラリやっていき
    @osamingo
    Gopher Dojo 1st Grad Ceremony
    2018/05/16

    View Slide

  2. Agenda
    1.
    自己紹介 (30 sec)
    2.
    ライブラリ作るモチベーション (1 min)
    3.
    ライブラリの公開方法 (20 sec)
    4.
    ライブラリを使ってもらうには (3 min)
    5.
    まとめ (10 sec)
    Gopher Dojo 1st Grad Ceremony
    2

    View Slide

  3. 自己紹介
    主森 理 - Osamu TONOMORI
    株式会社メルペイ
    Software Engineer (Backend)
    https://{twitter,github,etc.}.com/ osamingo
    Gopher Dojo 1st Grad Ceremony
    3

    View Slide

  4. ライブラリ作るモチベーション
    Gopher Dojo 1st Grad Ceremony
    4

    View Slide

  5. あぁ、不便だなぁ…
    Gopher Dojo 1st Grad Ceremony
    5

    View Slide

  6. このロジック切り出した方が良いのでは
    Gopher Dojo 1st Grad Ceremony
    6

    View Slide

  7. 有名なエンジニアになりたいんや!
    Gopher Dojo 1st Grad Ceremony
    7

    View Slide

  8. 正直、モチベーションなんてなんでも良い
    Gopher Dojo 1st Grad Ceremony
    8

    View Slide

  9. ライブラリの公開方法
    Gopher Dojo 1st Grad Ceremony
    9

    View Slide

  10. ライブラリの公開方法
    1. GitHub
    にアカウントを作ります。
    Gopher Dojo 1st Grad Ceremony
    10

    View Slide

  11. ライブラリの公開方法
    1. GitHub
    にアカウントを作ります。
    2. Public
    リポジトリを作ります。
    Gopher Dojo 1st Grad Ceremony
    11

    View Slide

  12. ライブラリの公開方法
    1. GitHub
    にアカウントを作ります。
    2. Public
    リポジトリを作ります。
    3. Go
    のソースコードを Push
    します。
    Gopher Dojo 1st Grad Ceremony
    12

    View Slide

  13. 終了
    Gopher Dojo 1st Grad Ceremony
    13

    View Slide

  14. 補足
    gem, npm
    など中央集権的なリポジトリが、
    存在しないので即時公開となる
    Gopher Dojo 1st Grad Ceremony
    14

    View Slide

  15. 補足
    gem, npm
    など中央集権的なリポジトリが、
    存在しないので即時公開となる
    (良くも悪くも)
    Gopher Dojo 1st Grad Ceremony
    15

    View Slide

  16. ライブラリを使ってもらうには
    Gopher Dojo 1st Grad Ceremony
    16

    View Slide

  17. 品質を担保する為の3つのチェックポイント
    Continuous Integration
    Documentation
    Static Code Analysis
    Gopher Dojo 1st Grad Ceremony
    17

    View Slide

  18. Continuous Integration
    基本中の基本
    正常なビルド、テストを保証する
    ライブラリという観点だと、Travis CI
    がオススメ!
    Matrix
    に環境を整えられるので、 Build Tag
    利用時などに便利
    language: go
    go:
    - '1.8.x'
    - '1.9.x'
    - '1.10.x'
    - 'tip'
    Gopher Dojo 1st Grad Ceremony
    18

    View Slide

  19. Continuous Integration
    Covarage
    集計には、CodeCov
    がオススメ!
    Chrome Extention
    が、バリ便利
    Ref. GitHub
    を快適にブラウジングするための3
    種の神器
    Gopher Dojo 1st Grad Ceremony
    19

    View Slide

  20. Documentation
    README
    は、ちゃんと書きましょう!
    何が嬉しくなるライブラリなのか、1
    文で理解できるように
    特に License
    はちゃんと明記しないと、使う側も困ります
    Benchmark
    の結果を乗せると、優位性が明らかになって良い
    # Machine: MacBook Pro (Retina, 15-inch, Mid 2015)
    # CPU : 2.8 GHz Intel Core i7
    # Memory : 16 GB 1600 MHz DDR3
    BenchmarkEncoder_Encode-8 20000000 107 ns/op 46 B/op 1 allocs/op
    BenchmarkEncoder_Decode-8 30000000 46.8 ns/op 0 B/op 0 allocs/op
    PASS
    ok github.com/osamingo/indigo/base58 3.730s
    Gopher Dojo 1st Grad Ceremony
    20

    View Slide

  21. Documentation
    GoDoc
    のありがたさたるや
    ホスティングしなくて良い
    コードにコメントすれば自動生成
    Example
    書けば、ドキュメント上で実行できる
    https://godoc.org/github.com/{account_name}/{repository_name}
    Gopher Dojo 1st Grad Ceremony
    21

    View Slide

  22. Static Code Analysis
    Go Report Card
    必ず利用してほしい
    gofmt , go vet , gocyclo , golint , ineffassign
    を計測してくれる
    それだけでなく、 License
    の有無や、Misspell
    も判定してくれる
    頑張って、評価 A+
    をとりましょう
    類似サービスとして、CODEBEAT, CODE CLIMATE
    もある
    Gopher Dojo 1st Grad Ceremony
    22

    View Slide

  23. こんな感じになると気持ちいい
    Gopher Dojo 1st Grad Ceremony
    23

    View Slide

  24. まとめ
    ライブラリを作るモチベーション
    なんでも良い
    ライブラリの公開手順
    GitHub
    にリポジトリ作れば完了
    ライブラリを使って貰うには
    3
    つのチェックポイントを満たす
    Gopher Dojo 1st Grad Ceremony
    24

    View Slide

  25. Thank you for your attention!
    Gopher Dojo 1st Grad Ceremony
    25

    View Slide