Your SlideShare is downloading. ×
0
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer

135

Published on

Gocon 2015 Summer のLTで発表した資料です。 …

Gocon 2015 Summer のLTで発表した資料です。

Goのパッケージ構成で 試行錯誤してみた話

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
135
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Goのパッケージ構成で 試行錯誤してみた話 Go conference 2015 Summer
  • 2. 自己紹介 @fkm / 深見 モケラボ株式会社 代表取締役(最近作った) Androidアプリを受託で作っ たり Goでサーバーサイド書いた り Gocon 2015 Spring でGoにハマる
  • 3. 作ったもの OpenInvoiceのバックエンド部分
  • 4. パッケージ ● フォルダ=パッケージ ● フォルダ名がパッケージ名 ● import時に別名をつけることができる ○ 名前がぶつかってもあんまり困らない ○ とはいえ面倒
  • 5. で なんでパッケージ 分けるんだっけ?
  • 6. 公開ライブラリ githubなどで公開されているものをそのまま 指定できる 例) import ( "github.com/gorilla/mux" )
  • 7. package private ● 同じパッケージ内のみアクセスできる ● Goでは小文字ではじまる名前がこれ ● 外部には見せたくないけど共通の処理 ● 往々にしてこういう関数ほどテストを書き たくなる
  • 8. Goで何つくる? ● ライブラリ ● ツール ● Webサーバー
  • 9. githubで公開するとき ● リポジトリ名がパッケージ名になる ○ "github.com/gorilla/mux" ● ライブラリが複数パッケージで構成される場合 は? ○ なるべく分けずに1つに詰め込む? ○ 依存するパッケージも1つずつリポジトリ作る?
  • 10. こんな時は 読め!
  • 11. github.com/gorilla/mux/mux.go
  • 12. 1つずつ リポジトリ 作るの。。。?
  • 13. Dockerでは? docker/api/server/server_linux.go
  • 14. github.com/docker/ docker/daemon
  • 15. ライブラリを作る時 複数のパッケージを 1つのリポジトリにいれても 大丈夫
  • 16. GoでWebサーバー REST層 Service層 Model層
  • 17. よく言われること 実装と インターフェースは 分けよう
  • 18. こうやってみた
  • 19. MySQLで動くようにしてよー SQLiteで動くようにしてよー
  • 20. どこに追加するんだ。。。?
  • 21. これはどうだ?
  • 22. ん?
  • 23. Javaってこうやってたような?
  • 24. 試行錯誤のまとめ ● ライブラリは、1リポジトリに複数パッケージいれ ても大丈夫 ○ ライブラリ内での参照も可能 ● アプリでのパッケージ分けは、他の言語と同 様、基本に忠実に。
  • 25. もうちょっとだけ パッケージの話
  • 26. internal ● Go 1.4で追加 ● service/impl/internal ● importできるのはツリー上にいるパッケージの み ● github上のパッケージでは、使えない。。
  • 27. パッケージ名判定 http://www.pkgname.com/ ● パッケージ名がGoらしいかどうかを判定してく れるツール ○ go-libのような-をつけるのはダメぽん などを指摘 ○ githubで公開する前に確認しよう
  • 28. な、なくなってる。。。。
  • 29. パッケージ名判定 かろうじてソースはあった https://github.com/aybabtme/pkgname 近日中に弊社サイトで動くようにしてみます

×