Gopher 道場 1st grad ceremony LT
Goのライブラリやっていき@osamingoGopher Dojo 1st Grad Ceremony2018/05/16
View Slide
Agenda1.自己紹介 (30 sec)2.ライブラリ作るモチベーション (1 min)3.ライブラリの公開方法 (20 sec)4.ライブラリを使ってもらうには (3 min)5.まとめ (10 sec)Gopher Dojo 1st Grad Ceremony2
自己紹介主森 理 - Osamu TONOMORI株式会社メルペイSoftware Engineer (Backend)https://{twitter,github,etc.}.com/ osamingoGopher Dojo 1st Grad Ceremony3
ライブラリ作るモチベーションGopher Dojo 1st Grad Ceremony4
あぁ、不便だなぁ…Gopher Dojo 1st Grad Ceremony5
このロジック切り出した方が良いのではGopher Dojo 1st Grad Ceremony6
有名なエンジニアになりたいんや!Gopher Dojo 1st Grad Ceremony7
正直、モチベーションなんてなんでも良いGopher Dojo 1st Grad Ceremony8
ライブラリの公開方法Gopher Dojo 1st Grad Ceremony9
ライブラリの公開方法1. GitHubにアカウントを作ります。Gopher Dojo 1st Grad Ceremony10
ライブラリの公開方法1. GitHubにアカウントを作ります。2. Publicリポジトリを作ります。Gopher Dojo 1st Grad Ceremony11
ライブラリの公開方法1. GitHubにアカウントを作ります。2. Publicリポジトリを作ります。3. Goのソースコードを Pushします。Gopher Dojo 1st Grad Ceremony12
終了Gopher Dojo 1st Grad Ceremony13
補足gem, npmなど中央集権的なリポジトリが、存在しないので即時公開となるGopher Dojo 1st Grad Ceremony14
補足gem, npmなど中央集権的なリポジトリが、存在しないので即時公開となる(良くも悪くも)Gopher Dojo 1st Grad Ceremony15
ライブラリを使ってもらうにはGopher Dojo 1st Grad Ceremony16
品質を担保する為の3つのチェックポイントContinuous IntegrationDocumentationStatic Code AnalysisGopher Dojo 1st Grad Ceremony17
Continuous Integration基本中の基本正常なビルド、テストを保証するライブラリという観点だと、Travis CIがオススメ!Matrixに環境を整えられるので、 Build Tag利用時などに便利language: gogo:- '1.8.x'- '1.9.x'- '1.10.x'- 'tip'Gopher Dojo 1st Grad Ceremony18
Continuous IntegrationCovarage集計には、CodeCovがオススメ!Chrome Extentionが、バリ便利Ref. GitHubを快適にブラウジングするための3種の神器Gopher Dojo 1st Grad Ceremony19
DocumentationREADMEは、ちゃんと書きましょう!何が嬉しくなるライブラリなのか、1文で理解できるように特に Licenseはちゃんと明記しないと、使う側も困りますBenchmarkの結果を乗せると、優位性が明らかになって良い# Machine: MacBook Pro (Retina, 15-inch, Mid 2015)# CPU : 2.8 GHz Intel Core i7# Memory : 16 GB 1600 MHz DDR3BenchmarkEncoder_Encode-8 20000000 107 ns/op 46 B/op 1 allocs/opBenchmarkEncoder_Decode-8 30000000 46.8 ns/op 0 B/op 0 allocs/opPASSok github.com/osamingo/indigo/base58 3.730sGopher Dojo 1st Grad Ceremony20
DocumentationGoDocのありがたさたるやホスティングしなくて良いコードにコメントすれば自動生成Example書けば、ドキュメント上で実行できるhttps://godoc.org/github.com/{account_name}/{repository_name}Gopher Dojo 1st Grad Ceremony21
Static Code AnalysisGo Report Card必ず利用してほしいgofmt , go vet , gocyclo , golint , ineffassignを計測してくれるそれだけでなく、 Licenseの有無や、Misspellも判定してくれる頑張って、評価 A+をとりましょう類似サービスとして、CODEBEAT, CODE CLIMATEもあるGopher Dojo 1st Grad Ceremony22
こんな感じになると気持ちいいGopher Dojo 1st Grad Ceremony23
まとめライブラリを作るモチベーションなんでも良いライブラリの公開手順GitHubにリポジトリ作れば完了ライブラリを使って貰うには3つのチェックポイントを満たすGopher Dojo 1st Grad Ceremony24
Thank you for your attention!Gopher Dojo 1st Grad Ceremony25