Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Go のライブラリやっていき 💪 #go #golang / Let's creating a...
Search
Osamu TONOMORI
May 16, 2018
Programming
3
2.1k
Go のライブラリやっていき 💪 #go #golang / Let's creating a original library by Go
Gopher 道場 1st grad ceremony LT
Osamu TONOMORI
May 16, 2018
Tweet
Share
More Decks by Osamu TONOMORI
See All by Osamu TONOMORI
About Merpay Architect Team 2021
osamingo
0
1.7k
Gopher's Travel Journal 2018
osamingo
1
1.8k
Google App Engine を利用した、新規 Web サービスの立ち上げ方
osamingo
23
8.3k
GAE/Go の勘どころ
osamingo
10
5k
Go で始める JSON-RPC 入門
osamingo
4
61k
Other Decks in Programming
See All in Programming
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
660
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
21
3.9k
A2A プロトコルを試してみる
azukiazusa1
2
1.3k
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
140
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
1
15k
datadog dash 2025 LLM observability for reliability and stability
ivry_presentationmaterials
0
450
プロダクト志向なエンジニアがもう一歩先の価値を目指すために意識したこと
nealle
0
130
Kotlin エンジニアへ送る:Swift 案件に参加させられる日に備えて~似てるけど色々違う Swift の仕様 / from Kotlin to Swift
lovee
1
260
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
1
8.4k
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
650
#QiitaBash MCPのセキュリティ
ryosukedtomita
0
970
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
360
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Six Lessons from altMBA
skipperchong
28
3.9k
Speed Design
sergeychernyshev
32
1k
Automating Front-end Workflow
addyosmani
1370
200k
Designing for Performance
lara
610
69k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Designing Experiences People Love
moore
142
24k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Transcript
Go のライブラリやっていき @osamingo Gopher Dojo 1st Grad Ceremony 2018/05/16
Agenda 1. 自己紹介 (30 sec) 2. ライブラリ作るモチベーション (1 min) 3.
ライブラリの公開方法 (20 sec) 4. ライブラリを使ってもらうには (3 min) 5. まとめ (10 sec) Gopher Dojo 1st Grad Ceremony 2
自己紹介 主森 理 - Osamu TONOMORI 株式会社メルペイ Software Engineer (Backend)
https://{twitter,github,etc.}.com/ osamingo Gopher Dojo 1st Grad Ceremony 3
ライブラリ作るモチベーション Gopher Dojo 1st Grad Ceremony 4
あぁ、不便だなぁ… Gopher Dojo 1st Grad Ceremony 5
このロジック切り出した方が良いのでは Gopher Dojo 1st Grad Ceremony 6
有名なエンジニアになりたいんや! Gopher Dojo 1st Grad Ceremony 7
正直、モチベーションなんてなんでも良い Gopher Dojo 1st Grad Ceremony 8
ライブラリの公開方法 Gopher Dojo 1st Grad Ceremony 9
ライブラリの公開方法 1. GitHub にアカウントを作ります。 Gopher Dojo 1st Grad Ceremony 10
ライブラリの公開方法 1. GitHub にアカウントを作ります。 2. Public リポジトリを作ります。 Gopher Dojo 1st
Grad Ceremony 11
ライブラリの公開方法 1. GitHub にアカウントを作ります。 2. Public リポジトリを作ります。 3. Go のソースコードを
Push します。 Gopher Dojo 1st Grad Ceremony 12
終了 Gopher Dojo 1st Grad Ceremony 13
補足 gem, npm など中央集権的なリポジトリが、 存在しないので即時公開となる Gopher Dojo 1st Grad Ceremony
14
補足 gem, npm など中央集権的なリポジトリが、 存在しないので即時公開となる (良くも悪くも) Gopher Dojo 1st Grad
Ceremony 15
ライブラリを使ってもらうには Gopher Dojo 1st Grad Ceremony 16
品質を担保する為の3つのチェックポイント Continuous Integration Documentation Static Code Analysis Gopher Dojo 1st
Grad Ceremony 17
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
Continuous Integration Covarage 集計には、CodeCov がオススメ! Chrome Extention が、バリ便利 Ref. GitHub
を快適にブラウジングするための3 種の神器 Gopher Dojo 1st Grad Ceremony 19
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
Documentation GoDoc のありがたさたるや ホスティングしなくて良い コードにコメントすれば自動生成 Example 書けば、ドキュメント上で実行できる https://godoc.org/github.com/{account_name}/{repository_name} Gopher Dojo
1st Grad Ceremony 21
Static Code Analysis Go Report Card 必ず利用してほしい gofmt , go
vet , gocyclo , golint , ineffassign を計測してくれる それだけでなく、 License の有無や、Misspell も判定してくれる 頑張って、評価 A+ をとりましょう 類似サービスとして、CODEBEAT, CODE CLIMATE もある Gopher Dojo 1st Grad Ceremony 22
こんな感じになると気持ちいい Gopher Dojo 1st Grad Ceremony 23
まとめ ライブラリを作るモチベーション なんでも良い ライブラリの公開手順 GitHub にリポジトリ作れば完了 ライブラリを使って貰うには 3 つのチェックポイントを満たす Gopher
Dojo 1st Grad Ceremony 24
Thank you for your attention! Gopher Dojo 1st Grad Ceremony
25