Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Go的版本管理之路
Search
ipfans
October 27, 2018
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Go的版本管理之路
2018中国计算机大会现代编程语言专场演讲内容
ipfans
October 27, 2018
More Decks by ipfans
See All by ipfans
Event Modeling: 新项目沟通方式
ipfans
0
66
TDD, BDD and Beyond
ipfans
0
93
Go最差实践
ipfans
0
57
现代方式使用asyncio
ipfans
0
110
Other Decks in Programming
See All in Programming
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
120
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
150
Go のフラットな パッケージに 「ファイル単位の private」を 〜Linter “declscope” を作った話〜
mpyw
0
320
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
250
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
110
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
220
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.7k
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
160
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
240
一人だけ、Kiroが静止する日
hideg
0
110
How I Stole PSI from Android Studio - DroidKaigi2026
worker8
0
130
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
470
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Docker and Python
trallard
47
4.2k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
700
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
580
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
670
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
570
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
520
Designing Experiences People Love
moore
143
24k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
The browser strikes back
jonoalderson
0
1.7k
Transcript
Go的包依赖管理理之路路 Kevin
02 05 01 04 03 演讲⼤大纲 为什什么需要包依赖管理理 Go的包依赖管理理之路路 官⽅方引⼊入vendor go
mod介绍 案例例分享
02 05 01 04 03 演讲⼤大纲 为什什么需要包依赖管理理 Go的包依赖管理理之路路 官⽅方引⼊入vendor go
mod介绍 案例例分享
包依赖 package main import "github.com/astaxie/beego" func main() { beego.Run() }
依赖
第三⽅方依赖
代码管理理 我们编写⾃自⼰己的代码 我们引⽤用别⼈人的代码 然后…
package golang.org/x/net/context: unrecognized import path "golang.org/x/net/context" (https fetch: Get https://golang.org/x/net/context?go-get=1:
dial tcp 216.58.221.241:443: i/o timeout) Go 下载依赖错误
"dependencies": { "antd": "^3.0.2", "axios": "^0.18.0", "babel-polyfill": "^6.26.0", "ckeditor": "^4.9.2",
"classnames": "^2.2.6", "color": "^3.0.0", "copy-text-to-clipboard": "^1.0.4", "dayjs": "^1.7.2", } { "require": { "monolog/monolog": "1.0.*" } } 其他语⾔言的依赖管理理 PHP Node
02 05 01 04 03 演讲⼤大纲 为什什么需要包依赖管理理 Go的包依赖管理理之路路 官⽅方引⼊入vendor go
mod介绍 案例例分享
$GOPATH
$GOPATH by Google’s way
$GOPATH $GOPATH ├── bin ├── pkg └── src ├── google.golang.org
│ └── grpc │ ├── README.md │ ├── backoff.go │ ├── balancer │ │ ├── balancer.go .....
$GOPATH go主程序提供的get命令功能 ⽀支持git/svn/mercurial/bazzar 默认下载主分⽀支
$GOPATH 我们如何保证构建⼀一定是稳定构建?
API Breaking Changes?
gopkg.in 使⽤用Github托管仓库 语义化版本管理理发布 只能根据⼤大版本选择
$GOPATH 多个项⽬目依赖不不同版本的仓库A怎么办?
02 05 01 04 03 演讲⼤大纲 为什什么需要包依赖管理理 Go的包依赖管理理之路路 官⽅方引⼊入vendor go
mod介绍 案例例分享
vendor
vendor 1.5: ⾸首次引⼊入,默认关闭(2015年年中) 1.6: 默认开启,可选关闭(2016年年中) 1.7: 永久开启,⽆无法关闭(2016年年底)
基于vendor的包管理理 https://github.com/golang/go/wiki/PackageManagementTools
vendor 新引⼊入包B⽆无法兼容已存在的包A怎么办? 同⼀一依赖的同⼀一版本冗余了了怎么办? 我们为什什么⼀一定需要$GOPATH?
02 05 01 04 03 演讲⼤大纲 为什什么需要包依赖管理理 Go的包依赖管理理之路路 官⽅方引⼊入vendor go
mod介绍 案例例分享
go mod (vgo) Go 1.11版本正式引⼊入 不不强制位于$GOPATH 相同依赖项多版本管理理 ⽀支持语义化版本管理理
go mod (vgo) V
借助go.mod⽂文件管理理版本 go mod (vgo)
借助go.mod⽂文件管理理版本 go mod (vgo)
依赖引⽤用路路径查询 go mod (vgo)
便便捷的已有项⽬目迁移 go mod (vgo)
go mod (vgo) 中⼼心化的仓库成为可能
02 05 01 04 03 演讲⼤大纲 为什什么需要包依赖管理理 Go的包依赖管理理之路路 官⽅方引⼊入vendor go
mod介绍 案例例分享
None
None